Я подключил наш активный каталог к 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 в качестве имени пользователя?