Используйте sAMAcountName из ldap в качестве имени пользователя - PullRequest
0 голосов
/ 04 мая 2018

Я подключил наш активный каталог к ​​keycloak (4.0.0.Beta1) и импортировал пользователей - это работает нормально.

Но имя пользователя должно быть заполнено с sAMAccountName. Поэтому я изменил Username LDAP attribute на это.

Но после нажатия Synchronize all users я получаю эту ошибку в окне консоли:

8:20:13,372 ERROR [org.keycloak.storage.ldap.LDAPStorageProviderFactory] (default task-119) Failed during import user from LDAP: org.keycloak.models.ModelException: User returned from LDAP has null username! Check configuration of your LDA
 mappings. Mapped username LDAP attribute: cn, user DN: CN=Mustermann Max,OU=Normung,OU=Mech,OU=Konstruktion,OU=Abteilungen,DC=company,DC=org, attributes from LDAP: {whenChanged=[2017037125253.0Z], whenCreated=[20140520092805.0
], mail=[Max.Mustermann@company.org], givenName=[Max], sn=[Mustermann], userAccountControl=[66048], pwdLastSet=[130750516258418527]}
       at org.keycloak.storage.ldap.LDAPUtils.getUsername(LDAPUtils.java:113)
       at org.keycloak.storage.ldap.LDAPStorageProviderFactory$3.run(LDAPStorageProviderFactory.java:521)
       at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransaction(KeycloakModelUtils.java:227)
       at org.keycloak.storage.ldap.LDAPStorageProviderFactory.importLdapUsers(LDAPStorageProviderFactory.java:514)
       at org.keycloak.storage.ldap.LDAPStorageProviderFactory.syncImpl(LDAPStorageProviderFactory.java:469)
       at org.keycloak.storage.ldap.LDAPStorageProviderFactory.sync(LDAPStorageProviderFactory.java:407)
...

Я пробовал некоторые картографы (особенно username), но безуспешно. Похоже, что с ldap-сервера считывается только несколько атрибутов (см. attributes from LDAP:... в выходных данных).

А именно: когда изменено, когда создано, почта, данное имя, sn, userAccountControl, pwdLastSet.

Как я могу получить атрибут sAMAcountName в качестве имени пользователя?

1 Ответ

0 голосов
/ 02 августа 2018

Я только что проверил его в 4.1.0. Наконец, и он работает, когда вы меняете атрибут LDAP Имя пользователя на sAMAccountName и дополнительно Атрибут LDAP в имени пользователя , сопоставляющий также с sAMAccountName .

Я пробовал некоторые картографы (особенно имя пользователя), но безуспешно.

Ваш вопрос говорит о том, что вы уже пытались что-то сделать в средствах отображения имени пользователя. Таким образом, вы были определенно на правильном пути. Либо в вашей версии была ошибка, либо два поля не совпадали правильно.

...