2016-12-14 12 views
0

Я использую OpenAM 13 для обеспечения возможностей единого входа в набор приложений. Сама аутентификация обеспечивается LDAP, так как существует существующее хранилище LDAP, используемое другими приложениями вне рамки этого единого входа.Проверка пользовательского атрибута LDAP в OpenAM 13

Пользовательский атрибут userattrib1 был добавлен к каждой записи LDAP каждого пользователя. Если для этого атрибута установлено значение 999, пользователю не разрешается регистрироваться в режиме единого входа, а для всех других значений им разрешено входить в систему. Я понимаю, что это необычная настройка, однако это часть уже существующего приложения.

Как я могу настроить OpenAM 13 для поддержки этой проверки? Я хотел бы избежать выполнения этой проверки в приложениях конечного пользователя, так как есть несколько приложений, к которым я должен добавить проверку.

ответ

0

Если используется модуль авторизации LDAP, вы можете указать фильтр поиска пользователей, чтобы использовать пользовательский атрибут.

Однако НЕ searchfilters как

userattrib1 != 999 

обычно приводит к unindex поисков и не может реально использовать, вместо этого вы должны проверить, сколько различных «прохождение» значений у вас есть, а затем использовать его в составном фильтре, как

(|(userattrib1=123)(userattrib1=124)(userattrib1=125)(userattrib1=126)) 

потенциально вы можете даже значения «группы», чтобы использовать подстроку фильтр как

userattrib1=12* 

В зависимости от используемого фильтра вам нужен индекс равенства или/и индекс подстроки, настроенный для атрибута userattrib1