如何使用 "OpenLDAP" 在 CAS 中创建用户?
How to create users in CAS with "OpenLDAP"?
我做了文档中关于在 CAS 中设置 LDAP 身份验证的操作。 (https://apereo.github.io/cas/4.2.x/installation/LDAP-Authentication.html)
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 for CAS 中创建用户的信息。是的,我看到了一些似乎合法的属性。所以我在 JXplorer 中创建了一个 organizationalPerson
。我设置了密码并尝试使用用户名 (cn=...
) 登录。但正如我所料,那没有用。
是否有任何 CAS 实际期望从 LDAP 获得的信息?必须有某种指导方针。 cas.properties
信息说:待认证用户的Base DN,但是CAS怎么知道用户有什么属性,或者他必须知道呢?
总结一下我的问题:如何在 LDAP 中创建用户,或者用户必须是什么样子? CAS 理解我的 LDAP 服务器与 CAS (deployerConfigContext.xml
) 有什么关系?
CAS 不关心您的 ldap 架构,只要您在配置中正确描述它即可。 CAS 也不是 LDAP 服务器,并且永远不会填充 LDAP 服务器 and/or 创建模式。
我做了文档中关于在 CAS 中设置 LDAP 身份验证的操作。 (https://apereo.github.io/cas/4.2.x/installation/LDAP-Authentication.html)
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 for CAS 中创建用户的信息。是的,我看到了一些似乎合法的属性。所以我在 JXplorer 中创建了一个 organizationalPerson
。我设置了密码并尝试使用用户名 (cn=...
) 登录。但正如我所料,那没有用。
是否有任何 CAS 实际期望从 LDAP 获得的信息?必须有某种指导方针。 cas.properties
信息说:待认证用户的Base DN,但是CAS怎么知道用户有什么属性,或者他必须知道呢?
总结一下我的问题:如何在 LDAP 中创建用户,或者用户必须是什么样子? CAS 理解我的 LDAP 服务器与 CAS (deployerConfigContext.xml
) 有什么关系?
CAS 不关心您的 ldap 架构,只要您在配置中正确描述它即可。 CAS 也不是 LDAP 服务器,并且永远不会填充 LDAP 服务器 and/or 创建模式。