Active directory WSO2-访问目录服务错误&;ACTIVE DIRECTORY用户名

Active directory WSO2-访问目录服务错误&;ACTIVE DIRECTORY用户名,active-directory,wso2,windows2012,Active Directory,Wso2,Windows2012,我一直在设置WSO2是5.0.0。我创建了一个外部读/写ldap辅助用户存储到我的windows server 2012 active directory,这是我们的PDC。我们还有一台运行active directory的Windows Server 2003服务器。我们最近进行了更新,2003服务器上的用户和组已复制到2012服务器 我注意到WSO2的问题是,过去在2003 AD服务器中创建的任何用户帐户在登录WSO2 carbon站点(地址:9443/carbon)时都无法更改密码。当他们

我一直在设置WSO2是5.0.0。我创建了一个外部读/写ldap辅助用户存储到我的windows server 2012 active directory,这是我们的PDC。我们还有一台运行active directory的Windows Server 2003服务器。我们最近进行了更新,2003服务器上的用户和组已复制到2012服务器

我注意到WSO2的问题是,过去在2003 AD服务器中创建的任何用户帐户在登录WSO2 carbon站点(地址:9443/carbon)时都无法更改密码。当他们试图更改密码时,会出现以下错误:“无法访问目录服务”。虽然在2012年创建的帐户(以特定方式-请参阅下面的说明)能够成功登录并更改密码

其他信息-在我们的广告服务器中,会显示用户的姓氏和名(包括逗号)。每个广告服务器中的个人用户名相同-首字母+姓氏

如果我在2012年创建了一个用户,并将名字显示为Firstname Lastname(无逗号),使用典型的用户名-first initial+last name,用户可以登录WSO2 Carbon站点并更改密码,而不会出现问题。任何具有显示名称“姓氏”、“名”的用户都可以登录,但他们不能更改密码


以前有人遇到过这个问题吗?用户商店或广告中是否缺少特定设置

必须启用LDAP才能允许用户更改密码。

当使用包含Active Directory用户帐户的外部用户存储时,您主要需要关注两件事:

  • 确保在user-mgt.xml文件中指定以“ActiveDirectoryUserStoreManager”结尾的userstore的类,而不是“ReadWriteLDAPUserStoreManager”

  • 建议将UserNameAttribute属性的默认值设置为“uid”或“cn”。但是,在Active Directory中没有“uid”属性。有一个“cn”属性,用户名将以名字、空格和最后一个的组合填充此属性。(这听起来像你看到的)。根据Active Directory用户和计算机实用程序中的设置,它还可以包含姓氏、逗号和名字

您希望Identity Server执行LDAP搜索,而不考虑使用用户的用户ID(因为无论cn属性的格式如何,这都不会更改)

在Active Directory条目中,包含userid值的属性称为“sAMAccountName”。因此,要用于Active Directory userstore的UserNameAttribute属性的值是属性“sAMAccountName”

注意:您还需要在UserNameSearchFilter属性中使用此值:

<Property name="UserNameAttribute">sAMAccountName</Property>
<Property name="UserNameSearchFilter">(&amp;(objectClass=user)(sAMAccountName=?))</Property>
sAMAccountName
(&;(objectClass=user)(sAMAccountName=?)