2016-04-07 6 views
0

Ich habe eine Wso2 ist 5.1.0 Server runign auf Debian. Ich habe ein einfaches Servlet, das mit Oauth2 authentifiziert und perfekt mit den Benutzern im primären Speicher funktioniert.Wso2 ist Second-User-Shop-Authentifizierung

Ich habe einen sekundären Speicher erstellt, der auf einen Openldap-Server verweist. Ich habe einige Benutzer und Gruppen und werde vom IS korrekt gesehen. Ich sehe, dass, wenn ich versuche, das Benutzerprofil zu sehen, ich die folgende Fehlermeldung erhalten:

Error while loading user profile metadata 

Aber wenn ich versuche, mit den Benutzern im LDAP-Server zu authentifizieren ich einen Fehler bei der Anmeldung Fehler. Ich habe versucht, sowohl Benutzername, DOMAIN/Benutzername und Benutzername @ DOMAIN zu verwenden, aber keiner der funktioniert.

Ich beginne zu denken, dass es mit der Calim-Konfiguration in Verbindung stehen könnte, da die Benutzer in den verschiedenen Geschäften unterschiedliche Werte haben, aber ich weiß nicht, wie man es löst.

Irgendwelche Ideen, was ich falsch mache?

AKTUALISIERT:

Dies ist, wie ich den sekundären Speicher definiert haben.

<?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> 

kann ich die Benutzer in der Liste sehen und sogar einen neuen auf dem LDAP durch WSO2 I erstellen, aber ich kann die Parameter nicht sehen.

die Struktur Benutzer im LDAP ganz einfach:

AKTUALISIERT.

enter image description here

Antwort

1

Für das Authentifizierungsproblem, müssen Sie „UserNameSearchFilter“ -Attribut korrekt konfiguriert ist, um zu überprüfen. Es muss dem Benutzernamen-Attribut in Ihrem LadP-Server zugeordnet sein.

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

Auch Sie können Attribute aus verschiedenen Benutzer speichert zu einem gleichen wso2 Anspruch zuordnen. In dem abgebildeten attibute Abschnitt verwenden etwas wie folgt,

PRIMARY/attribute1;FOO/attribute2;BAR/attribute3 

Auch verweisen - https://docs.wso2.com/display/IS510/Adding+Claim+Mapping

+0

Wie ich UserNameSearchFilter richtig verstehen (siehe Update) definiert ist. Ich verstehe nicht wirklich, wie die Ansprüche funktionieren. – jordi

+1

ok. Nehmen wir an, Sie haben zwei Benutzerspeicher als FOO und BAR. Beide Benutzer speichern den Vornamen des Benutzers, jedoch in verschiedenen Attributen. FOO behält den Vornamen in 'fn' und BAR behält es in 'bfn'. Dann müssen wir dem Identity Server sagen, wenn du den Vornamen von FOO bekommst, benutz 'fn' und wenn du es von BAR bekommst benutze 'bfn'. So können wir diese Aussage im zugeordneten Attributabschnitt als FOO/fn; BAR/bfn – Thanuja

+0

ausdrücken. Sie können auch einen Testbenutzer aus einem ldap-Viewer (wie Apache Directory Studio) durchsuchen und einen Screenshot der Benutzerattribute bereitstellen. – Thanuja