Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

使用 LDAP 设置用户身份验证和授权

在此页面上

  • 必需的访问权限
  • 先决条件
  • 建议
  • 考虑因素
  • LDAP 授权和 X.509 用户之间的冲突
  • 用户名
  • 连接字符串
  • 配置更改时滚动重启
  • 使用公共 IP 地址
  • 限制
  • 步骤
  • 使用 LDAP 配置身份验证
  • 配置授权
  • 添加 LDAP 数据库用户或群组
  • 查看 LDAP 配置
  • 禁用 LDAP 配置
  • 第三方 LDAP 提供商教程

注意

  • 此功能不适用于 M0 免费集群、M2M5 集群。如需了解更多信息,请参阅 Atlas M0(免费集群)、M2 和 M5 限制

  • 无服务器实例目前不支持此功能。要了解更多信息,请参阅无服务器实例限制

Atlas 提供了通过 TLS 使用自有轻量级目录访问协议 (LDAP) 服务器从所有 MongoDB 客户端管理用户身份验证和授权的功能。一个 LDAPS (LDAP over TLS) 配置适用于项目中的所有集群。

如果您用 LDAP 启用用户授权,则可以通过将 LDAP 群组映射到 Atlas 数据库中的 MongoDB 角色,在 admin 数据库中创建 LDAP 群组。要有效地使用 LDAP 群组,请在 Atlas 中创建其他项目,控制对组织特定部署的访问权限,例如为开发和生产环境创建单独的 Atlas 项目。然后,您可以将 LDAP 群组映射到 Atlas 项目中的角色,提供对所需部署的访问权限。

注意

当您启用用户授权且 LDAP 用户不属于任何 LDAP 群组时,Atlas 不会为此用户分配任何数据库角色。当您启用用户身份验证并禁用用户授权时,Atlas 会将 MongoDB 数据库角色分配给 LDAP 用户。

如果您的多个部门有自己的账单需求、警报设置和项目成员,请考虑为每个部门或业务部门创建一组新项目或新组织

注意

LDAP 的解释超出了 MongoDB 文档的范围。请查看 RFC4515 RFC4516 或参阅您首选的 LDAP 文档。

要管理 LDAP 用户或群组,必须拥有 Atlas 的 Organization OwnerProject Owner 访问权限。

您必须满足以下先决条件,才能在 Atlas 中使用 LDAP 管理用户身份验证和授权:

  • 使用 MongoDB 4.0 或更高版本的 Atlas 集群。

  • 使用 TLSLDAP 服务器,Atlas 集群可以使用 VPC 或 VNet 对等互连或集群节点的公共 IP 地址通过网络访问此服务器。

  • LDAP 群组成员身份作为每个用户的属性嵌入 LDAP 条目,仅用于用户授权。

对于访问 Atlas 集群的 LDAPS 服务,MongoDB 建议采用以下两种配置之一:

使用 VPC 或 VNet:

  1. VPC 或 VNet 中运行 LDAP 服务器。

  2. 建立与 Atlas 项目的对等互连。

  3. 使用可解析为 LDAP 服务器私有 IP 地址的公共 FQDN

使用您的数据中心:

  1. 使用可解析为公共 IP 地址的公共 FQDN 运行 LDAP 服务器。

  2. 配置 LDAP 服务器,支持从 Atlas 集群节点的公共 IP 地址进行入站访问。

如果启用 LDAP 授权,则使用 Atlas 托管的 X. 509证书进行身份验证的用户将无法连接到集群。

启用 LDAP 授权后,您可以通过使用自托管 X. 509证书进行身份验证的用户来连接集群。但是,用户的 X. 509证书中的公用名必须与有权使用 LDAP 访问数据库的用户的标识名匹配。

Atlas 使用 LDAP 服务器中用户的完整可分辨名称 (DN) 作为 Atlas 用户名。例如,一个名为 ralph 的示例 LDAP 用户在 Atlas 中的用户名如下:

cn=ralph,cn=Users,dc=aws-atlas-ldap-01,dc=myteam,dc=com

如果管理员通过 LDAP 启用用户身份验证,或者同时启用用户身份验证和授权,则数据库用户必须为其客户端覆盖连接字符串中的以下参数。

  • authSource 必须是 $external

  • authenticationMechanism 必须是 PLAIN

例子

mongosh的以下连接字符串对名为robLDAP用户进行身份验证:

mongosh "mongodb+srv://cluster0-tijis.mongodb.net/test?authSource=%24external" \
--authenticationMechanism PLAIN \
--username cn=rob,cn=Users,dc=ldaps-01,dc=myteam,dc=com

要复制连接字符串:

  1. 单击 Atlas 左上角的 Database

  2. 单击 Clusters 页面上的 Connect

  3. 使用 User DN 和密码编辑字符串。

注意

如果您的密码、数据库名称或连接字符串包含保留的 URI 字符,则必须对这些字符进行转义。例如,如果您的密码是 @bc123,则在连接字符串中指定密码时必须对 @ 字符进行转义,例如 %40bc123。要了解详情,请参阅连接字符串密码中的特殊字符

如果您更改 LDAP 配置,则 Atlas 将对集群执行滚动重启。重启后,Atlas 可通过正确的设置验证用户身份。

您可以通过网络地址转换,使用引用其他内部或私有 IP 地址的公共 IP 地址,从而支持 Atlas 流量访问 LDAP 服务器。如果您进行此类转换,请注意某些活动会触发 Atlas 集群公共 IP 地址更改。

如果您支持通过公共 IP 地址访问 LDAP 服务器,则更改 Atlas 集群的公共 IP 地址,将阻止 LDAP 访问。要恢复 LDAP 访问,请将新的 Atlas 集群公共 IP 地址添加到 LDAP 访问列表。

您不能对同一数据库用户同时使用 LDAP 和 SCRAM 身份验证。

按以下教程配置 Atlas,对来自第三方 LDAP 提供者的用户 进行身份验证和授权:

← 使用 AWS IAM 设置无密码身份验证