アドバンスト事例紹介
京都大学 古村隆明

目次• Shibboleth認証対応のフォワードプロキシ• Windowsログオン・Shibboleth連携• ICカード・証明書認証に向けて

学認シンポジウム2012

2

Shibboleth対応フォワードプロキシ• フォワードプロキシ＝ブラウザに設定するプロキシ• 利用目的はいろいろ• 通常の認証方式は2種類– BASIC認証– Digest認証• Shibboleth認証に対応させた• 2012年度中に利用開始予定
学認シンポジウム20123

shibproxyの実装• Shibboleth SP 2.4.3– プロキシとしてリクエストを受けた際に未認証であればIdPへリダイレクトして認証処理– 認証完了後にブラウザからのリクエストを処理続行– diff –u スタイルで880 行の変更

• Apache 2.2– ソースコードの修正なし– mod_proxy に対する設定– mod_rewrite に対する設定
学認シンポジウム20124

shibproxyの動作概要
IdP

ブラウザ

プロキシ(SP)WebサーバGET http://example.com/doc302 HTTP redirect

Auth Request(ID & password)

http://example.com

Auth OK

Set-Cookie: LH741Q…

繰り返し

GET http://example.com/doc
Cookie: LH741Q…

セッションクッキー発行
セッションクッキーを確認
残りのリクエストを処理
GET http://example.com/doc

200 OK

200 OK
学認シンポジウム2012

5目次• Shibboleth認証対応のフォワードプロキシ• Windowsログオン・Shibboleth連携• ICカード・証明書認証に向けて

学認シンポジウム2012

6Windowsログオン連携• Windowsログオンと Shibboleth 認証を連携– Windowsログオン操作で Shibboleth IdP へのシングルサインオンを実現する– WebでのSSOを超えたSSO• 学内オープンスペースの Windows 端末での利用を検討中 (2012年度中)• Kerberos認証を利用してIdPとActive Directory(AD)を連携• Internet Explorer と Firefox で動作確認済み
学認シンポジウム2012

7Windowsログオン連携フロー• Windowsログオン時にADからチケット発行(1～2)• Kerberosチケットを利用してIdPへログイン (3～5)

WindowsPC

4. Kerberos認証
Active Directory

学認シンポジウム2012

Shibboleth IdP8目次• Shibboleth認証対応のフォワードプロキシ• Windowsログオン・Shibboleth連携• ICカード・証明書認証に向けて

学認シンポジウム20129ICカード・証明書認証に向けて• シングルサインオンにより利便性向上→ID・パスワード流出時のリスクは増大• サービスごとのセキュリティレベルの違い→レベルの違いに合わせた認証方式が必要• 複数方式を組合わせて認証（多要素認証）
学認シンポジウム201210

サービスとセキュリティレベル
低← セキュリティレベル →高危険区域入退公的個人認証保護されるべき領域

ネットバンキング

銀行ATM
ICパスポート

クレジットカード
電子マネー

IC免許証

交通系ICカード

入退室

会員サービスニュース

広告

低← 利用頻度 →高学認シンポジウム201211

大学内サービスとセキュリティレベル
低← セキュリティレベル →高成績管理

財務会計

健診データ閲覧保護されるべき領域
大学内サービスを二つのセキュリティレベルに分割して認証システムを構築

健康診断

決済・稟議

履修登録

電子マネー
図書貸出し

電子ジャーナル

施設予約

建物入退

スケジュール管理

出席確認

低← 利用頻度 →高学認シンポジウム201212京都大学での二つの認証方式
1. ID・パスワードでの認証
2. 電子証明書での認証(教職員に配布したIC認証カード内に格納されている電子証明書を利用)– 教職員用グループウェアで運用中• リバースプロキシ型SSO (非Shibboleth)– Shibboleth での運用を検討中
学認シンポジウム201213

グループウェアでの適用例
1. ID・パスワードで認証しシングルサインオン
2. グループウェアのポータルにログイン–

