...
として設定を行い、クライアント証明書が有効な証明書であり、かつ、上記の条件を満たす場合に認証を行う設定としています。
・/opt/shibboleth-idp/conf/idp.properties の変更
クライアント証明書を用いた認証のために idp.properties ファイルを変更します。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
(省略) # Regular expression matching login flows to enable, e.g. IPAddress|Password (省略) |
・/etc/httpd/conf.d/ssl.confへの追加(赤文字の個所を追加)
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
(省略) |
...
・/opt/shibboleth-idp/conf/ldap.propertiesの変更
LDAP から属性を取得する際のキーとなる属性はデフォルトでは uid ですが変更したい場合は下記の場所を変更します。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
(省略) |
・/opt/shibboleth-idp/conf/relying-party.xmlの修正
複数の認証手段を使うのでなければ必要ありませんが、複数の認証手段を使う予定で、この証明書認証をデフォルトにしたい(SPからの認証要求時に認証手段についての指定がない場合に証明書認証に遷移させたい)場合には、以下のように証明書認証をデフォルトの認証手段として指定しておきましょう。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
※「DefaultRelyingParty」を検索し、場所を特定してください。 |
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
複数の認証手段を使うのでなければ以上で完了です。
複数の認証手段を使う(つまりidp.authn.flows
に複数記述する)場合で、この証明書認証をデフォルトにしたい(SPからの認証要求時に認証手段についての指定がない場合に証明書認証に遷移させたい)場合には、conf/authn/general-authn.xmlのbeanの順序を変更してください。上にあるものが優先的に選択されます。
さらに、特定のSPに対して証明書認証以外を利用させたくない場合は、relying-party.xml
の設定で p:authenticationFlows="#{{'X509'}}"
のように利用可能な認証手段を指定してください。
トラブルシューティング
※Apacheではクライアント証明書が認識されているがその情報がTomcatに伝わっていない場合、/usr/java/tomcat/conf/server.xmlの8009番ポートConnectorにtomcatAuthentication="false"が設定されていることを確認してください。
参考: jdk 7、tomcat 7をインストールする
参考
IdPv3の証明書認証の詳細: Shibboleth Wiki: X509AuthnConfiguration