У меня есть 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">(&(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>
Я могу видеть пользователь в списке и даже создать новую на LDAP через WSO2, но я не могу видеть параметры.
ОБНОВЛЕНО:
структуру пользователя в LDAP довольно просто.
Как я понимаю UserNameSearchFilter корректно определена (см обновление). Я действительно не понимаю, как работают претензии. – jordi
ОК. предположим, что у вас есть два магазина пользователей как FOO и BAR. Оба магазина пользователя сохраняют имя пользователя, но имеют разные атрибуты. FOO сохраняет имя в 'fn', а BAR сохраняет его в 'bfn'. Затем мы должны сообщить серверу идентификации, если вы получите имя от FOO, используя 'fn', и если вы получите его из BAR, используйте 'bfn'. Таким образом, мы можем выразить этот оператор в отображаемом разделе атрибута как: FOO/fn; BAR/bfn – Thanuja
Также вы можете просмотреть тестового пользователя из средства просмотра ldap (например, Apache Directory Studio) и предоставить скриншот пользовательских атрибутов? – Thanuja