Wso2 身份服务器连接配置与 Microsoft 活动目录

Posted

技术标签:

【中文标题】Wso2 身份服务器连接配置与 Microsoft 活动目录【英文标题】:Wso2 identity server connection configuration with Microsoft active directory 【发布时间】:2018-08-28 00:31:04 【问题描述】:

连接到 Microsoft Active Directory 时在 wso2 身份服务器控制台收到以下错误

获取连接时出错。 [LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903C5,注释:AcceptSecurityContext 错误,数据 52e,v2580] javax.naming.AuthenticationException:[LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903C5,注释:AcceptSecurityContext 错误,数据 52e,v2580]

下面的 user-mgt.xml 配置在哪里

<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager">
   <Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property>
   <Property name="ConnectionURL">ldap://10.10.4.145:389</Property>
   <Property name="ConnectionName">uid=wso2admin,ou=Users</Property>
   <Property name="ConnectionPassword">root.123</Property>
   <Property name="AnonymousBind">false</Property>
   <Property name="UserSearchBase">ou=Users,dc=prc,dc=com</Property>
   <Property name="UserEntryObjectClass">identityPerson</Property>
   <Property name="UserNameAttribute">uid</Property>
   <Property name="UserNameSearchFilter">(&amp;(objectClass=person)(uid=?))</Property>
   <Property name="UserNameListFilter">(objectClass=person)</Property>
   <Property name="DisplayNameAttribute" />
   <Property name="ReadGroups">true</Property>
   <Property name="WriteGroups">true</Property>
   <Property name="GroupSearchBase">ou=Groups,dc=prc,dc=com</Property>
   <Property name="GroupEntryObjectClass">groupOfNames</Property>
   <Property name="GroupNameAttribute">cn</Property>
   <Property name="GroupNameSearchFilter">(&amp;(objectClass=groupOfNames)(cn=?))</Property>
   <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property>
   <Property name="MembershipAttribute">member</Property>
   <Property name="BackLinksEnabled">false</Property>
   <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]3,30$</Property>
   <Property name="UsernamejavascriptRegEx">^[\S]3,30$</Property>
   <Property name="UsernameJavaRegExViolationErrorMsg">Username pattern policy violated</Property>
   <Property name="PasswordJavaRegEx">^[\S]5,30$</Property>
   <Property name="PasswordJavaScriptRegEx">^[\S]5,30$</Property>
   <Property name="PasswordJavaRegExViolationErrorMsg">Password length should be within 5 to 30 characters</Property>
   <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]3,30$</Property>
   <Property name="RolenameJavaScriptRegEx">^[\S]3,30$</Property>
   <Property name="SCIMEnabled">true</Property>
   <Property name="IsBulkImportSupported">false</Property>
   <Property name="EmptyRolesAllowed">true</Property>
   <Property name="PasswordHashMethod">PLAIN_TEXT</Property>
   <Property name="MultiAttributeSeparator">,</Property>
   <Property name="MaxUserNameListLength">100</Property>
   <Property name="MaxRoleNameListLength">100</Property>
   <Property name="kdcEnabled">false</Property>
   <Property name="defaultRealmName">prc.com</Property>
   <Property name="UserRolesCacheEnabled">true</Property>
   <Property name="ConnectionPoolingEnabled">false</Property>
   <Property name="LDAPConnectionTimeout">5000</Property>
   <Property name="ReadTimeout" />
   <Property name="RetryAttempts" />
</UserStoreManager>

【问题讨论】:

【参考方案1】:

“错误代码 49”表示凭据错误(您用于尝试连接的凭据)。

我猜是这样的:

<Property name="ConnectionName">uid=wso2admin,ou=Users</Property>

根据the documentation,该属性应该是“LDAP 中管理员用户的DN(可分辨名称)”。但是您的专有名称不正确有两个原因:

    您不能在专有名称中使用uid(该示例使用uid,但这不适用于Active Directory)。它应该以CN= 开头。 您缺少 DN 的域部分,例如“dc=prc,dc=com”(我假设这就是您的域的内容”

所以它应该看起来更像这样(但您必须验证它是否正确):

<Property name="ConnectionName">cn=wso2admin,ou=Users,dc=prc,dc=com</Property>

【讨论】:

在编辑上述参数后,添加用户时出现以下错误。启用用户帐户时出错。请检查用户在 DC 的密码策略:root1 听起来这个错误是固定的。如果您需要有关新错误的帮助,那么您最好开始一个新问题并显示您的代码。

以上是关于Wso2 身份服务器连接配置与 Microsoft 活动目录的主要内容,如果未能解决你的问题,请参考以下文章

WSO2 Api 管理器与身份服务器

将 Keycloak 用作 WSO2 身份服务器的联合身份提供者时出现 SSL 错误

Spring SAML 与 WSO2 身份服务器集成,无法识别 SAML 消息

WSO2 身份服务器 JWT 访问令牌

将AngularJS应用程序与WSO2身份服务器集成

使用 OKTA 的 WSO2 最终用户身份验证