Как аутентифицировать пользователя по каталогу через LDAP в CQ 6

1

Проблема. У нас есть CQ, интегрированный с внешним порталом, портал отправляет в заголовки запросов информацию пользователя, то есть имя пользователя и токен авторизации (passsword), этот запрос предназначен для экземпляра AQ версии CQ 6.0. Мы должны проверить пользователя на клиенте, предоставленном LDAP. Как мы можем это достичь?

До сих пор делались: следовали документам AEM 6 для настройки и подключения к LDAP. Затем попробовал войти в систему с предоставленным пользователем каталогом в CQ, CQ пытается подключиться и запросить пользователя через запрос LDAP (предоставляется в конфиге) и выберет и создаст соответствующего пользователя в 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=[""]
Теги:
ldap
aem
cq5

1 ответ

1
Лучший ответ

Аутентификация всегда идет вразрез с системой LDAP, а не с AEM. Так что нормально, что пароль не синхронизирован.

Если я получу вас правильно, вы успешно подключили LDAP к AEM и выполнили синхронизацию, но жалуетесь, что не синхронизировали пароль? Как уже упоминалось выше, это не так, как вы обычно это делаете, и я рекомендую оставить пароль и, таким образом, аутентификацию на сервере LDAP. Но если вам действительно нужен пароль для синхронизации, вы можете попробовать добавить его в user.propertyMapping: rep: password = userPassword.

Недостатком было бы то, что пользователь, удаленный в LDAP или изменивший пароль в LDAP, все равно может использовать свою старую учетную запись и пароль для входа в AEM. Таким образом, это будет большой проблемой безопасности.

Дополнительный совет: группы будут синхронизироваться только в том случае, если вы настроите user.membershipNestingDepth как минимум на "1".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню