使用 OneLogin VLDAP 配置用户身份验证和授权
在此页面上
注意
从MongoDB 8.0开始, LDAP身份验证和授权已弃用。该功能可用,并将在MongoDB 8的整个生命周期内继续运行,无需进行任何更改。 LDAP将在未来的主要发布中删除。
有关详细信息,请参阅 LDAP弃用。
注意
此功能不适用于
M0
免费集群、M2
和M5
集群。要了解更多信息,请参阅 Atlas M 0 (免费集群)、M 2和 M 5限制。无服务器实例目前不支持此功能。要了解更多信息,请参阅无服务器实例限制。
本指南向您展示如何启用Atlas对来自 OneLogin 的数据库用户(非Atlas用户)进行身份验证和授权 ,第三方 LDAP 提供商。
您可以仅启用 LDAP 身份验证,也可以同时启用 LDAP 身份验证和授权:
如果您仅启用 LDAP 身份验证,则将单个用户添加到 Atlas,并为每个添加的用户分配数据库访问权限。
如果您同时启用 LDAP 身份验证和授权,则将用户组添加到 Atlas,并为每个群组分配数据库访问权限。用户从其所属的 LDAP 群组继承数据库访问权限。
Atlas 支持通过 OneLogin 对数据库用户进行身份验证和授权。
限制
您必须部署
M10
或更大的 Atlas 集群才能启用 LDAP 集成。LDAP 集成是 Atlas Enterprise 的一项功能。Atlas 不支持对从现有 LDAP 目录同步的用户进行身份验证和授权。
Atlas 不支持数据库用户的单点登录集成。要了解 Atlas 管理 Web 界面的单点登录集成,请参阅配置联合身份验证。
必需的访问权限
要管理 LDAP 用户或群组,必须拥有 Atlas 的 Organization Owner
或 Project Owner
访问权限。
步骤
为 LDAP 身份验证配置 OneLogin
以下过程将配置 OneLogin 以使用 Atlas 进行身份验证:
设置 OneLogin LDAP 服务。
要了解有关设置 OneLogin LDAP 服务的更多信息,请参阅 OneLogin 文档。
重要
您可能需要联系 OneLogin 支持部门,为您的账户启用 VLDAP 服务。
记下您的
<onelogin-instance-id>
。 您必须在配置过程中在多个位置提供此值。实例名称位于您用于登录 OneLogin 帐户的 URL 中:
https://<onelogin-instance-id>.onelogin.com
将 IP 地址添加到 IP 访问列表。
在 OneLogin 中,单击Authentication ,然后单击VLDAP 。 将以下内容添加到Allow access by IP address字段,将其添加到IP访问列表:
Atlas 集群中每个节点的 IP 地址。 使用
nslookup
获取集群中每台主机的 IP 地址,并使用 Atlas 生成的主机名:nslookup cluster0-shard-00-00-example.mongodb.net 注意
如果任何节点的 IP 地址发生变化,则必须使用新的 IP 地址更新 IP 访问列表。
(可选)您可以运行
ldapsearch
命令以解决 LDAP 连接问题的计算机的 IP 地址。
创建绑定用户。
创建新的 OneLogin 用户 用作 Atlas 绑定用户。绑定用户是 OneLogin 用户,用于查询帐户并在数据库用户连接到 Atlas 数据库时验证数据库用户的档案。
创建绑定用户时, Email和Username字段为必填项。 您应该在这两个字段中输入相同的电子邮件地址。
重要
请勿将您自己的用户帐户用于绑定用户。
使用以下模板确定绑定用户的完整标识名 (DN):
cn=<bind-user-email>,ou=users,dc=<onelogin-instance-id>,dc=onelogin,dc=com 例如,如果
<bind-user-email>
为bind@example.com
,<onelogin-instance-id>
为mdb-example
,则绑定用户的标识名为:cn=bind@example.com,ou=users,dc=mdb-example,dc=onelogin,dc=com
为 LDAP 身份验证配置 Atlas
以下过程使 Atlas 能够从 OneLogin LDAP对数据库用户进行身份验证:
在 AtlasAdvanced 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Advanced 。
显示“高级”页面。
将 旁边的按钮切换为LDAP Authentication On。
注意
启用此功能后,您可能会产生额外的费用。请参阅高级安全。
在 AtlasDatabase Access 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Database Access 。
显示数据库访问页面。
将 LDAP 用户添加到 Atlas
注意
如果要启用 LDAP 授权,请跳过此步骤。
将 OneLogin LDAP中托管的用户添加到 Atlas。
单击 Add New Database User(添加新的数据库用户)。
单击 LDAP User(连接)。
执行以下操作之一:
如果您尚未输入 User to DN Mapping,请输入 LDAP 用户的完整标识名 (DN)。遵循此模板:
cn=<user-name>,ou=users,dc=<onelogin-instance-id>,dc=onelogin,dc=com 例如,如果
<user-name>
为jane@example.com
,<onelogin-instance-id>
为mdb-example
,则绑定用户的标识名为:cn=jane@example.com,ou=users,dc=mdb-example,dc=onelogin,dc=com 如果您输入了User to DN Mapping ,请输入映射所需的用户名或电子邮件地址。
选择要授予用户的数据库访问级别。
单击 Add User(连接)。
为 LDAP 授权配置 OneLogin
注意
如果您不想启用 LDAP 授权,请 跳过此部分 。
以下过程将配置 Atlas 以授权属于 OneLogin LDAP数据库访问群组的用户。
重要
在启用授权之前,您必须启用 LDAP 身份验证。
启用和配置 LDAP 授权后,仅配置为 LDAP 身份验证的数据库用户将无法再访问数据库。
为 LDAP 授权配置 Atlas
注意
如果您不想启用 LDAP 授权,请 跳过此部分 。
以下过程将 OneLogin 数据库访问组添加到 Atlas,并在 Atlas 中启用数据库用户授权:
在 AtlasDatabase Access 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Database Access 。
显示数据库访问页面。
将数据库访问 LDAP 群组添加到 Atlas。
将您创建的每个 OneLogin 数据库群组添加到 Atlas。 您添加的群组成员有权执行授予该群组的数据库操作。
单击 Add New Database User(添加新的数据库用户)。
点击 LDAP Group,然后输入包含数据库用户的组的完整标识名,即使启用了 User to DN Mapping 也要如此操作。遵循此模板:
cn=<group-name>,ou=groups,dc=<onelogin-instance-id>,dc=onelogin,dc=com 例如,如果
<group-name>
为db-read
,<onelogin-instance-id>
为mdb-example
,则绑定用户的标识名为:cn=db-read,ou=groups,dc=mdb-example,dc=onelogin,dc=com
选择要授予此群组中用户的数据库访问级别。
单击 Add User(连接)。
在 AtlasAdvanced 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Advanced 。
显示“高级”页面。
使用以下命令连接到集群 mongosh
以下过程验证 LDAP 身份验证(以及 LDAP 授权,如启用)是否配置正确:
注意
启用 LDAP 身份验证后,数据库用户必须为其客户端覆盖连接字符串中的以下参数:
authSource
必须是$external
authenticationMechanism
必须是PLAIN
在 AtlasClusters 中,转到项目的 页面。
如果尚未显示,请选择包含所需项目的组织导航栏中的Organizations菜单。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
如果 Clusters(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。
此时会显示“集群”页面。
使用添加到 Atlas 的用户档案连接到集群。
使用mongosh
连接到集群。 要复制连接string :
单击 Connect(连接)。
单击 LDAP,然后单击 Copy(复制)。
粘贴并编辑包含您的用户 DN 和密码的字符串。
注意
如果未启用用户到 DN 映射,则使用用户的完整 DN 连接集群。
排除 LDAP 连接问题
注意
在解决 OneLogin 连接问题之前,请将运行ldapsearch
的主机添加到 IP 访问列表中。
使用 ldapsearch
,确定您配置 Atlas 所使用的查询模板是否按预期方式返回用户 DN。如果 LDAP 身份验证有效,但 LDAP 授权无效,则查询模板可能不会返回正确的用户 DNS。
使用以下 ldapsearch
模板:
ldapsearch -H 'ldaps://ldap.us.onelogin.com:636' -D '<bind_user_dn>' -w '<bind_user_pwd>' -b 'dc=<onelogin_instance_id>,dc=onelogin,dc=com' -s sub
例如,如果bind-user-dn
为cn=jane@example.com,ou=users,dc=mdb-example,dc=onelogin,dc=com
, <onelogin-instance-id>
为mdb-example
,则使用以下命令:
ldapsearch -H 'ldaps://ldap.us.onelogin.com:636' -D 'cn=jane@example.com,ou=users,dc=mdb-example,dc=onelogin,dc=com' -w '<REDACTED>' -b 'dc=mdb-example,dc=onelogin,dc=com' -s sub
注意
其他查询模板也可能有效。