使用ldap中的sAMAcountName作为用户名

使用ldap中的sAMAcountName作为用户名,ldap,keycloak,Ldap,Keycloak,我将我们的active directory连接到Key斗篷(4.0.0.Beta1)并导入了用户-这很好 但是用户名应该从sAMAccountName中填写。因此,我将用户名LDAP属性更改为该属性 但在单击“同步所有用户”后,控制台窗口中出现以下错误: 8:20:13,372 ERROR [org.keycloak.storage.ldap.LDAPStorageProviderFactory] (default task-119) Failed during import user from

我将我们的active directory连接到Key斗篷(4.0.0.Beta1)并导入了用户-这很好

但是用户名应该从
sAMAccountName
中填写。因此,我将
用户名LDAP属性
更改为该属性

但在单击“同步所有用户”后,控制台窗口中出现以下错误:

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)
...
我尝试了一些映射程序(特别是
用户名
),但没有成功。似乎只有几个属性是从ldap服务器读取的(请参见输出中的
来自ldap的属性:…

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


如何将sAMAccountName属性设置为username?

我刚刚在4.1.0.Final中对其进行了测试,当您将username LDAP属性更改为sAMAccountName时,它就可以工作了,另外 用户名映射器中的LDAP属性也可以设置为sAMAccountName

我尝试了一些映射程序(尤其是用户名),但没有成功


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

对我来说,它起作用了。请查找以下流程:

1) 在用户联合->LDAP提供程序->中有一个名为“用户名LDAP属性”的设置。(如图所示)


2) 选择“映射器”选项卡,编辑“用户名”映射器,并更改为以下设置:

Works,thanx。您知道如何填写用户表中的“名字”列吗?我做了一些映射,但又一次没有运气。我遇到了同样的问题,从3.xOK密钥斗篷迁移到4.x。如前所述更改映射将再次起作用。Tks