我現在已經在與CAS結合使用LDAP時遇到了一些問題。我想爲多個應用程序實現SSO解決方案。到目前爲止,身份驗證很有效我們希望根據在LDAP中配置的角色授權用戶。問題是CAS不提供用戶角色。從CAS獲取LDAP用戶屬性
我現在到目前爲止我知道需要配置deployerConfigContext.xml
。我還發現了各種教程,大多數都是使用CAS的錯誤版本,或者不按我想要的做。
我們的用戶位於cn=admin,cn=users,dc=manager,dc=local
,團隊居住在cn=admins,ou=groups,dc=manager,dc=local
。中科院版本3.5.2是
我已經試過insertig是這樣的:
<bean id="attributeRepository" class="org.jasig.services.persondir.support.StubPersonAttributeDao">
<property name="backingMap">
<map>
<entry key="uid" value="uid" />
<entry key="eduPersonAffiliation" value="eduPersonAffiliation" />
<entry key="groupMembership" value="groupMembership" />
</map>
</property>
<property name="query" value="(uid={0})" />
<property name="contextSource" ref="contextSource" />
<property name="ldapAttributesToPortalAttributes">
<map>
<entry key="cn" value="Name" />
<entry key="home" value="homeDirectory" />
</map>
</property>
</bean>
CAS告訴我說,他不喜歡的屬性query
,contextSource
和ldapAttributesToPortalAttributes
。我想獲取「簡單」屬性homeDirectory。
您能給我任何人提示如何配置該邪惡的XML文件?如果你願意,我也可以提供完整的xml文件。
UPDATE
一些擺弄後,我試圖配置attributeRepository
在該網站:在章Populate Principal's attributes with LDAP repository
https://wiki.jasig.org/display/CASUM/Attributes。其結果是,CAS沒有啓動,而是給我的消息
Bean property 'ldapAttributesToPortalAttributes' is not writable or has an invalid setter method.
我attributeRepository
看起來是這樣的:
<bean id="attributeRepository" class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao">
<property name="ldapAttributesToPortalAttributes">
<map>
<entry key="cn" value="Name" />
<entry key="home" value="homeDirectory" />
</map>
</property>
</bean>
我比較了我在deployerContext設置豆。 xml並將缺少的屬性「allowedAttributes」添加到serviceRegistryDao。現在我可以打開CAS「管理服務」頁面,並在我的應用程序中分配我需要的屬性。這樣可行。有沒有辦法通過配置文件來完成這項任務? – DaSilva2010
如果要從ldap返回更多值,請在此屬性中添加更多條目** resultAttributeMapping **在** attributeRepository ** bean中並放入別名。這些別名必須映射到** serviceRegistryDao ** bean的** allowedAttributes **中 –
我更改了serviceRegistryDao以使用數據庫進行配置存儲。看到這裏:https://wiki.jasig.org/display/CASUM/Configuring – DaSilva2010