2016-04-07 80 views
0

我有一個wso2是5.1.0服務器在Debian上運行。我有一個簡單的servlet,它使用Oauth2進行身份驗證,並與主存儲中的用戶完美配合。wso2是次要用戶存儲認證

我已經創建了一個指向openldap服務器的輔助存儲。我有一些用戶和組,並從IS正確看到。我看到,當我嘗試看看用戶配置文件我得到以下錯誤:

Error while loading user profile metadata 

但是當我嘗試使用用戶的LDAP服務器進行身份驗證我得到一個登錄失敗的錯誤。我試圖使用用戶名,域名/用戶名和用戶名@域,但沒有工作。

我開始認爲它可能與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">(&amp;(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">(&amp;(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創建一個新的LDAP,但我看不到參數。

已更新:

LDAP中的用戶結構非常簡單。

enter image description here

回答

1

對於認證問題,您需要驗證「UserNameSearchFilter」屬性配置是否正確。它必須映射到您的ladp服務器中的用戶名屬性。

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

此外,您可以映射從不同用戶存儲attibutes到相同的wso2聲明。在映射attibute部分使用類似如下,

PRIMARY/attribute1;FOO/attribute2;BAR/attribute3 

另請參閱 - https://docs.wso2.com/display/IS510/Adding+Claim+Mapping

+0

據我瞭解UserNameSearchFilter正確定義(見更新)。我不太瞭解索賠如何運作。 – jordi

+1

好的。假設您有兩個用戶商店,分別爲FOO和BAR。這兩個用戶商店都保留用戶的名字,但具有不同的屬性。 FOO在'fn'中保持名字,BAR保持在'bfn'中。那麼我們必須告訴身份服務器,如果你要從FOO使用'fn'得到第一個名字,並且如果你要從BAR使用'bfn'。因此,我們可以在映射的屬性部分中將該語句表示爲FOO/fn; BAR/bfn – Thanuja

+0

還可以從ldap查看器(如Apache Directory Studio)瀏覽測試用戶並提供用戶屬性的屏幕截圖? – Thanuja