2016-04-07 1 views
0

У меня есть womm2 5.1.0 серверный рунинг на Debian. У меня есть простой сервлет, который проверяет подлинность с помощью Oauth2 и отлично работает с пользователями в основном хранилище.wso2 является вторичной аутентификацией магазина пользователя

Я создал вторичный магазин, указывающий на сервер openldap. У меня есть некоторые пользователи и группы, и они правильно видны из IS. Я вижу, что, когда я пытаюсь посмотреть профиль пользователя я получаю следующее сообщение об ошибке:

Error while loading user profile metadata 

Но когда я пытаюсь для проверки подлинности с помощью пользователей на сервере LDAP я получаю Войти Failed ошибку. Я попытался использовать как имя пользователя, 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> 

Я могу видеть пользователь в списке и даже создать новую на LDAP через WSO2, но я не могу видеть параметры.

ОБНОВЛЕНО:

структуру пользователя в LDAP довольно просто.

enter image description here

ответ

1

Для выдачи аутентификации, вам нужно проверить «UserNameSearchFilter» атрибут настроен правильно. Он должен сопоставляться с атрибутом имени пользователя на вашем сервере ladp.

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

Также вы можете сопоставить аттитуры из разных магазинов пользователей с тем же требованием wso2. В разделе отображенной использовать атрибут объявления нечто подобное следует,

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

Смежные вопросы