Liferayへのポータルを開発していて、そこにシングルサインオンメカニズム(SSO)を適用したいと考えています。複数のWebアプリケーションの集中認証に Jasig CAS を使用しています。これまで、認証方法としてCASを使用できることはわかっていますが、次のステップは、インテリジェンスを追加して、認証を要求することです。 Active Directory サーバ。
これは、認証が行われる「データベース」としてADを使用することで可能になるはずですが、私はこれらのことに慣れておらず、JasigCASでこれを行う方法がわかりません。
このタスクを実行する方法の手がかりはありますか?
私はここでいくつかの仮定をしているので、私が目標から外れている場合は私に知らせてください:
CASソースツリー内で、次のファイルに変更を加える必要があります。
pom.xml:
<dependencies>
内に以下を追加します。
<!-- LDAP support -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>cas-server-support-ldap</artifactId>
<version>${project.version}</version>
</dependency>
deployerConfigContext.xml:
認証ハンダーを再構成します。
<property name="authenticationHandlers">
を探します。この中には<list>
があり、この中には(おそらく)2つの<bean ...>
要素がありますこれを保管してください:
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" />
もう1つの<bean>
(おそらく)は、現在使用している認証方法に対応しています。 (CASが外部サービスを使用せずにこれを行う方法はいくつかあるため、質問に基づいて明確ではありません。デフォルトはSimpleTestUsernamePasswordAuthenticationHandlerであり、ユーザー名がパスワードと等しい限り認証されます)。その<bean>
を次のように置き換えます。
<!-- LDAP bind Authentication Handler -->
<bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler">
<property name="filter" value="uid=%u" />
<property name="searchBase" value="{your LDAP search path, e.g.: cn=users,dc=example,dc=com}" />
<property name="contextSource" ref="LDAPcontextSource" />
<property name="ignorePartialResultException" value="yes" /> <!-- fix because of how AD returns results -->
</bean>
AD構成に従って、「searchBase」プロパティを変更します。
LDAPのコンテキストソースを作成します。
これをルート<beans>
要素内のどこかに追加します。
<bean id="LDAPcontextSource" class="org.springframework.ldap.core.support.LdapContextSource">
<property name="pooled" value="false"/>
<property name="urls">
<list>
<value>{URL of your AD server, e.g.: ldaps://ad.example.com}/</value>
</list>
</property>
<property name="userDn" value="{your account that has permission to bind to AD, e.g.: uid=someuser, dc=example, dc=com}"/>
<property name="password" value="{your password for bind}"/>
<property name="baseEnvironmentProperties">
<map>
<entry>
<key>
<value>Java.naming.security.authentication</value>
</key>
<value>simple</value>
</entry>
</map>
</property>
</bean>
それに応じて、「urls」、「userDn」、「password」を変更します。
Cas-server-webappを再構築して試してください。