如何使用 "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 创建模式。