9. LDAP集成¶
9.1. 概述¶
使用LDAP作为用户凭证和信息的源非常容易。最困难的部分在于构建LDAP模式或使用现有模式。
在创建多维数据集时,会询问是否需要更多的源。此时LDAP是一个可能的选项。当然,以后使用 CWSource 实体类型,我们在这里讨论。
可以根据需要添加尽可能多的LDAP源,这些源可以翻译为 CWSource 需要时的实体。
LDAP源的一般原则是,给定适当的配置,创建与目录中可用用户匹配的本地用户,并从目录用户属性派生本地用户属性。然后,定期任务确保本地用户信息与目录同步。
由此类源处理的用户不应直接从应用程序实例内部进行编辑。相反,应该在LDAP服务器级别进行更新。
凭证检查是 _always_ 在LDAP服务器上完成。
注解
当前有两种LDAP源类型:旧的 ldapuser 和更新的 ldapfeed .老年人很快就会被弃用,因为老年人现在已经具备了老年人的所有特征,并且不患某些疾病。
ldapfeed创建了真实的 CWUser 实体,然后根据它们在相应LDAP源中的存在/不存在来激活/停用它们。因此,它们的属性和状态(激活/停用)由源机制管理;它们不应通过其他方式进行更改(因为在某些后续的源同步中可能会覆盖这些更改)。
9.2. ldapfeed源的配置¶
其他源是在多维数据集创建时或稍后通过用户界面创建的。
配置 ldapfeed 源代码,来自下面的用户界面 Manage 然后 data sources :
在这一点上 type 已设置为 ldapfeed .
这个 parser 属性应设置为 ldapfeed .
这个 url 属性应设置为一个URL,如ldap://ldapserver.domain/。
这个 configuration 属性包含许多选项。它们将在下一段中详细描述。
9.3. ldapfeed源的选项¶
让我们按类别(LDAP服务器连接、LDAP架构映射信息)枚举选项。
LDAP服务器连接选项:
auth-mode ,(选择很简单,cram_md5,digest_md5,gssapi,支持从现在开始的部分内容)
auth-realm ,使用GSSAPI/Kerberos身份验证时要使用的领域
data-cnx-dn ,用于打开到LDAP的数据连接的用户DN(例如用于响应RQL查询)
data-cnx-password ,用于打开到LDAP的数据连接的密码(例如用于响应RQL查询)
start-tls ,在绑定之前启动TLS(有效值:“true”、“false”)
如果LDAP服务器接受匿名绑定,则可以将数据CNX DN和数据CNX密码保留为空。然而,这在实践中是不太可能的。注意,LDAP服务器可能隐藏诸如“userpassword”之类的属性,而其余属性通过匿名绑定保持可见。
LDAP架构映射选项:
user-base-dn ,用于查找用户的基本DN
user-scope ,用户搜索范围(有效值:“base”、“onelevel”、“subtree”)
user-classes ,用户类(对于Active Directory,您要在此处说“用户”)。
user-filter ,要在LDAP查询中设置其他筛选器以查找有效用户
user-login-attr ,用作身份验证登录的属性(对于Active Directory,您要在此处使用“samaccountname”)。
user-default-group ,默认情况下LDAP用户所在组的名称。可以通过用逗号分隔多个组来设置多个组
user-attrs-map ,从ldap用户属性映射到cubicWeb属性(对于Active Directory,您要使用samaccountname:login,mail:email,givenname:firstname,sn:surname)
9.4. 其他注记¶
如果无法访问LDAP,则CubicWeb可以启动…如果某个实例运行时无法使用某个源LDAP服务器,则不会对相应的用户进行身份验证,但不会更改其状态(例如,不会停用这些用户)
用户基DN是一个帮助CubicWeb将cwUsers映射到LDAP用户的键:注意更新它
当用户从LDAP源中删除时,它将在cubicWeb实例中被停用;当停用的用户返回LDAP源时,它(自动)将再次被激活。
你可以使用
CWSourceHostConfig
根据运行实例的主机,为源配置提供变量。要执行此操作,请从“源管理”视图转到源视图。