WSO2 - ОШИБКА ДОСТУПА К КАТАЛОГУ И ИМЯ ПОЛЬЗОВАТЕЛЯ АКТИВНОГО КАТАЛОГА

Я настраивал WSO2 IS 5.0.0. Я создал внешнее хранилище вторичных пользователей ldap для чтения / записи для моего активного каталога Windows Server 2012, который является нашим основным контроллером домена. У нас также есть сервер Windows Server 2003 с активным каталогом. Мы недавно обновили, и пользователи и группы на сервере 2003 были скопированы на сервер 2012.

Проблема, которую я заметил с WSO2, заключается в том, что любые учетные записи пользователей, которые были созданы на сервере AD 2003 в прошлом, не могут изменить свои пароли при входе на углеродный сайт wso2 (https://ip адрес: 9443 / carbon). Когда они пытаются изменить пароль, они получают такую ​​ошибку: «НЕ МОГУТ ДОСТУПИТЬ К СЛУЖБЕ КАТАЛОГА». Однако учетные записи, созданные в 2012 году нашей эры (определенным образом - см. Объяснение ниже), могут войти в систему и успешно изменить свои пароли.

Дополнительная информация - на наших серверах AD отображается пользователь Фамилия, Имя (включая запятую). Имя пользователя для физических лиц одинаково на всех серверах AD - первый инициал + фамилия.

Если я создам пользователя в 2012 году и у меня будет отображаться имя Имя Фамилия (без запятой) с типичным именем пользователя - первое начальное + фамилия, пользователь сможет войти на сайт WSO2 Carbon и изменить свой пароль без проблем. Любой пользователь, у которого есть отображаемое имя, фамилия, имя, может войти в систему, но он НЕ МОЖЕТ изменить свой пароль.

Кто-нибудь сталкивался с этой проблемой раньше? Есть ли какой-то конкретный параметр, который мне не хватает в пользовательском магазине или в AD?


person jrd1989    schedule 18.02.2015    source источник


Ответы (2)


При использовании внешних хранилищ пользователей, которые содержат учетные записи пользователей Active Directory, вам в основном необходимо позаботиться о двух вещах:

  • Убедитесь, что в вашем файле user-mgt.xml указан класс для хранилища пользователей, который заканчивается на «ActiveDirectoryUserStoreManager», а НЕ на «ReadWriteLDAPUserStoreManager»

  • Для свойства UserNameAttribute по умолчанию рекомендуется установить либо «uid», либо «cn». Однако в Active Directory нет атрибута uid. Есть атрибут "cn", и имя пользователя будет заполнять этот атрибут как комбинацию имени, пробела и последнего. (Это похоже на то, что вы видите). Он также может содержать фамилию, запятую и имя в зависимости от настроек в утилите «Пользователи и компьютеры Active Directory».

Вы хотите, чтобы сервер идентификации выполнял поиск LDAP независимо от использования идентификатора пользователя (поскольку он не меняется независимо от формата атрибута cn).

В записи Active Directory атрибут, содержащий значение идентификатора пользователя, называется «sAMAccountName». Значением, которое вы хотите использовать для свойства UserNameAttribute для хранилища пользователей Active Directory, является атрибут «sAMAccountName».

Примечание. Вы также можете использовать это значение в свойстве UserNameSearchFilter:

<Property name="UserNameAttribute">sAMAccountName</Property>
<Property name="UserNameSearchFilter">(&amp;(objectClass=user)(sAMAccountName=?))</Property>
person Neil Custer    schedule 29.04.2015

LDAPS должен быть включен, чтобы пользователи могли изменять свой пароль.

person Nguyen Duy Thao    schedule 15.03.2015