src/main/webapp/WEB-INF/deployerConfigContext.xml の編集

前提条件:

LDAP Server へのアクセスの設定

認証方法の設定

認証方法は複数の設定が可能です. さらに, 次の2種類の認証方法があります.

いずれの場合にも, 適切に記述を変更することで, 種々の認証方法を利用することが可能です. (ここに記述されているものは単なる例に過ぎません)

Interactive Authentication の設定
<bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl">
  <property name="credentialsToPrincipalResolvers">
    <list>
      <bean class="jp.ac.nagoya_u.cas.authentication.principal.GenericMapCredentialsToPrincipalResolver" />
    </list>
  </property>
  <property name="authenticationHandlers">
    <list>
      <bean class="jp.ac.nagoya_u.cas.adaptors.ldap.BindLdapAuthenticationHandler" >
<!--        <property name="filter" value="(|(uid=%u)(mail=%u))" />  -->
        <property name="filter" value="(uid=%u)" /> 
	<property name="searchBase" value="ou=people,dc=math,dc=nagoya-u,dc=ac,dc=jp" />
	<property name="loginLevel" value="PIN_UID_AUTHENTICATION" />
	<property name="contextSource" ref="contextSource" />
      </bean>
      <bean class="jp.ac.nagoya_u.cas.adaptors.ldap.BindLdapAuthenticationHandler" >
        <property name="filter" value="(mail=%u)" /> 
	<property name="searchBase" value="ou=people,dc=math,dc=nagoya-u,dc=ac,dc=jp" />
	<property name="loginLevel" value="PIN_MAIL_AUTHENTICATION" />
	<property name="contextSource" ref="contextSource" />
      </bean>
      <bean class="jp.ac.nagoya_u.cas.adaptors.ldap.SubscriberIdLdapAuthenticationHandler" >
        <property name="cellerPhoneCheck" ref="cellerPhoneCheckBean" />
        <property name="filter" value="(cellerPhoneSubscriberId=%u)" /> 
	<property name="searchBase" value="ou=people,dc=math,dc=nagoya-u,dc=ac,dc=jp" />
	<property name="loginLevel" value="CELLER_SUBSCRIBERID_AUTHENTICATION" />
	<property name="contextSource" ref="contextSource" />
      </bean>
    </list>
  </property>
  <property name="authenticationMetaDataPopulators">
    <list>
      <bean class="jp.ac.nagoya_u.cas.authentication.GenericMapCredentialsMetaDataPopulator" />
    </list>
  </property>
</bean>
ユーザから認証データを受け取った後に, 認証データを利用して, Bean ID authenticationManagerauthenticationHandlers にリストされた順序で認証を試みます. 認証結果が true となった段階で認証ハンドラが終了します.
ここでは3段階の認証が定義されています. いずれの場合にも, 認証に成功した時点で "Login Level" が loginLevel で定義された値に設定されます.
Non Interactive Authentication の設定

この設定は cas-servlet.xml にあります.

   <property name="nonInteractiveAuthenticationHandlers">
     <list>
       <bean class="jp.ac.nagoya_u.cas.adaptors.x509.authentication.handler.X509NonInteractiveAuthenticationHandler">
         <property name="credentialsToPrincipalResolver">
	   <bean class="jp.ac.nagoya_u.cas.adaptors.x509.authentication.principal.X509CredentialsToSerialNumberResolver">
	     <property name="loginLevel" value="X509_CLIENT_CERTIFICATION_WITH_SERIAL_NUMBER" />
	   </bean>
	 </property>
	 <property name="authenticationMetaDataPopulator">
	   <bean class="jp.ac.nagoya_u.cas.adaptors.ldap.handler.LdapMetaDataPopulator">
	     <property name="filter" value="(certificateSerialNumber=%u)" /> 
	     <property name="searchBase" value="ou=people,dc=math,dc=nagoya-u,dc=ac,dc=jp" />
	     <property name="contextSource" ref="contextSource" />
	   </bean>
	 </property>
       </bean>
       <bean class="jp.ac.nagoya_u.cas.adaptors.x509.authentication.handler.X509NonInteractiveAuthenticationHandler">
         <property name="credentialsToPrincipalResolver">
	   <bean class="jp.ac.nagoya_u.cas.adaptors.x509.authentication.principal.X509CredentialsToSubjectResolver">
	     <property name="loginLevel" value="X509_CLIENT_CERTIFICATION" />
	     <property name="postfix" value="L=Nagoya, ST=Aichi, C=JP" />
	     <property name="entryName" value="EMAILADDRESS" />
	   </bean>
	 </property>
	 <property name="authenticationMetaDataPopulator">
	   <bean class="jp.ac.nagoya_u.cas.adaptors.ldap.handler.LdapMetaDataPopulator">
	     <property name="filter" value="(uid=%U)" /> 
	     <property name="searchBase" value="ou=people,dc=math,dc=nagoya-u,dc=ac,dc=jp" />
	     <property name="contextSource" ref="contextSource" />
	   </bean>
	 </property>
       </bean>
     </list>
   </property>
