Docs 菜单
Docs 主页
/ / /
C++ 驱动程序
/

企业身份验证机制

在此页面上

  • Overview
  • Kerberos
  • 获取票证授予票证
  • 设置连接选项
  • PLAIN SASL
  • API 文档

MongoDB Enterprise Edition 包含MongoDB Community Edition中不提供的身份验证机制。 在本指南中,您可以学习;了解如何使用这些身份验证机制对MongoDB进行身份验证。 要学习;了解MongoDB中提供的其他身份验证机制,请参阅身份验证机制。

通用安全服务API (GSSAPI) 为Kerberos身份验证提供接口。

注意

要使用 GSSAPI 进行身份验证,您必须构建支持SASL 的MongoDB C驾驶员。 如果从源代码构建驾驶员,则可以使用 ENABLE_SASL cmake选项启用SASL支持。

请完成以下步骤,使用 GSSAPI 进行身份验证:

1

在 Unix 环境中,必须首先运行kinit命令来获取并缓存初始票证授予票证。 如果您运行的是Windows环境,则可以跳到下一步。

以下示例使用kinit命令获取主体mongodbuser@EXAMPLE.COM的票证授予票证。 然后,它使用klist命令显示凭证缓存中的主体和票证。

$ kinit mongodbuser@EXAMPLE.COM
mongodbuser@EXAMPLE.COM's Password:
$ klist
Credentials cache: FILE:/tmp/krb5cc_1000
Principal: mongodbuser@EXAMPLE.COM
Issued Expires Principal
Feb 9 13:48:51 2013 Feb 9 23:48:51 2013 krbtgt/mongodbuser@EXAMPLE.COM
2

接下来,设立以下连接选项:

  • Kerberos principal:要进行身份验证的Kerberos主体。

  • authMechanism:设置为"GSSAPI"

  • authMechanismProperties:可选。 默认, MongoDB使用mongodb作为身份验证服务名称。 要指定不同的服务名称,请将此选项设立为"SERVICE_NAME:<authentication service name>"

您可以通过连接 URI 中的参数设立这些选项,如以下示例所示:

auto uri = mongocxx::uri("mongodb://<Kerberos principal>@<hostname>:<port>/?"
"authMechanism=GSSAPI"
"&authMechanismProperties=SERVICE_NAME:<authentication service name>");
auto client = mongocxx::client(uri);

注意

您必须将主体中的@符号替换为%40 ,如前面的示例所示。

PLAIN 简单身份验证和安全层 (SASL),由 RFC4616 定义 是一种用户名-密码身份验证机制,通常与 TLS 或其他加密层一起使用。

重要

PLAIN SASL 是一种明文身份验证机制。 在使用 PLAIN SASL 对 MongoDB 进行身份验证时,强烈建议您将 TLS/SSL 与证书验证结合使用。

要详细了解如何为连接启用 TLS,请参阅配置传输层安全性 (TLS)。

要使用 SASL 进行身份验证,请将authMechanism连接选项设立为PLAIN 。 您可以通过连接string中的参数设立此选项,如以下示例所示:

auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"authMechanism=PLAIN&tls=true");
auto client = mongocxx::client(uri);

要学习;了解有关在C++驾驶员中创建mongocxx::client对象的详情,请参阅以下API文档:

后退

身份验证机制