2016-07-26 5 views
0

Я сделал то, что в документации говорилось о настройке аутентификации 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-сервер?

ответ

1

CAS не заботится о вашей схеме ldap, если вы правильно ее описываете в своей конфигурации. CAS также не является сервером LDAP и никогда не будет заполнять сервер LDAP и/или создавать схему.