Non Interactive Authentication は, Interactive Authentication の直前に実行されます. Property nonInteractiveAuthenticationHandlers にリストされた順序で bean を利用して認証を試みます. 認証結果が true となった段階で認証ハンドラが終了します.
第一の bean は, クライアント証明書に記載された "Serial Number" を LDAP の "certificateSerialNumber" 属性と比較することによって認証を試みます.
第二の bean は, クライアント証明書の末尾が "L=Nagoya, ST=Aichi, C=JP" であるときに, EMAILADDRESS フィールドを LDAP の "uid" 属性と比較することで認証を行ないます.
認証結果の Login Level の定義
認証結果の Login Level は applicationContext_1.xml で以下のように定義されています. (変更可能です)
  <bean id="checkLoginLevel" class="jp.ac.nagoya_u.cas.authentication.loginlevel.CheckLoginLevel">
    <property name="loginLevels">
      <list>
        <value>CELLER_SUBSCRIBERID_AUTHENTICATION</value>
        <value>PIN_MAIL_AUTHENTICATION</value>
        <value>PIN_UID_AUTHENTICATION</value>
        <value>X509_CLIENT_CERTIFICATION</value>
        <value>X509_CLIENT_CERTIFICATION_WITH_SERIAL_NUMBER</value>
      </list>    
    </property>
    <property name="defaultLoginLevel" value="PIN_MAIL_AUTHENTICATION" />
  </bean>
リストの上位(前)にあるものほど Login Level は低くなります. また, defaultLoginLevel は CAS ACL において, login Leven が設定されていない場合に用いられるデフォールトの Login Level を示します.

CAS ACL へのアクセスの設定

現在のリリースでは, CAS ACL へのアクセス方法が以下の2種類が実装されています.

LDIF 形式のファイルを指定のディレクトリにおく場合
  <bean id="aclReadHandler" class="jp.ac.nagoya_u.cas.acl.handler.PlainTextACLRegistryHandler">
    <property name="fileName" value="/usr/public/www/www-tomcat/webapps/cas.ldif" />
  </bean>
property name="fileName"value を書き換えます.
LDAP Server から CAS ACL を読む場合
  <bean id="aclReadHandler" class="jp.ac.nagoya_u.cas.acl.handler.LdapACLRegistryHandler">
    <property name="ldapURL" value="ldap://xxx.nagoya-u.ac.jp/" />
    <property name="searchBase" value="ou=cas,dc=nagoya-u,dc=ac,dc=jp" />
    <property name="filter" value="(objectclass=cas)" />
    <property name="bindUser" value="BIND_USERNAME_FOR_CAS_ACL" />
    <property name="bindPassword" value="BIND_PASSWORD_FOR_CAS_ACL" />
  </bean>
BIND_USERNAME_FOR_CAS_ACLBIND_PASSWORD_FOR_CAS_ACL を CAS ACL を読み出すための Bind User とパスワードに書き換えます. さらに, ldapURL, searchBase を適切に書き換えます.

Return to Document TOP
Return to TOP


naito@math.nagoya-u.ac.jp
$Id: deployerConfigContext.html,v 1.2 2007-06-19 20:40:17+09 naito Exp $