ldap - 使用来自 ldap 的 sAMAcountName 作为用户名

标签 ldap keycloak

我将我们的事件目录连接到 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:...)。

即:whenChanged、whenCreated、mail、givenName、sn、userAccountControl、pwdLastSet。

如何获取 sAMAcountName 属性作为用户名?

最佳答案

我刚刚在 4.1.0.Final 中对其进行了测试,当您将用户名 LDAP 属性更改为 sAMAccountName 时,它可以工作。以及
用户名映射器中的 LDAP 属性也指向 sAMAccountName。

I tried some mappers (especially username) but with no luck.



您的问题表明,您已经尝试在用户名映射器中执行某些操作。所以你肯定走在正确的轨道上。您的版本中存在错误,或者两个字段不正确匹配。

关于ldap - 使用来自 ldap 的 sAMAcountName 作为用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50168751/

相关文章:

ldap - inetOrgPerson 与member 或memberOf?

json - 在 Node.js 中使用 JSON.stringify 导致 'process out of memory' 错误

spring-boot - 为什么多个访问 token 可以在 Keycloak 中使用?

node.js - KeyCloak-Nodejs-返回授权码和状态后进入死循环

Keycloak:Admin-cli 添加 SMTP 服务器详细信息?

java - LDAP 请求中返回大量对象的 SizeLimitExceededException

java - 使用 Java 通过 SSL 的 LDAP

ldap - 添加 : Object class violation error on adding password policies

asp.net - ASP.NET Core 的 Keycloak 客户端

jenkins - 如何在keycloak中为jenkins设置基于角色的登录