CAS 4.x,& LDAP属性

时间:2016-10-11 18:57:09

标签: attributes ldap cas

我和其他几个问题有同样的问题,其中没有一个问题得到了回答;也就是说,使用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>     

1 个答案:

答案 0 :(得分:0)

引用CAS Security Guide

  

CAS服务器的所有通信必须通过安全通道进行   (即TLSv1)。这有两个主要理由   要求:

     
      
  1. 身份验证过程需要传输安全性   凭证。
  2.   
  3. CAS票证授予票证是不记名令牌。
  4.         

    由于任何一项数据的披露都会允许冒充攻击,所以   确保CAS之间的通信渠道至关重要   客户端和CAS服务器。

         

    实际上,这意味着所有CAS网址都必须使用HTTPS ,但它也是   表示从CAS服务器到应用程序的所有连接都必须   使用HTTPS完成:

         
        
    • 当生成的服务票据在“服务”URL上发送回应用程序时

    •   
    • 调用代理回调网址。

    •   

HTTPS是CAS必须的。但是,有可能禁用它,但强烈建议不要这样做。如果您难以处理SSL配置,我建议您阅读my question,其中详细说明了如何处理密钥库。