【发布时间】: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=[""]
【问题讨论】: