【问题标题】:How to authenticate user against directory via LDAP in CQ 6如何在 CQ 6 中通过 LDAP 针对目录对用户进行身份验证
【发布时间】:2015-01-24 18:15:08
【问题描述】:

问题:我们将 CQ 与外部门户集成,门户在请求标头中发送用户信息,即用户名和授权令牌(密码),此请求针对 CQ 发布实例 AEM 6.0 版。我们必须根据客户端提供的 LDAP 验证用户。我们如何才能做到这一点?

到目前为止尝试过的事情: 按照AEM 6 Docs 配置并连接到LDAP。接下来尝试使用CQ中提供的用户目录登录,CQ尝试通过LDAP请求(在config中提供)连接和查询用户,并在crx中获取并创建相应的用户,这样用户的详细信息被缓存,LDAP请求不当他/她尝试再次登录时为同一用户触发。然而,在 CQ 中创建的这个用户没有密码信息,即没有在 ldap 请求中获取密码并在 crx 中更新。因此对 CQ 的身份验证失败。简而言之,添加配置后,CQ 通过 LDAP 连接目录,获取用户详细信息,但不获取该用户的密码,这会导致身份验证失败。

寻找最好的方法来做到这一点。欢迎任何替代方法。请参阅下面添加的配置。

LdapIdentityProvider searchTimeout="60s"
host.name="***"
group.makeDnPath=B"false"
user.baseDN="ou\=people,dc\=***,dc\=com"
group.objectclass=["groupOfUniqueNames"]
user.objectclass=["person","**","**"]
host.noCertCheck=B"false"
user.makeDnPath=B"false"
bind.dn="uid\=***,ou\=***,ou\=***,dc\=***,dc\=com"
group.baseDN="ou\=groups,o\=example,dc\=com"
group.extraFilter=""
user.extraFilter=""
host.port=I"389"
bind.password="***"
group.nameAttribute="cn"
host.ssl=B"false"
provider.name="***"
host.tls=B"false"
user.idAttribute="uid"
group.memberAttribute="uniquemember"

ExternalLoginModuleFactory 
jaas.controlFlag="SUFFICIENT"
jaas.ranking=I"50"
sync.handlerName="***"
jaas.realmName=""
idp.name="***"

DefaultSyncHandler
group.pathPrefix=""
group.expirationTime="1d"
user.membershipExpTime="1h"
user.pathPrefix=""
user.propertyMapping=["rep:email\=mail","rep:fullName\=cn","profile/email\=mail","profile/familyName\=sn","profile/givenName\=gn"]
handler.name="qaldapsync"
user.autoMembership=[""]
user.expirationTime="1h"
group.propertyMapping=["description\=description","rep:email\=mail","rep:fullname\=cn"]
user.membershipNestingDepth=I"0"
group.autoMembership=[""]

【问题讨论】:

    标签: java ldap aem


    【解决方案1】:

    身份验证始终针对 LDAP 系统,而不是针对 AEM。所以密码没有同步是正常的。

    如果我没听错,您确实成功地将 LDAP 连接到 AEM 并进行了同步,但抱怨没有同步密码?如上所述,这不是您通常的做法,我建议您保留密码以及对 LDAP 服务器的身份验证。但如果您确实需要同步密码,可以尝试将其添加到 user.propertyMapping:rep:password=userPassword。

    缺点是用户在 LDAP 中删除或更改了 LDAP 中的密码仍然可以使用他的旧帐户和密码登录 AEM。所以这将是一个很大的安全问题。

    附加提示:仅当您至少将 us​​er.membershipNestingDepth 配置为“1”时,组才会同步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 2015-09-28
      • 2018-03-11
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多