wso2 是辅助用户存储身份验证
wso2 is secondary user store authentication
我有一个 wso2 是 Debian 上的 5.1.0 服务器 runign。我有一个简单的 servlet,它使用 Oauth2 进行身份验证,并且可以与主要商店中的用户完美配合。
我已经创建了一个指向 openldap 服务器的二级存储。我有一些用户和组,并且可以从 IS 正确看到。我看到当我尝试查看用户配置文件时出现以下错误:
Error while loading user profile metadata
但是当我尝试使用 ldap 服务器中的用户进行身份验证时,出现登录失败错误。我尝试同时使用用户名 DOMAIN/username 和用户名@DOMAIN,但 none 有效。
我开始觉得可能是Calim配置的问题,因为不同店铺的用户有不同的值,但我不知道如何解决。
对我做错了什么有什么想法吗?
更新:
我是这样定义二级商店的。
<?xml version="1.0" encoding="UTF-8"?><UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager">
<Property name="ConnectionURL">ldap://xxxx:389</Property>
<Property name="ConnectionName">cn=admin,dc=xx,dc=xx</Property>
<Property encrypted="true" name="ConnectionPassword">xxxx</Property>
<Property name="UserSearchBase">ou=users,dc=nextel,dc=es</Property>
<Property name="UserEntryObjectClass">inetOrgPerson</Property>
<Property name="UserNameAttribute">cn</Property>
<Property name="UserNameSearchFilter">(&(objectClass=person)cn=?))</Property>
<Property name="UserNameListFilter">(objectClass=person)</Property>
<Property name="UserDNPattern"/>
<Property name="DisplayNameAttribute"/>
<Property name="Disabled">false</Property>
<Property name="ReadGroups">true</Property>
<Property name="WriteGroups">true</Property>
<Property name="GroupSearchBase">ou=groups,dc=xx,dc=xx</Property>
<Property name="GroupEntryObjectClass">groupOfNames</Property>
<Property name="GroupNameAttribute">cn</Property>
<Property name="GroupNameSearchFilter">(&(objectClass=groupOfNames)(cn=?))</Property>
<Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property>
<Property name="RoleDNPattern"/>
<Property name="MembershipAttribute">member</Property>
<Property name="MemberOfAttribute"/>
<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 pattern policy violated.</Property>
<Property name="RoleNameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
<Property name="RoleNameJavaScriptRegEx">^[\S]{3,30}$</Property>
<Property name="SCIMEnabled">false</Property>
<Property name="BulkImportSupported">true</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">WSO2.ORG</Property>
<Property name="UserRolesCacheEnabled">true</Property>
<Property name="ConnectionPoolingEnabled">false</Property>
<Property name="ReadTimeout">5000</Property>
<Property name="LDAPConnectionTimeout">5000</Property>
<Property name="RetryAttempts">0</Property>
<Property name="DomainName">incloudLDAP</Property>
<Property name="Description"/>
</UserStoreManager>
我可以看到列表中的用户,甚至可以通过 WSO2 Is 在 LDAP 上创建一个新用户,但是我看不到参数。
更新:
LDAP 中的用户结构非常简单。
对于身份验证问题,您需要验证 "UserNameSearchFilter" 属性是否正确配置。它必须映射到您的 ladp 服务器中的用户名属性。
<Property name="UserNameSearchFilter">(&(objectClass=user)(cn=?))</Property>
您还可以将来自不同用户存储的属性映射到相同的 wso2 声明。在映射属性部分使用如下内容,
PRIMARY/attribute1;FOO/attribute2;BAR/attribute3
另请参阅 - https://docs.wso2.com/display/IS510/Adding+Claim+Mapping
我有一个 wso2 是 Debian 上的 5.1.0 服务器 runign。我有一个简单的 servlet,它使用 Oauth2 进行身份验证,并且可以与主要商店中的用户完美配合。
我已经创建了一个指向 openldap 服务器的二级存储。我有一些用户和组,并且可以从 IS 正确看到。我看到当我尝试查看用户配置文件时出现以下错误:
Error while loading user profile metadata
但是当我尝试使用 ldap 服务器中的用户进行身份验证时,出现登录失败错误。我尝试同时使用用户名 DOMAIN/username 和用户名@DOMAIN,但 none 有效。
我开始觉得可能是Calim配置的问题,因为不同店铺的用户有不同的值,但我不知道如何解决。
对我做错了什么有什么想法吗?
更新:
我是这样定义二级商店的。
<?xml version="1.0" encoding="UTF-8"?><UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager">
<Property name="ConnectionURL">ldap://xxxx:389</Property>
<Property name="ConnectionName">cn=admin,dc=xx,dc=xx</Property>
<Property encrypted="true" name="ConnectionPassword">xxxx</Property>
<Property name="UserSearchBase">ou=users,dc=nextel,dc=es</Property>
<Property name="UserEntryObjectClass">inetOrgPerson</Property>
<Property name="UserNameAttribute">cn</Property>
<Property name="UserNameSearchFilter">(&(objectClass=person)cn=?))</Property>
<Property name="UserNameListFilter">(objectClass=person)</Property>
<Property name="UserDNPattern"/>
<Property name="DisplayNameAttribute"/>
<Property name="Disabled">false</Property>
<Property name="ReadGroups">true</Property>
<Property name="WriteGroups">true</Property>
<Property name="GroupSearchBase">ou=groups,dc=xx,dc=xx</Property>
<Property name="GroupEntryObjectClass">groupOfNames</Property>
<Property name="GroupNameAttribute">cn</Property>
<Property name="GroupNameSearchFilter">(&(objectClass=groupOfNames)(cn=?))</Property>
<Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property>
<Property name="RoleDNPattern"/>
<Property name="MembershipAttribute">member</Property>
<Property name="MemberOfAttribute"/>
<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 pattern policy violated.</Property>
<Property name="RoleNameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
<Property name="RoleNameJavaScriptRegEx">^[\S]{3,30}$</Property>
<Property name="SCIMEnabled">false</Property>
<Property name="BulkImportSupported">true</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">WSO2.ORG</Property>
<Property name="UserRolesCacheEnabled">true</Property>
<Property name="ConnectionPoolingEnabled">false</Property>
<Property name="ReadTimeout">5000</Property>
<Property name="LDAPConnectionTimeout">5000</Property>
<Property name="RetryAttempts">0</Property>
<Property name="DomainName">incloudLDAP</Property>
<Property name="Description"/>
</UserStoreManager>
我可以看到列表中的用户,甚至可以通过 WSO2 Is 在 LDAP 上创建一个新用户,但是我看不到参数。
更新:
LDAP 中的用户结构非常简单。
对于身份验证问题,您需要验证 "UserNameSearchFilter" 属性是否正确配置。它必须映射到您的 ladp 服务器中的用户名属性。
<Property name="UserNameSearchFilter">(&(objectClass=user)(cn=?))</Property>
您还可以将来自不同用户存储的属性映射到相同的 wso2 声明。在映射属性部分使用如下内容,
PRIMARY/attribute1;FOO/attribute2;BAR/attribute3
另请参阅 - https://docs.wso2.com/display/IS510/Adding+Claim+Mapping