我在服务器中安装了Openldap,然后将用户添加到ldap,下面的屏幕显示通过Apache Active Directory显示添加的用户
现在在密钥斗篷中,我将用户联盟添加为openLdap,并将其与ldap连接起来没有任何问题,但是当我尝试同步用户时,我会收到消息
成功!用户同步成功完成。 0个导入的用户,0 更新的用户
因此,没有用户从ldap导入到keycloak,下面是keycloak中的相关ldap连接信息。
答案 0 :(得分:1)
用户条目未正确存储在目录中。实际上,您不应该将cn=root
用作容器,因为它应该代表目录管理器,并且应该用于绑定和其他操作,而不是用于构造目录。
相反,您应该使用默认的用户容器(至少对于OpenLDAP和Apache DS)为ou=people,dc=suredev20
,即。您需要移动cn=subodh
cn=subodh,ou=user,cn=root,dc=suredev
cn=subodh,ou=people,dc=suredev20
此外,在Keycloack中,您需要相应地设置用户dn :ou=people,dc=suredev20
(您可以尝试使用ou=user,cn=root,dc=suredev
而不移动subodh
条目,但不建议这样做。)
答案 1 :(得分:1)
最后,感谢@EricLavault和公司同事之一Keycloak能够成功导入用户。我已完成以下更改以解决此问题。
User Object Classes=*
ou=People
,然后在其下创建了用户Users DN = ou=user,ou=people,dc=suredev20
此后,它开始抛出异常
错误[org.keycloak.storage.ldap.LDAPStorageProviderFactory](默认 任务1931)在从LDAP导入用户期间失败: org.keycloak.models.ModelException:从LDAP返回的用户为null 用户名!检查LDAP映射的配置。映射的用户名 LDAP属性:uid,用户DN: cn = subodh123,ou = user,ou = People,dc = suredev20,来自LDAP的属性: {sn = [joshi123],cn = [subodh123],createTimestamp = [20191118180647Z], ModifyTimestamp = [20191118180647Z]}
默认情况下,Username LDAP attribute = cn
通过使用cn
作为ldap用户名来固定。