Проблема с OpenLDAP в качестве ОСНОВНОЙ настройки внешнего хранилища пользователей для Wso2is 5.8.0: получить «ошибку 21», связанную с атрибутом createTimestamp »при добавлении нового пользователя - PullRequest
0 голосов
/ 27 июня 2019

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

Невозможно настроить OpenLDAP в качестве основного хранилища пользователей для wso2is 5.6.0: Ошибка LDAP 65 при добавлении нового пользователя в консоль управления

Я хочу настроить Wso2is-5.8.0 с OpenLDAP в качестве основного хранилища пользователей, и для развертывания я использую файл Docker-Compose.

Шаг соединения между Identity Server и Openldap успешно завершен, я получил всех своих пользователей LDAP в IS, и в LDAP был добавлен пользователь admin. Сейчас я настраиваю параметры заявки.

Я определил:

urn: ietf: параметры: scim: схемы: core: 2.0: meta.resourceType = http://wso2.org/claims/userType

Я получаю "err = 17 text = userType: тип атрибута не определен" Поэтому я определил userType как показано ниже:

http://wso2.org/claims/userType = Пользователи (связанные со значением ou в OpenLDAP)

Тогда я получаю "err = 17 text = madeDate: тип атрибута не определен" Итак, я определил createDate как показано ниже:

http://wso2.org/claims/created = createTimestamp (как имя атрибута в OpenLDAP)

А теперь я получаю:

5d14d9a9 conn=1168 op=2 ADD dn="uid=usertest,ou=Users,dc=example,dc=org"
5d15dd6e conn=1340 op=2 RESULT tag=105 err=21 text=createTimestamp: value #0 invalid per syntax

Я пытаюсь проверить только чтение в конфигурации заявки "Создано время", но та же ошибка.

У кого-нибудь есть способ решить эту проблему?

Я прикрепил ниже свой файл user-mgt.xml.

Заранее спасибо

<UserManager>
  <Realm>
    <Configuration>
    <AddAdmin>true</AddAdmin>
    <AdminRole>admin</AdminRole>
    <AdminUser>
        <UserName>admin</UserName>
        <Password>admin</Password>
    </AdminUser>
    <EveryOneRoleName>everyone</EveryOneRoleName>
    <!-- By default users in this role sees the registry root -->
    <!-- Enable username claim retrieve from the UM_USER_NAME in JDBC datasources-->
        <OverrideUsernameClaimFromInternalUsername>true</OverrideUsernameClaimFromInternalUsername>
    <Property name="isCascadeDeleteEnabled">true</Property>
    <Property name="initializeNewClaimManager">true</Property>
    <Property name="dataSource">jdbc/WSO2IdentityDS</Property>
    </Configuration>
