Docs 菜单
Docs 主页
/
MongoDB Ops Manager
/ /

为 LDAP 配置 MongoDB Agent

在此页面上

  • 先决条件
  • 在 MongoDB 中创建和配置用户

注意

从MongoDB 8.0开始, LDAP身份验证和授权已弃用。 该功能可用,并将在MongoDB 8的整个生命周期内继续运行,无需进行任何更改。 LDAP将在未来的主要发布中删除。

有关详细信息,请参阅 LDAP弃用。

如果您的MongoDB部署强制执行访问权限控制,则MongoDB Agent必须以具有适当访问权限的用户身份向MongoDB进行身份验证。 如果您使用 自动化, MongoDB Ops Manager会为您处理这些事情。

MongoDB Enterprise支持通过 saslauthd和操作系统库简单绑定到LDAP服务器的 SASL:

  • MongoDB Enterprise for Linux 可以通过saslauthd或操作系统库绑定到LDAP服务器。

  • MongoDB Enterprise for Windows 可以通过操作系统库绑定到LDAP服务器。

MongoDB 助手支持使用LDAP对 MongoDB 实例进行身份验证。

注意

通过自动化,Ops Manager 可以为您托管 MongoDB Agent 身份验证。要了解有关身份验证的更多信息,请参阅为 Ops Manager 项目启用 LDAP 身份验证。

MongoDB Agent与部署中的MongoDB数据库交互,就像MongoDB用户一样。因此,您必须配置 MongoDB 部署和 MongoDB Agent 以支持身份验证。

您可以在添加部署时指定部署的身份验证机制,也可以编辑现有部署的设置。 部署必须至少启用您希望 MongoDB 助手使用的身份验证机制。 MongoDB 助手可以使用任何受支持的身份验证机制。

在MongoDB Agent 助手主机上,您必须设置 TLS_REQCERT 环境变量设置为demand

例子

在 Red Hat Enterprise Linux 主机中,打开/etc/openldap/ldap.conf文件并添加以下设置和值:

TLS_REQCERT demand

您可以使用应用程序来设置此环境变量。

如果Automation不托管您的部署,则必须为每个函数单独配置LDAP身份验证。

配置 LDAP 身份验证,请添加主机或编辑现有主机的配置。

要自动执行使用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实例,请将具有所需角色的用户添加到MongoDB中的$external数据库。 $external数据库存储用于外部凭证身份验证和授权详细信息的档案。

使用以下mongosh命令创建用户:

db.getSiblingDB("$external").createUser(
{
user : "<username>",
roles: [ {
role: "clusterAdmin", db: "admin"
} ]
}
)

要学习;了解有关所需访问权限的更多信息,请参阅MongoDB Agent备份所需的访问权限。

要监控使用LDAP身份验证的MongoDB实例,请将用户添加到MongoDB中的$external数据库。 $external数据库存储用于外部凭证身份验证和授权详细信息的档案。 为该用户分配以下示例中提供的角色。

使用以下mongosh命令创建用户:

db.getSiblingDB("$external").createUser(
{
user : "<username>",
roles: [ { role: "clusterMonitor", db: "admin" } ]
}
)

要了解此功能需要哪些角色,请参阅监控设置。

后退

SCRAM-SHA