多くのサービスはこの状態で利用可能

3. よりセキュアなサービス
利用時はICカード認証が要求される
例：給与閲覧、人事シート記入、年末調整、財務会計
学認シンポジウム201214電子証明書の確認サイト設置• IC身分省内の電子証明書にアクセスできるか確認するサイトを準備 → 状況把握に有効
成功

学認シンポジウム201215

ICカード認証に関する問合せ件数の推移
350

人
事
給与閲
覧

300
250
200

10050

IC

150

カード配付

財務会
計人
事
シート人
事
シート0

学認シンポジウム201216ICカード認証に関する問合せの内訳

初期PIN関係・PIN再設定(72%)

インストール
操作方法(22%)
総数約1400件（2009/11～2011/12)
学認シンポジウム2012

•••
•

再発行関係
配付、発行、取得資格など
カード利活用関係:
17

トラブル事例• PIN忘れ多発→リモートでの再設定機能が有効• ブラウザやOSのアップデートに伴うトラブル– Google Chrome 8 → 9 で利用不可(原因未確認)– IE9/Win7 で利用不可多発 (原因未確認)(SSL re-negatiation 問題に関連か?)– Windows7 / Mac 64bit化 (ドライバが未対応)

学認シンポジウム2012

18

Shibbolethでの証明書認証に向けて
1. IdPに証明書認証用の認証メソッドを追加
2. IdP側のデフォルト認証方式を設定
3. SP側がどの認証メソッドを要求するかを指示• 基本動作は確認済み。調査・動作試験中。
参考：https://www.gakunin.jp/docs/fed/technical/idp/customize/certificate-auth

学認シンポジウム2012

19

IdPに認証メソッドを追加• handler.xml<LoginHandler xsi:type="RemoteUser"><AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient</AuthenticationMethod></LoginHandler>
証明書認証用の認証メソッドを追加• httpd/*/ssl.conf など<Location /idp/Authn/RemoteUser>
SSLCACertificateFile /opt/shibboleth-idp/credentials/Camp-CA.crt
SSLVerifyClient require
SSLVerifyDepth 3
証明書認証の処理は apache に依存
SSLRequireSSL
SSLOptions +ExportCertData +StdEnvVars
SSLUserName SSL_CLIENT_S_DN_CN
SSLRequire %{SSL_CLIENT_S_DN_O} eq "Test_University_A"</Location>• attribute-resolver.xml (詳細略)学認シンポジウム2012

20

IdP側デフォルト認証方式の設定• relying-party.xml<rp:DefaultRelyingParty provider="https://idp.example.jp/idp/shibboleth"defaultAuthenticationMethod="urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"
defaultSigningCredentialRef="IdPCredential">
IdP側のデフォルトの認証方式としてパスワード認証を指定
SP側から特に指定がなければこの方式を利用

この設定を書かずにパスワード認証と証明書認証を併用しようとすると証明書認証がデフォルトになってしまう

学認シンポジウム2012

21

SPから認証方式指定• shibboleth2.xml<SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Intranet"
relayState="cookie" entityID="https://idp.eaxmple.jp/idp/shibboleth"><SessionInitiator type="SAML2" defaultACSIndex="1“
acsByIndex="false“
パスワードの場合
template="bindingTemplate.html“
authnContextClassRef="urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"
authnContextClassRef=
証明書の場合"urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient"/> <SessionInitiator type="Shib1" defaultACSIndex="5"/></SessionInitiator>
IdPのどの認証方式を利用するかを指示
特に指定しなければIdP側のデフォルトを利用
学認シンポジウム2012

22

まとめ
• Shibboleth認証対応のフォワードプロキシ– SPとしての利用例• Windowsログオン・Shibboleth連携– IdPとしての利用例• ICカード・証明書認証– グループウェア（リバースプロキシ型SSO）での事例紹介– Shibbolethでの利用に向けてテスト中
学認シンポジウム201223