<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager">
      <Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property>
      <Property name="ConnectionURL">ldap://192.168.1.10:389</Property>
      <Property name="ConnectionName">cn=admin,dc=example,dc=org</Property>
      <Property name="ConnectionPassword">admin</Property>
      <Property name="AnonymousBind">false</Property>
      <Property name="UserSearchBase">ou=Users,dc=example,dc=org</Property>
      <Property name="UserEntryObjectClass">inetOrgPerson</Property>
      <Property name="UserNameAttribute">uid</Property>
      <Property name="UserNameSearchFilter">(&amp;(objectClass=inetOrgPerson)(uid=?))</Property>
      <Property name="UserNameListFilter">(objectClass=inetOrgPerson)</Property>
      <Property name="DisplayNameAttribute"/>
      <Property name="ReadGroups">true</Property>
      <Property name="WriteGroups">true</Property>
      <Property name="GroupSearchBase">ou=Groups,dc=example,dc=org</Property>
      <Property name="GroupEntryObjectClass">posixGroup</Property>
      <Property name="GroupNameAttribute">cn</Property>
      <Property name="GroupNameSearchFilter">(&amp;(objectClass=posixGroup)(=?))</Property>
      <Property name="GroupNameListFilter">(objectClass=posixGroup)</Property>
      <Property name="MembershipAttribute">memberUid</Property>
      <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 length should be within 5 to 30 characters</Property>
      <Property name="RolenameJavaRegEx">[a-zA-Z0-9._\-|//]{3,30}$</Property>
      <Property name="RolenameJavaScriptRegEx">^[\S]{3,30}$</Property>
      <Property name="SCIMEnabled">true</Property>
      <Property name="IsBulkImportSupported">false</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="LDAPConnectionTimeout">5000</Property>
      <Property name="ReadTimeout"/>
      <Property name="RetryAttempts"/>
      <Property name="StartTLSEnabled">false</Property>
    </UserStoreManager>
    <AuthorizationManager class="org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager">
      <Property name="AdminRoleManagementPermissions">/permission</Property>
      <Property name="AuthorizationCacheEnabled">true</Property>
      <Property name="GetAllRolesOfUserEnabled">false</Property>
    </AuthorizationManager>
    <UserStoreManager class="org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager">
      <Property name="TenantManager">org.wso2.carbon.user.core.tenant.JDBCTenantManager</Property>
      <Property name="dataSource">jdbc/WSO2UM_DB</Property>
      <Property name="ReadOnly">false</Property>
      <Property name="ReadGroups">true</Property>
      <Property name="WriteGroups">true</Property>
      <Property name="UsernameJavaRegEx">^[\S]{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 length should be within 5 to 30 characters</Property>
      <Property name="RolenameJavaRegEx">^[\S]{3,30}$</Property>
      <Property name="RolenameJavaScriptRegEx">^[\S]{3,30}$</Property>
      <Property name="CaseInsensitiveUsername">false</Property>
      <Property name="SCIMEnabled">false</Property>
      <Property name="IsBulkImportSupported">false</Property>
      <Property name="PasswordDigest">SHA-256</Property>
      <Property name="StoreSaltedPassword">true</Property>
      <Property name="MultiAttributeSeparator">,</Property>
      <Property name="MaxUserNameListLength">100</Property>
      <Property name="MaxRoleNameListLength">100</Property>
      <Property name="UserRolesCacheEnabled">true</Property>
      <Property name="UserNameUniqueAcrossTenants">false</Property>
      <Property name="LeadingOrTrailingSpaceAllowedInUserName">false</Property>
    </UserStoreManager>
  </Realm>
</UserManager>

Ответы [ 2 ]

0 голосов
/ 16 июля 2019

Эта заявка resourceType представлена ​​в IS-5.4.0.Начиная с этого момента, в WSO2 IS для представления resourceType мы отобразили атрибут LDAP с именем «ref», но кажется, что «ref» - ​​это атрибут, зарезервированный в OpenLDAP для рефералов.В качестве обходного пути для этой проблемы «urn: ietf: params: scim: schemas: core: 2.0: meta.resourceType» был сопоставлен с заявкой userType в этом вопросе Невозможно настроить OpenLDAP в качестве основного хранилища пользователей для wso2is 5.6.0:Ошибка LDAP 65 при добавлении нового пользователя в консоль управления .Этот вопрос был задан на основе IS 5.6.0, и мы смогли наблюдать эту проблему начиная с IS 5.4.0 и далее.

Но эта проблема была исправлена ​​в последнем выпущенном Identity Server 5.8.0 в качестве исправления для этой проблемы https://github.com/wso2/product-is/issues/4807. В последней версии утверждение http://wso2.org/claims/resourceType сопоставлено с атрибутом "resourceType",Вы можете проверить это в файле Claim-config.xml, расположенном в каталоге / repository / conf /.Поэтому вам не нужно сопоставлять «urn: ietf: params: scim: schemas: core: 2.0: meta.resourceType» с любыми локальными утверждениями, такими как «http://wso2.org/claims/userType" утверждение. Следовательно, нет необходимости изменять сопоставленное отображение».атрибут заявки resourceType.

0 голосов
/ 13 июля 2019

Пожалуйста, попробуйте вот так после перезапуска,

  1. После запуска сервера идентификации перейдите в раздел Домашняя страница -> Идентичность -> Заявки -> Список.

  2. Выберите «urn: ietf: параметры: scim: схемы: ядро: 2.0», а затем нажмите на «urn: ietf: параметры: scim: схемы: core: 2.0: meta.resourceType».

  3. Для «Сопоставленной локальной заявки» выберите соответствующую заявку, которую вы хотите сопоставить с этой заявкой.Например: http://wso2.org/claims/userType и нажмите обновить.

Подробнее о настройке OpenLDAP с WSO2 IS вы можете прочитать в https://medium.com/@gdrdabarera/how-to-configure-open-ldap-with-wso2-identity-server-5-4-0-3a76bf240001

...