当前位置: 首页 > 知识库问答 >
问题:

CAS 4.x,&LDAP属性

江英卓
2023-03-14

我和这里的其他几个问题有同样的问题,没有一个真正得到回答;也就是说,对于CAS4.x(4.2.6),我无法获得LDAP属性返回给客户机应用程序

问题1这似乎是矫枉过正;自定义代码来解决什么是一个“简单”的问题。

问题2已经这样做了,但它不起作用。

<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的AttributeLeasePolicy...有人看到这个配置中有什么问题吗?

<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个答案

伏德义
2023-03-14

引用CAS安全指南:

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

  1. 身份验证过程需要传输安全凭据。
  2. CAS票证授予票证是承载令牌。
 类似资料:
  • 当我从DeployerConfigContext.xml中删除attributeRepository时,它的抛出异常。 根据本文档https://apereo.github.io/cas/4.2.x/installation/ldap-authentication.html,LdapAuthenticationHandler能够独立地解析和检索主体属性,而不需要额外的主体解析器机器。如果是,我们如

  • 我正在使用Maven覆盖安装部署Jasig CAS4.0.0。我创建了自定义类,当部署它时,在cas.log中出现了以下错误: null maven-compiler-plugin:3.2 maven.compiler.source:1.8 maven.compiler.target:1.8 感谢任何帮助。

  • 我有文本文件,每行都有从我的LDAP中获取的ldap属性,属性是“uid”,它看起来像第一个和第二个名字(例如- 这是我的ldapsearch:ldapsearch-Hldap://server-D“uid=name,ou=group,dc=some,dc=domain,dc=com”-w“example”-b“o=organizationName,ou=group,dc=some,dc=doma

  • 这个问题,在一个例子上解释: 用户指定读取属性“State orProvinceName”。Ldap将其处理为“st”。返回的Searchresult将包含以'st'作为键的key=>值对。如果我查找“state orprovinceName”,这显然是找不到的。我想要那个'st'键--但我不想手动编码替代LDAP字段名称的映射。相关代码部分: 说明:“Found Contact”是SearchR

  • 我试图将一个名为sAMAccountName的新属性添加到一个已经存在的LDAP模式定义中,该定义由IM-LDAP使用UnboundID LDAP SDK读取。 我已经在MatchingGruleUse中添加了attributeTypes条目和sAMAccountName。 对于每个以前存在的属性,调用将返回属性类型。但不是因为我的新属性。 我错过了什么? 10/11/18在@jwilleke评论

  • 我使用的是针对LDAP的spring身份验证。如果提供的用户id和密码存在于ldap中,那么我就能够获得用户登录名。我希望根据用户在LDAP中的memberOf属性对此进行限制。如果用户的memberOf属性具有特定的CN值(CN=AdminAccess或CN=SuperAdminAccess),则身份验证/授权应通过,否则身份验证/授权应失败。 我总是使用上面的配置转到拒绝访问页面。如果我从se