認証方法の変更、設定(証明書による認証)
注意 |
---|
LDAPを利用したID/パスワード認証の他に、様々な認証方法を利用することが可能です。以下では、クライアント証明書を利用した認証の設定方法を示します。
...
として設定を行い、クライアント証明書が有効な証明書であり、かつ、上記の条件を満たす場合に認証を行う設定としています。
また、eduPersonPrincipalNameをキーとして、クライアント証明書のサブジェクト“CN”の値によりLDAPから各属性を取得してい また、eduPersonPrincipalNameをキーとして、クライアント証明書のサブジェクト“CN”の値によりLDAPから各属性を取得し ます。そのため、クライアント証明書のサブジェクト”CN”の値を、LDAPのeduPersonPrincipalNameに格納しておくことが必要で す。
・/opt/shibboleth-idp/conf/handler.xml の変更(IdPインストール直後の状態に戻す)idp.properties の変更
クライアント証明書を用いた認証のためにidp.properties クライアント証明書を用いた認証のためにhandler.xml ファイルを変更します。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
(省略) <!-- Login Handlers --> <!-- --> ←コメントアウトを閉じて、こちらを有効にします <LoginHandler xsi:type="RemoteUser"> <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient</AuthenticationMethod> TLSクライアント証明書認証であることをSPに対して明示する↑ </LoginHandler> <!-- --> ←コメントアウト <!-- Username/password login handler --> <!-- ← コメントアウト <LoginHandler xsi:type="UsernamePassword" jaasConfigurationLocation="file:///opt/shibboleth-idp-2.0.0/conf/login.config"> <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMethod> </LoginHandler> --> ← コメントアウト |
...
# Regular expression matching login flows to enable, e.g. IPAddress|Password (省略) |
・/etc/httpd/conf.d/ssl.confへの追加(赤文字の個所を追加)
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
(省略) |
・/opt/shibboleth-idp/conf/attribute-resolver.xmlの修正1xmlの変更
また、クライアント証明書のサブジェクト“CN”の値をedupersonPrincipalNameに設定して、これをキーとしてLDAPから属性を取得するため、下記の設定を行います。クライアント証明書のサブジェクト“CN”の値をSP へ送出する属性edupersonPrincipalNameに設定するため、下記の設定を行います。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
※「eduPersonPrincipalName」を検索し、場所を特定してください。 |
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
...
・/opt/shibboleth-idp/conf/attribute-resolver.xmlの修正2ldap.propertiesの変更
クライアント証明書のサブジェクト"CN"の値をキーにしてLDAPのeduPersonPrincipalNameと比較を行い属性を取得するため、下記の設定を行います。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
※「LDAP Connector」を検索し、場所を特定してください。 <!-- Example LDAP Connector --> <!-- --> <resolver:DataConnector id="myLDAP" xsi:type="LDAPDirectory" xmlns="urn:mace:shibboleth:2.0:resolver:dc" ldapURL="ldap://localhost" baseDN="o=test_o,dc=ac,c=JP" principal="cn=olmgr,o=test_o,dc=ac,c=JP" principalCredential="csildap"> <FilterTemplate> <![CDATA[ (eduPersonPrincipalName=$requestContext.principalName) ←変更 ]]> </FilterTemplate> </resolver:DataConnector> <!-- --> |
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
・${CATALINA_HOME}/webapp/idp/WEB-INF/web.xmlへの追加(赤文字の箇所を追加)
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
(省略) <!-- Servlet protected by container used for RemoteUser authentication --> <servlet> <servlet-name>RemoteUserAuthHandler</servlet-name> <servlet-class>edu.internet2.middleware.shibboleth.idp.authn.provider.RemoteUserAuthServlet</servlet-class> <load-on-startup>3</load-on-startup> <init-param> <param-name>authnMethod</param-name> <param-value>urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient</param-value> </init-param> </servlet> (省略)(省略) |
・/opt/shibboleth-idp/conf/relying-party.xmlの修正
...
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
※「DefaultRelyingParty」を検索し、場所を特定してください。 |
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
...
※Apacheではクライアント証明書が認識されているがその情報がTomcatに伝わっていない場合、/usr/java/tomcat /conf/server.xmlの8009番ポートConnectorにtomcatAuthentication="false"が設定されていることを確認してください。
参考: jdk6、tomcat6をインストールする jdk 7、tomcat 7をインストールする
参考URL(証明書認証の別実装): https://wiki.shibboleth.net/confluence/display/SHIB2/X.509+Login+Handler