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

企业级身份验证机制

本页内容

  • 概述
  • 密钥管理协议(Kerberos)
  • 获取票据授予票据
  • 设置连接选项
  • PLAIN SASL
  • API文档

MongoDB企业版包括MongoDB社区版中不可用的身份验证机制。在本指南中,您可以了解如何使用这些身份验证机制进行MongoDB身份验证。有关MongoDB中可用的其他身份验证机制的更多信息,请参阅身份验证机制.

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

注意

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

完成以下步骤以使用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

接下来,设置以下连接选项

  • username:用于认证的 Kerberos 主体。

  • authMechanism:设置为 "GSSAPI"

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

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

const char *uri = "mongodb://mongodbuser%40EXAMPLE.COM@<hostname>:<port>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<authentication service name>");
mongoc_client_t *client = mongoc_client_new(uri);

注意

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

PLAIN 简单身份验证和安全层 (SASL),由RFC 4616,是一种常与TLS或另一个加密层一起使用的用户名密码认证机制。您必须编译带有SASL支持的C驱动程序才能使用PLAIN SASL认证。

重要

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

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

const char *uri = "mongodb://<username>:<password>@<hostname>:<port>/?authMechanism=PLAIN");
mongoc_client_t *client = mongoc_client_new(uri);

有关在C驱动程序中认证应用程序的更多信息,请参阅以下API文档

返回

身份验证机制