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 根据运行实例的主机,为源配置提供变量。要执行此操作,请从“源管理”视图转到源视图。