Я сделал то, что в документации говорилось о настройке аутентификации LDAP в CAS. (https://apereo.github.io/cas/4.2.x/installation/LDAP-Authentication.html)Как создать пользователей в CAS с помощью «OpenLDAP»?
Сервер CAS работает до сих пор, но не смог создать пользователя для входа в систему с учетными данными LDAP. Я использую JXplorer для добавления пользователя и я добавил это deployerConfigContext.xml
:
<ldaptive:bind-search-authenticator id="authenticator"
ldapUrl="${ldap.url}"
baseDn="${ldap.baseDn}"
userFilter="${ldap.authn.searchFilter}"
bindDn="${ldap.managerDn}"
bindCredential="${ldap.managerPassword}"
connectTimeout="${ldap.connectTimeout}"
useStartTLS="${ldap.useStartTLS}"
blockWaitTime="${ldap.pool.blockWaitTime}"
maxPoolSize="${ldap.pool.maxSize}"
allowMultipleDns="${ldap.allowMultipleDns:false}"
usePasswordPolicy="${ldap.usePpolicy:false}"
minPoolSize="${ldap.pool.minSize}"
validateOnCheckOut="${ldap.pool.validateOnCheckout}"
validatePeriodically="${ldap.pool.validatePeriodically}"
validatePeriod="${ldap.pool.validatePeriod}"
idleTime="${ldap.pool.idleTime}"
prunePeriod="${ldap.pool.prunePeriod}"
failFastInitialize="true"
subtreeSearch="${ldap.subtree.search:true}"
useSSL="${ldap.use.ssl:false}"
/>
А потом я добавил это к cas.properties
файла:
#========================================
# General properties
#========================================
ldap.url=ldap://myip:389
# Start TLS for SSL connections
ldap.useStartTLS=false
# Directory root DN
# ldap.rootDn=dc=com
# Base DN of users to be authenticated
ldap.baseDn=ou=people,dc=maxcrc,dc=com
# LDAP connection timeout in milliseconds
ldap.connectTimeout=3000
# Manager credential DN
ldap.managerDn=cn=Manager,dc=maxcrc,dc=com
# Manager credential password
ldap.managerPassword=secret
#========================================
# LDAP connection pool configuration
#========================================
ldap.pool.minSize=1
ldap.pool.maxSize=10
ldap.pool.validateOnCheckout=false
ldap.pool.validatePeriodically=true
# Amount of time in milliseconds to block on pool exhausted condition
# before giving up.
ldap.pool.blockWaitTime=3000
# Frequency of connection validation in seconds
# Only applies if validatePeriodically=true
ldap.pool.validatePeriod=300
# Attempt to prune connections every N seconds
ldap.pool.prunePeriod=300
# Maximum amount of time an idle connection is allowed to be in
# pool before it is liable to be removed/destroyed
ldap.pool.idleTime=600
#========================================
# Authentication
#========================================
ldap.authn.searchFilter=cn={user}
# Ldap domain used to resolve dn
ldap.domain=example.org
# Should LDAP Password Policy be enabled?
ldap.usePpolicy=false
# Allow multiple DNs during authentication?
ldap.allowMultipleDns=false
Теперь, я не мог найти какую-либо информацию о том, как для создания пользователя в LDAP для CAS. Да, я видел некоторые атрибуты, которые кажутся законными. Поэтому я создал organizationalPerson
в JXplorer. Я установил пароль и попытаюсь войти в систему с именем пользователя (cn=...
). Но, как я и ожидал, это не сработало.
Есть ли какая-либо информация о том, что CAS действительно ожидает получить от LDAP? Должно быть какое-то руководство. В информации cas.properties
указано: Базовое DN пользователей для аутентификации, но как CAS знает, какой атрибут пользователь имеет, или он даже должен его знать?
Итак, чтобы подвести мой вопрос вверх: как создать пользователя в LDAP, или как должен выглядеть пользователь? Что мне нужно делать с CAS (deployerConfigContext.xml
), что CAS понимает мой LDAP-сервер?