【问题标题】:Keycloak - Issues syncing users with LDAPKeycloak - 将用户与 LDAP 同步的问题
【发布时间】:2020-03-13 20:14:09
【问题描述】:

我在服务器上安装了 Openldap,然后将用户添加到 ldap 中,下面的屏幕显示通过 Apache Active Directory 显示添加的用户

现在在 keycloak 中,我将用户联合添加为 openLdap,并将其连接到 ldap 没有任何问题,但是当我尝试同步用户时,我收到了消息

成功!用户同步成功完成。 0个导入用户,0个 更新用户

所以没有用户从ldap导入keycloak,下面是keycloak中相关的ldap连接信息。

【问题讨论】:

    标签: ldap keycloak openldap


    【解决方案1】:

    感谢@EricLavault 和一位公司同事,Keycloak 终于能够成功导入用户。以下是我为解决此问题所做的更改。

    1. 更改User Object Classes=*
    2. 创建了一个新条目ou=People,然后在其下创建了用户
    3. 在 Keycloak 中使用 Users DN = ou=user,ou=people,dc=suredev20

    在此之后它开始抛出异常

    错误 [org.keycloak.storage.ldap.LDAPStorageProviderFactory](默认 task-1931) 从 LDAP 导入用户时失败: org.keycloak.models.ModelException:从 LDAP 返回的用户为空 用户名!检查 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作为ldap用户名修复了openldap情况下的属性描述默认cn

    【讨论】:

      【解决方案2】:

      用户条目未正确存储在您的目录中。事实上,您不应该将cn=root 用作容器,因为它应该代表目录管理器,并且应该用于绑定和其他操作,但不能用于构建目录。

      相反,您应该使用ou=people,dc=suredev20 的默认用户容器(至少对于 OpenLDAP 和 Apache DS),即。你需要移动cn=subodh

      • 来自cn=subodh,ou=user,cn=root,dc=suredev
      • cn=subodh,ou=people,dc=suredev20

      此外,在 Keycloack 中,您需要相应地设置 users dnou=people,dc=suredev20 (您可以尝试使用ou=user,cn=root,dc=suredev 而不移动subodh 条目,但不推荐)。

      【讨论】:

      • ou=user,cn=root,dc=suredev20 我试过但还是没有用户导入
      • 这就是我所怀疑的,您需要将cn=root,dc=suredev 保留为叶条目并在目录中的其他位置填充用户,例如。就像ou=people,dc=suredev20 中的建议一样,但不是强制性的。
      • 将发布我必须为此做的更改,我要问的是如何将任何默认角色/组分配给导入到 keycloak 的用户?
      • @SubodhJoshi 请帮我们解答,我也遇到同样的错误。
      • @MuddesirAhmed 你的问题是什么?
      猜你喜欢
      • 2021-05-15
      • 2022-12-28
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 2022-10-13
      • 1970-01-01
      • 2022-07-11
      • 2022-01-02
      相关资源
      最近更新 更多