WSO2IS 5.10.0 - 无法在 Active Directory 上 create/update 用户

WSO2IS 5.10.0 - Can't create/update user on Active Directory

对于客户端,我们必须将 WSO2IS 5.10.0 连接到 Active Directory。 为此,我们创建了一个具有以下配置的辅助用户商店:

WSO2IS 可以连接到 Active Directory,因为我们可以检索用户和角色。 在进行任何声明映射之前,我们已尝试毫无问题地编辑和创建用户。 然后我们映射了一些声明以从 Active Directory 中检索更多信息。 我们的问题来了:

这两个问题给了我们这个错误:

Caused by: javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - 00000057: LdapErr: DSID-0C090C45, comment: Error in attribute conversion operation, data 0, v1db1

我们尝试过的事情:

但是我们尝试过的所有方法都无济于事,我们陷入困境。

如有任何帮助,我们将不胜感激。感谢您的任何建议。


如问,这是我们映射的AD属性:

此处的问题是 LDAP_NO_SUCH_ATTRIBUTE 从 AD 返回。

  1. 我们不知道 AD 端缺少哪个属性。
  2. 从服务器现有的 DEBUG 日志中,您可能无法记录 WSO2 将要更新的所有属性。因此,您必须选择其他选项。
  3. 手动检查 - 尽管您配置(和验证)的属性很少,但还有其他声明具有默认属性映射。请检查 http://wso2.org/claim 方言中的所有映射属性。
  4. 远程调试 - 远程调试服务器以检查 WSO2 试图写入的属性是什么。 (比以前的方法更小的子集)然后验证它们是否存在。
  5. 要执行此远程调试,您可以从 here 查看内核源代码。
  6. 要找到正确的 tag 结帐,您可以从这个 release matrix.
  7. 中找到 identity server 版本的 kernel version
  8. 克隆并检出正确的标签后,您可以使用 IntelliJ Idea 或功能强大的 IDE 远程调试服务器,如本 [=19] 中所述=].
  9. 虽然很难指向确切的代码行,但您可以将 DEBUG 指向 ActiveDirectoryUserStoreManager.doAddUser()ActiveDirectoryUserStoreManager.doSetUserClaimValue() 方法并从那里开始。

P.S。您还可以检查碳日志的堆栈跟踪是否包含失败属性或相应声明的任何线索,以便您可以检查验证它。