Как получить атрибуты пользователя LDAP с SPNE GO и CAS? - PullRequest
0 голосов
/ 06 апреля 2020

При использовании аутентификации CAS 5.3.x и SPNE GO (Kerberos), как получить больше пользовательских атрибутов, чем просто SAMAccountName?

Когда я использую только "стандартный" обработчик аутентификации LDAP, я могу просто поместите эту конфигурацию:

cas.authn.ldap[0].principalAttributeList=sAMAccountName,displayName,givenName,mail

Но после аутентификации SPNE GO я не получаю эти дополнительные атрибуты.

Знаете ли вы, как это сделать?

1 Ответ

1 голос
/ 07 апреля 2020

Возможность извлечения атрибутов из внешних хранилищ данных присутствует в CAS со времен 3.x. Эта функциональность была и по сей день обеспечивается проектом Apereo под названием Person Directory, который является Java структурой для разрешения лиц и атрибутов из различных базовых источников. Он состоит из набора компонентов, которые извлекают, кэшируют, разрешают, объединяют и объединяют атрибуты человека из JDB C, LDAP и других. CAS пытается использовать преимущества этой структуры с помощью концепции, называемой PrincipalResolver, цель которой состоит в создании окончательного идентифицируемого аутентифицированного принципала для CAS, который содержит несколько атрибутов внутри него, извлеченных из источников хранилища атрибутов. Это означало, что, например, можно выполнить аутентификацию с помощью SPNE GO в одном запросе, а затем развернуть запрашиваемый LDAP, реляционную базу данных и сценарий Groovy, чтобы получить атрибуты для разрешенного принципала и объединить все результаты в итоговую коллекцию.

Обратите внимание, что в большинстве случаев, как в случае прямой аутентификации LDAP и начиная с CAS 4.x, механизм аутентификации был усовершенствован, чтобы иметь возможность получать и разрешать атрибуты из источника аутентификации, что устраняет необходимость настройки отдельного репозитория / распознавателя атрибутов, особенно если аутентификация и источник атрибута совпадают. Использование отдельных распознавателей и источников требуется только в тех случаях, когда источники различны или когда необходимо рассмотреть более сложные варианты использования разрешения атрибутов, такие как каскадирование, объединение и т. Д. c.

Чтобы настроить использование CAS внешний LDAP для хранилищ атрибутов, используйте:

cas.authn.attribute-repository.ldap[0].attributes.uid=uid
cas.authn.attribute-repository.ldap[0].attributes.displayName=displayName
cas.authn.attribute-repository.ldap[0].attributes.cn=commonName
cas.authn.attribute-repository.ldap[0].attributes.memberOf=memberOf

cas.authn.attribute-repository.ldap[0].ldapUrl=ldap://...
cas.authn.attribute-repository.ldap[0].useSsl=false
cas.authn.attribute-repository.ldap[0].useStartTls=false
cas.authn.attribute-repository.ldap[0].baseDn=dc=example,dc=edu
cas.authn.attribute-repository.ldap[0].searchFilter=uid={0}
cas.authn.attribute-repository.ldap[0].bindDn=...
cas.authn.attribute-repository.ldap[0].bindCredential=...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...