设置LDAP

轻量级目录访问协议(LDAP)是一种对象目录,通常用于集中式身份验证,也就是大家常说的单点登录(SSO)。许多从小型到大型的组织都部署了 LDAP。

在 Frappe 中设置 LDAP 集成后,你就可以使用 LDAP 凭据登录你的 Frappe 应用了。

  1. 配置

LDAP 设置页面上的许多字段都是必填的。这些字段在下方会以粗体显示,方便你辨认。

配置 LDAP 设置时,如果勾选了“启用”复选框,Frappe 会验证你填入字段的数据。如果有任何数据看起来无效,设置将无法保存,并会显示一条错误信息。修正所有错误后,你就可以成功启用 LDAP 身份验证了。

LDAP 设置配置页面被分成了几个小部分。请参阅下面的标题,了解如何配置每个部分。

要设置 LDAP,请导航到:

主页 > 集成 > LDAP 设置

:memo: 提醒
在配置页面输入设置后,别忘了勾选页面顶部的启用复选框。

1.1 LDAP 服务器

Frappe 已在 OpenLDAP 和 Active Directory 上测试过。不过,任何符合标准的 LDAP 目录都可以用作 LDAP 身份验证源。

  • LDAP 目录服务器:(下拉菜单)选择与你的 LDAP 目录匹配的选项。可用选项有:

Active Directory 用于 Microsoft Active Directory

OpenLDAP 用于 OpenLDAP

自定义 如果你需要调整 LDAP 组属性,请选择此选项。例如,你的 LDAP 组设置是 groupofnames 或 uniquegroupofnames 等

  • LDAP 服务器 URL:这是你的 LDAP 服务器的 URL。格式必须为 ldap://yourserver:port 或 ldaps://yourserver:port

1.2 LDAP 身份验证

此部分包含将绑定到目录服务器的用户详细信息。

  • 基础可分辨名称(DN):这是将绑定到 LDAP 的用户。该用户需要有权查看你在下方输入的搜索路径。
  • 基础 DN 的密码:这是上述用户的密码,用于在 LDAP 服务器上查找用户详细信息。

1.3 LDAP 搜索路径

此部分是每个 LDAP 目录对象的搜索路径。只要采用 LDAP FDN(完整可分辨名称)格式,任何 LDAP 容器对象路径都可以使用。例如 ou=my frappe objects,dc=example,dc=com。此处提供的任何路径都要求绑定用户具有读写权限。

绑定用户需要写权限,以便最终用户可以重置密码。

  • 用户 LDAP 搜索路径:这是 LDAP 服务器中所有用户必须属于的搜索路径,才能登录 Frappe 应用。
  • 组 LDAP 搜索路径:这是 LDAP 服务器中所有组必须属于的搜索路径,才能登录 Frappe 应用。
  • LDAP 搜索字符串:此字段允许 Frappe 将 Frappe 登录界面中输入的用户/电子邮件与 LDAP 服务器进行匹配。例如,你可以根据偏好使用电子邮件地址或用户名。

你可以在此处使用复杂的 LDAP 搜索过滤器,只要它们包含登录名占位符 {0} 并用大括号 () 括起来即可。它会被放在搜索过滤器中你希望匹配登录名的位置。ldap3 Python 模块支持且你的 LDAP 目录支持的任何过滤器都应该可用。例如:

(uid={0})

(SamAccountName={0}) – (Active Directory)

