轻量级目录访问协议(LDAP)是一种集中式访问控制系统,被许多中小型组织使用。
通过设置 LDAP 服务,您可以使用 LDAP 凭据登录 ERPNext 账户。
1. 前提条件
要使用 LDAP,您首先需要安装 ldap3 Python 模块。为此,请在托管 ERPNext 实例的服务器上打开一个终端会话。进入 frappe-bench 目录。
运行命令:./env/pip install ldap3
现在您已准备好启用 ERPNext 中的 LDAP 服务。
2. 设置 LDAP
要设置 LDAP,请前往
首页 > 集成 > LDAP 设置
许多参数是强制性的,以便让 ERPNext 连接到 LDAP。它们是:
-
LDAP 服务器 URL:这是您的 LDAP 服务器的 URL。必须采用
ldap://yourserver:port或ldaps://yourserver:port的形式。 -
基础专有名称(DN):这是有权在您的 LDAP 服务器上查找用户详细信息的用户的专有名称。该用户应仅在您的 LDAP 服务器上拥有只读权限。
-
基础 DN 的密码:这是上述用户的密码,用于在您的 LDAP 服务器上查找用户详细信息。
-
用户组织单位:这是组织单位的 DN,您的 LDAP 服务器中的所有用户必须属于该组织单位才能登录 ERPNext。
-
创建时的默认角色:当用户在 ERPNext 中创建时,他们将在首次登录时被分配此默认角色。
-
LDAP 搜索字符串:此字段允许 ERPNext 将 ERPNext 登录屏幕中输入的用户/电子邮件与 LDAP 服务器进行匹配。例如,您可以根据偏好使用电子邮件地址或用户名。
它必须以以下格式输入:LDAPFIELD={0}
Active Directory 用户名示例:sAMAccountName={0}
Open LDAP 用户名示例:uid={0}
- LDAP 电子邮件字段:指定包含用户电子邮件地址的 LDAP 字段。
Active Directory 和 Open LDAP 示例:mail
- LDAP 用户名字段:指定包含用户用户名的 LDAP 字段。
Active Directory 示例:sAMAccountName
Open LDAP 示例:uid
- LDAP 名字字段:指定包含用户名字的 LDAP 字段。
Active Directory 示例:givenName
Open LDAP 示例:sn
还有许多其他非强制性字段,您可以使用它们将 LDAP 用户字段映射到 ERPNext 用户字段。它们是:
- 中间名
- 电话
- 手机
一旦您的设置正确,您可以点击顶部的 Enabled 复选框。当尝试启用 LDAP 时,ERPNext 将尝试连接到 LDAP 服务器以确保设置正确。如果失败,您将无法启用 LDAP,并会收到一条错误消息。
错误消息将指示需要解决的问题才能继续。
启用 LDAP 后,在登录屏幕上,系统会启用通过 LDAP 登录选项。
2.1 LDAP 安全
在 LDAP 安全部分,您有多种选项可以安全地连接到您的 LDAP 服务器。
-
SSL/TLS 模式
指定是否要在初始连接到 LDAP 服务器时启动 TLS 会话。
-
需要受信任的证书
指定是否需要受信任的证书才能连接到 LDAP 服务器。
如果您指定了受信任的证书,则需要指定证书文件的路径。这些文件应放置在您的 ERPNext 服务器上,以下字段应为服务器上文件的绝对路径。 证书字段包括:
-
私钥文件路径
-
服务器证书路径
-
CA 证书文件路径
2.2 LDAP 组映射
ERPNext 还允许您自动将多个 LDAP 组映射到相应的 ERPNext 角色。 例如,您可能希望所有会计部门的员工自动拥有“会计用户”角色。
请确保填写 LDAP 组字段以允许此操作。这是 LDAP 中用户对象上的字段,包含用户所属的所有组。
对于 Active Directory 和 Open LDAP,此字段应设置为 memberOf。
Open LDAP 可能需要在您的 LDAP 服务器上启用此字段。有关更多详细信息,请参阅互联网上的示例。
请注意,每次用户登录时都会检查所有 ERPNext 角色,并会从用户权限中移除或添加相应角色。
在 LDAP 设置区域,有两个下拉菜单。
- SSL/TLS 模式 – 将其设置为 StartTLS 以使用 StartTLS 连接到您的 LDAP 服务器。如果您的 LDAP 服务器不支持 StartTLS,将其设置为 StartTLS 将导致错误
StartTLS is not supported。如果收到此错误,请检查 LDAP 服务器上的配置。 - 需要受信任的证书 – 如果将此选项更改为是,则 LDAP 服务器提供的证书必须受 Frappe/ERPNext 服务器信任。如果您希望使用带有自签名(不受信任)证书的 StartTLS,请将此选项设置为否。如果您不使用 StartTLS,则此设置将被忽略。