2016-04-07 19 views
0

Debianではwso2が5.1.0サーバランニングです。私は、Oauth2を使って認証し、プライマリストアのユーザと完全に連携する単純なサーブレットを持っています。wso2はセカンダリユーザストア認証です

私はopenldapサーバーを指し示すセカンダリストアを作成しました。私はいくつかのユーザーとグループを持っていて、ISから正しく見えます。

Error while loading user profile metadata 

しかし、私は私がログインに失敗しましたエラーを取得するLDAPサーバー内のユーザーを使用して認証しようとすると:私は、ユーザープロファイルを参照しようとすると、私は次のエラーを取得することがわかります。私はユーザー名、DOMAIN /ユーザー名とユーザー名@ DOMAINの両方を使用しようとしましたが、どちらも機能しませんでした。

さまざまな店舗のユーザーが異なる値を持っているため、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」属性が正しく設定されていることを確認する必要があります。これは、ラップトップサーバーのユーザー名属性にマップする必要があります。

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

また、異なるユーザーストアのアトリビュートを同じwso2要求にマップすることもできます。 https://docs.wso2.com/display/IS510/Adding+Claim+Mapping

+0

を私は(更新を参照)UserNameSearchFilterが正しく定義されて理解したよう - 次のようにマッピングされたattibuteセクションでは

PRIMARY/attribute1;FOO/attribute2;BAR/attribute3 

も参照してください、何かを使用します。私はクレームがどのように作用するのか本当に分かりません。 – jordi

+1

FOOとBARの2つのユーザーストアがあるとします。どちらのユーザーストアも、ユーザーのファーストネームを保持しますが、属性は異なります。 FOOは 'fn'にファーストネームを保持し、BARは 'bfn'にそれを保持します。次に、FOOからファーストネームを取得するかどうかを識別サーバーに伝え、 'fn'を使用し、BARから取得する場合は 'bfn'を使用する必要があります。 FOO/fn; BAR/bfn – Thanuja

+0

Apache Directory Studioのようなldapビューアからテストユーザーをブラウズして、ユーザー属性のスクリーンショットを提供することもできますか? – Thanuja