为 LDAP 配置 MongoDB Agent
注意
从MongoDB 8.0开始, LDAP身份验证和授权已弃用。 该功能可用,并将在MongoDB 8的整个生命周期内继续运行,无需进行任何更改。 LDAP将在未来的主要发布中删除。
有关详细信息,请参阅 LDAP 弃用。
如果您的 MongoDB 部署强制执行访问控制,则 MongoDB Agent 必须以具有适当访问权限的用户身份向 MongoDB 进行身份验证。如果您使用自动化,Cloud Manager 会为您处理此操作。
MongoDB Enterprise支持通过 saslauthd
和操作系统库简单绑定到LDAP服务器的 SASL:
MongoDB Enterprise for Linux 可以通过
saslauthd
或操作系统库绑定到LDAP服务器。MongoDB Enterprise for Windows 可以通过操作系统库绑定到LDAP服务器。
MongoDB 助手支持使用LDAP对 MongoDB 实例进行身份验证。
注意
通过自动化, Cloud Manager可以为您管理MongoDB 助手身份验证。要学习;了解有关身份验证的更多信息,请参阅管理Cloud Manager项目的LDAP身份验证。
先决条件
配置部署以使用身份验证
MongoDB Agent与部署中的MongoDB数据库交互,就像MongoDB用户一样。因此,您必须配置 MongoDB 部署和 MongoDB Agent 以支持身份验证。
您可以在添加部署时指定部署的身份验证机制,也可以编辑现有部署的设置。 部署必须至少启用您希望 MongoDB 助手使用的身份验证机制。 MongoDB 助手可以使用任何受支持的身份验证机制。
设置需要 TLS 证书环境变量
在MongoDB Agent 助手主机上,您必须设置 TLS_REQCERT 环境变量设置为demand
。
例子
在 Red Hat Enterprise Linux 主机中,打开/etc/openldap/ldap.conf
文件并添加以下设置和值:
TLS_REQCERT demand
您可以使用应用程序来设置此环境变量。
Considerations
如果Automation不托管您的部署,则必须为每个函数单独配置LDAP身份验证。
要配置 LDAP 身份验证,请添加主机或编辑现有主机的配置。
在 MongoDB 中创建和配置用户
要自动执行使用LDAP身份验证的MongoDB实例,请将拥有所需角色和特权的MongoDB用户添加到MongoDB中的$external
数据库。 $external
数据库允许mongod
咨询外部来源(例如LDAP服务器)进行身份验证。
使用以下命令从mongosh
创建用户:
db.getSiblingDB("$external").createUser( { user : "<username>", roles : [ { role : "clusterAdmin", db : "admin" }, { role : "readWriteAnyDatabase", db : "admin" }, { role : "userAdminAnyDatabase", db : "admin" }, { role : "dbAdminAnyDatabase", db : "admin" }, { role : "backup", db : "admin" }, { role : "restore", db : "admin" } ] } )
要了解有关所需访问权限的更多信息,请参阅MongoDB Agent所需的访问权限。
要备份使用LDAP身份验证的MongoDB 4.0或更高版本实例,请将具有所需角色的用户添加到MongoDB中的$external
数据库。 $external
数据库存储用于外部凭证身份验证和授权详细信息的档案。
使用以下mongosh
命令创建用户:
db.getSiblingDB("$external").createUser( { user : "<username>", roles: [ { role: "clusterAdmin", db: "admin" } ] } )
db.getSiblingDB("$external").createUser( { user: "<username>", roles: [ { role: "backup", db: "admin" } ] } )
要学习;了解有关所需访问权限的更多信息,请参阅MongoDB Agent备份所需的访问权限