文档菜单
文档首页
/ / /
C++ 驱动程序
/

企业级身份验证机制

本页内容

  • 概述
  • Kerberos
  • 获取票据授予票据
  • 设置连接选项
  • PLAIN SASL
  • API 文档

MongoDB 企业版包含 MongoDB 社区版中不可用的身份验证机制。在本指南中,您可以了解如何使用这些身份验证机制进行 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主体:要认证的Kerberos主体。

  • authMechanism:设置为"GSSAPI"

  • authMechanismProperties:可选。默认情况下,MongoDB使用mongodb作为认证服务名称。要指定不同的服务名称,请将此选项设置为"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),如由以下定义RFC 4616定义,是一种常与TLS或其他加密层一起使用的用户名密码认证机制。

重要

PLAIN SASL是一种明文认证机制。我们强烈建议您在使用PLAIN SASL对MongoDB进行认证时,使用TLS/SSL并验证证书。

有关如何启用连接的TLS的更多信息,请参阅配置传输层安全(TLS)。

要使用SASL进行认证,将authMechanism连接选项设置为PLAIN。您可以通过连接字符串中的参数设置此选项,如下例所示

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

要了解更多关于在 C++ 驱动中创建 mongocxx::client 对象的信息,请参阅以下 API 文档

返回

身份验证