(&(description=*ACCESS:Frappe*)(uid={0}) – 在 OpenLDAP 中使用过滤器描述可以实现类似 Active Directory 的过滤 memberOf,因为它只会选择描述字段中包含 ACCESS:Frappe 的用户。

(&(SamAccountName={0})(memberof=cn=Domain Users,ou=Groups,DC=example,dc=com)) – (Active Directory)

1.4 LDAP 用户创建与映射

此部分包含将从目录服务器读取并映射到 Frappe 用户的 LDAP 属性。

  • LDAP 电子邮件字段:指定包含用户电子邮件地址的 LDAP 属性。mail 是常用的 LDAP 属性。
  • LDAP 用户名字段:指定包含用户用户名的 LDAP 属性。Active Directory 使用 sAMAccountName,OpenLDAP 使用 uid。
  • LDAP 名字字段:指定包含用户名字的 LDAP 字段。通常使用 givenName 或 sn。

还有许多其他非必填的 LDAP 属性可用于映射到 Frappe 用户。它们是:

  • 中间名
  • 电话
  • 手机

安全警告 请注意,如果您将 LDAP 属性 mail 用于用户名字段,这可能会带来安全隐患。mail 在 LDAP 中不是唯一值。启用 mail 属性用于登录目的超出了本文档的范围。请查阅您的目录服务器文档以了解如何操作。

1.5 LDAP 安全

本节为可选内容。但是,如果您想配置与目录服务器的安全连接,可以在此处输入 TLS 连接详情。

  • 在 LDAP 设置区域中,有两个下拉菜单。

    1. SSL/TLS 模式 – 将其设置为 StartTLS 以使用 StartTLS 连接到您的 LDAP 服务器。如果您的 LDAP 服务器不支持 StartTLS,将其设置为 StartTLS 将导致错误 StartTLS is not supported。如果您收到此错误,请检查 LDAP 服务器上的配置。
    2. 要求受信任的证书 – 如果您将其更改为

    Yes 则 LDAP 服务器提供的证书必须被 Frappe 服务器信任。

    No 不建议使用此设置,因为它绕过了确保证书由受信任的证书颁发机构签名的检查。

如果您希望使用 StartTLS 配合自签名(不受信任的)证书,请将其设置为 否。如果您不使用 StartTLS,此设置将被忽略。

  • SSL/TLS 模式
    指定您是否希望在初始连接到 LDAP 服务器时启动 TLS 会话。
  • 要求受信任的证书
    指定您是否要求使用受信任的证书来连接 LDAP 服务器

如果您指定了受信任的证书,您需要指定证书文件的路径。这些文件需要放置在您的 Frappe 服务器上,以下字段应为服务器上文件的绝对路径。证书字段包括:

  • 私钥文件路径
  • 服务器证书路径
  • CA 证书文件路径

要将您的 Frappe 实例配置为接受由您自己的”证书颁发机构”或”自签名证书”签名的证书,请查阅您的操作系统文档,了解如何将”证书颁发机构”/”自签名”证书添加到您的”受信任证书存储”中。

1.6 LDAP 自定义目录

如果您选择自定义目录服务器,本节为必填项。此处只有两个选项,它们与您的目录服务器使用的组相关。它们是:

  • 组对象类 这是您目录服务器中组的对象类。
  • 组成员属性 这是组中包含用户通用名称(CN)的 LDAP 属性。
  • 自定义组搜索 可用于指定自定义 LDAP 组搜索,某些 LDAP 提供商需要此设置。

1.7 LDAP 组映射

本节包含映射 LDAP 组的详细信息。用户所属的任何组都将映射到指定的 Frappe 角色。

Frappe 功能:如果您配置了组映射,每次用户登录时,系统都会检查其角色并根据需要添加/移除角色。

  • 创建时的默认角色:当用户在您的 Frappe 应用中创建时,将被分配此默认角色。
  • LDAP 组映射表 您可以将多个 LDAP 组映射到 Frappe 角色。输入的 LDAP 组必须与 LDAP cn 属性匹配。即 ‘Domain Users’ 而不是 ‘cn=Domain Users,ou=Groups,dc=example,dc=com’,后者是 LDAP FDN 条目。

示例

序号 LDAP 组 角色
1 Domain Users Guest
2 Domain Administrators Administrator
  • LDAP 组字段 (弃用警告) 这是用户 LDAP 对象中包含用户所属组列表的 LDAP 属性。如果您已按照上述内容配置了所有设置,此设置将不会生效。此字段仅为在当前布局之前配置了 LDAP 的用户保留。此字段将在 Frappe 的未来版本中移除。
  1. 使用 LDAP 登录 Frappe

设置并启用 LDAP 后,在登录屏幕上,系统会启用通过 LDAP 登录选项。

图 1. 配置并启用 LDAP 后的 Frappe 应用登录屏幕。