CAS X.509 auth с атрибутами из базы данных - PullRequest
0 голосов
/ 01 марта 2019

Я хочу настроить Apereo CAS 6.0.x для выполнения аутентификации X.509, а затем для получения основных атрибутов из таблицы базы данных.Элементарная аутентификация X.509 работает с этими строками в application.properties (и соответствующей настройке обратного прокси-сервера):

cas.authn.x509.extractCert=true
cas.authn.x509.sslHeaderName=SSL_CLIENT_CERT
cas.authn.x509.principalDescriptor=SUBJECT_DN

По умолчанию на странице «Успешный вход в систему» ​​показано, что она знает, как получить DN субъекта моего сертификата.

Но я не могу понять, как заставить CAS затем использовать это значение DN субъекта для запроса в моей базе данных дополнительных атрибутов.

Эта страница явно упоминает мойнужно (хотя и с LDAP вместо JDBC), но конкретно не говорится, как этого добиться:

Во многих случаях необходимо выполнить аутентификацию одним способом и разрешить принципалы другим.Компонент PrincipalResolver обеспечивает эту функциональность.Обычный вариант использования этой стратегии смешивания и сопоставления возникает при аутентификации X.509.Распространено хранить сертификаты в каталоге LDAP и запрашивать каталог для разрешения идентификатора участника и атрибутов из атрибутов каталога.X509CertificateAuthenticationHandler может быть объединен с основным распознавателем на основе LDAP для учета этого случая.

Какие свойства необходимо установить, чтобы обработчик аутентификации X509 разрешал принципала по базе данных?

1 Ответ

0 голосов
/ 02 марта 2019

Недостающим ингредиентом была эта строка в application.properties:

cas.authn.x509.principalType=SUBJECT_DN

Без этого CAS не пытается запросить какие-либо attributeRepository настройки, которые у вас могут быть.

...