WSO2IS 5.10.0-无法在Active Directory上创建/更新用户

时间:2020-03-31 13:42:58

标签: active-directory wso2 wso2is

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

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

  • 我们无法在Active Directory中创建用户
  • 我们无法在Active Directory中更新用户

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

由以下原因引起:javax.naming.directory.NoSuchAttributeException:[LDAP:错误代码16-00000057:LdapErr:DSID-0C090C45, 注释:属性转换操作出错,数据0,v1db1

我们尝试过的事情:

  • 检查(并第二次和第三次检查)我们的所有声明均已正确映射(并且正确映射)
  • 将所有声明重置为默认映射(在我们能够创建/更新用户的状态下)
  • 设置用户DN模式(如here所述)
  • 在WSO2IS 5.10.0的新实例上重新启动

但是我们尝试过的所有方法都无济于事,我们被困住了。

任何帮助将不胜感激。谢谢您的任何建议。


根据要求,这是我们映射的广告属性:

  • sn
  • givenName
  • cn
  • displayName
  • 名称
  • 说明
  • 邮件
  • sAMAccountName
  • userPrincipalName
  • accountExpires
  • pwdLastSet
  • userAccountControl
  • scriptPath
  • homePhone
  • 移动
  • 传真电话号码
  • 标题
  • 部门
  • 公司

1 个答案:

答案 0 :(得分:1)

这里的问题是从AD返回LDAP_NO_SUCH_ATTRIBUTE

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

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