1. はじめに
※前提として、「クライアント証明書認証を使った認証」が実施済みであるとします。
本メニューでは、IdPとSPを共にカスタマイズします。
IdPには、ID/パスワード認証とクライアント証明書認証を使って、セキュリティレベルに応じた認証方式を設定します。
またSPには、認証のセキュリティレベルを設定します。
上記の設定により、セキュリティレベルが低くて問題ないSPにはID/パスワード認証でアクセスが行えるが、
セキュリティレベル高いSPにアクセスした場合、認証済みであってもクライアント証明書認証などセキュアな
認証方式を行わなければアクセスできないようになります。
2. 実習セミナーでは
以下のような設定で行います。
手順書と照らし合わせながら、作業を進めてください。
<IdP側の設定>
・認証フローの階層化
実習セミナーでは、ID/パスワードと証明書の2つの認証方式で確認します。
以下のように手順書にある内容を置き換えて設定します。
※「RemoteUser」及び「Level3」の設定は、行いません。
/opt/shibboleth-idp/conf/idp.propertiesの設定内容について
# Regular expression matching login flows to enable, e.g. IPAddress|Password
idp.authn.flows= Password|X509
(省略)
# Whether to prioritize "active" results when an SP requests more than
# one possible matching login method (V2 behavior was to favor them)
idp.authn.favorSSO = true
※アンコメントして、有効にします。
/opt/shibboleth-idp/conf/authn/general-authn.xmlの設定内容について
<bean id="authn/X509" parent="shibboleth.AuthenticationFlow"
(省略)
<bean parent="shibboleth.SAML2AuthnContextClassRef"
c:classRef="urn:mace:gakunin.jp:idprivacy:ac:classes:Level2" />
<bean parent="shibboleth.SAML2AuthnContextClassRef"
c:classRef="urn:mace:gakunin.jp:idprivacy:ac:classes:Level1" />
※Level3の設定を除いた、Level1~Level2の設定とします。
<SP側の設定>
・SP毎にセキュリティレベルを設定
各自作成したSPの認証をセキュリティレベル2に設定し、クライアント証明書を使った認証が必要と設定します。
/etc/httpd/conf.d/shib.confの設定内容について
「/secure」に設定している内容に、IdPで設定したセキュリティレベル2を指定する設定を追加します。
<Location /secure>
AuthType shibboleth
ShibRequestSetting requireSession 1
ShibRequestSetting authnContextClassRef urn:mace:gakunin.jp:idprivacy:ac:classes:Level2
require shib-session
</Location>
3. 手順書
下記の設定手順書を参照し、作業を行います。
※実習時の設定値に置き換える事を忘れないようにしてください。
※手順書内の「認証フローの階層化」を実施し、確認します。
(「Password認証フローのExtendedフロー」の設定については、
「ユーザによる認証方式が選択できる設定」で実施します。)
4. 動作確認
① 設定後、IdPはTomcat、SPはApacheの再起動を行ってない場合は行ってください。
systemctl restart tomcat
systemctl restart httpd
② 各自が使用するSPの接続確認用ページにアクセスします。
例)1番を割り振られた場合 https://ex-sp-test01.gakunin.nii.ac.jp/
③ ログインボタンをクリックします。
④ DSの設定を行っている場合、所属機関の選択画面が表示されるので、各自が使用するIdPを選択します。
⑤ 証明書認証用のログイン画面が表示されるので、Certificate Loginボタンをクリックします。
⑥ 個人証明書の要求というダイアログが表示されるので、対象となるクライアント証明書を選択して、
OKボタンをクリックします。 ※送信属性同意画面が表示される場合は、そのまま設定値を送信しします。
⑦ 正しく属性受信の確認ページが表示される事を確認してください。
※ID/パスワードを入力するログイン画面は表示されず、クライアント証明書で認証が行われ、
ログインする事ができます。
⑧ 次に動作確認用のSPにアクセスし、認証要求がなくシングルサインオンにてログインできることを確認します。
⑨ 一度ブラウザを閉じて、②でアクセスしたSPを動作確認用SPに置き換えてアクセスします。
⑩ セキュリティレベルが動作確認用SPには設定されていないため、進めていくとデフォルト設定の
ID/パスワード認証となります。入力してログインしてください。
⑪ 次に各自が作成したSPにアクセスします。今回はシングルサインオンとして認証済みですが、
アクセスレベルが高いため証明書認証が要求されることを確認します。
⑫ 認証後、正しく属性受信の確認ページが表示される事を確認してください。