我和其他几个问题有同样的问题,其中没有一个问题得到了回答;也就是说,使用CAS 4.x(实际上是4.2.6)我无法获得LDAP属性来返回客户端应用程序。
Question 1这似乎有点矫枉过正;自定义代码,以解决什么是"简单"问题
Question 2已经完成了这项工作,而且它没有用。
所以,现在轮到我问了......是否有一些神奇的功能让它发挥作用?我们长期使用3.5而没有任何问题。我试图将这些设置转换为4.x Maven覆盖层和4.x的新上下文配置,并且它没有做到这一点。'它
我可以在CAS请求的日志中看到,并获取我正在寻找LDAP的属性。但是他们没有将令牌放回到应用程序中。
除了Apereo文档列出的内容之外,还有什么需要做的?我认为它的属性存储库可能是???如果有什么东西可以帮助我解决这个问题,请问:配置,日志(当然是编辑)......任何事情。
感谢。
更新#1。这是我的解析器列表。注意:我将代码/设置保持在注释状态,直到我将其清理完为止。
<util:map id="authenticationHandlersResolvers">
<!--
<entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
<entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
-->
<!--<entry key-ref="ldapAuthenticationHandler" value-ref="primaryPrincipalResolver" /> -->
<entry key-ref="ldapAuthenticationHandler" value="#{null}" />
</util:map>
更新#2
我做了更多测试,但仍然没有成功。我认为,它归结为LdapAuthenticationHandler的principalAttributeMap不起作用,或者,serviceRegistryDao的attributeReleasePolicy ......任何人都会看到此配置中的任何问题?
<bean id="ldapAuthenticationHandler" class="org.jasig.cas.authentication.LdapAuthenticationHandler"
p:principalIdAttribute="sAMAccountName"
c:authenticator-ref="authenticator"
>
<property name="principalAttributeMap">
<map>
<entry key="cn" value="cn" />
<entry key="mail" value="Email" />
<entry key="memberOf" value="Groups" />
<entry key="displayName" value="displayName" />
</map>
</property>
</bean>
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
<property name="registeredServices">
<list>
<bean class="org.jasig.cas.services.RegexRegisteredService"
p:id="5"
p:name="All Servicesxxx"
p:description="Allow connections for all services and protocols"
p:serviceId="^(http|https|imaps)://.*"
p:evaluationOrder="5"
>
<property name="attributeReleasePolicy">
<bean class="org.jasig.cas.services.ReturnAllAttributeReleasePolicy" />
</property>
</bean>
</list>
</property>
</bean>
答案 0 :(得分:0)
与 CAS服务器的所有通信必须通过安全通道进行 (即TLSv1)。这有两个主要理由 要求:
- 身份验证过程需要传输安全性 凭证。
- CAS票证授予票证是不记名令牌。
醇>由于任何一项数据的披露都会允许冒充攻击,所以 确保CAS之间的通信渠道至关重要 客户端和CAS服务器。
实际上,这意味着所有CAS网址都必须使用HTTPS ,但它也是 表示从CAS服务器到应用程序的所有连接都必须 使用HTTPS完成:
当生成的服务票据在“服务”URL上发送回应用程序时
调用代理回调网址。
HTTPS是CAS必须的。但是,有可能禁用它,但强烈建议不要这样做。如果您难以处理SSL配置,我建议您阅读my question,其中详细说明了如何处理密钥库。