我将活动目录连接到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)
...
Run Code Online (Sandbox Code Playgroud)
我尝试了一些制图器(尤其是username),但是没有运气。看来只有几个从ldap服务器读取的属性(请参见attributes from LDAP:...输出)。
即:whenChanged,WhenCreated,mail,giveName,sn,userAccountControl,pwdLastSet。
如何获得sAMAcountName属性作为用户名?
小智 9
对我来说,它奏效了。请找到以下流程:
1) 在 User Federation -> LDAP Provider -> 有一个名为“UserName LDAP Attribute”的设置。(如下所示ldap provider settings)
2)选择映射器选项卡并编辑“用户名”映射器并更改为以下设置:用户名映射器设置
小智 6
我刚才测试了它在4.1.0.Final还有当你改变它的工作原理用户名LDAP属性来sAMAccountName赋 和额外的 LDAP属性的用户名也映射到sAMAccountName赋。
我尝试了一些映射器(尤其是用户名),但是没有运气。
您的问题表明,您已经尝试在用户名映射器中执行某些操作。因此,您绝对处在正确的轨道上。您的版本中存在错误,或者两个字段不正确匹配。
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |