Overview
通用安全服务API (GSSAPI)身份验证机制允许使用主体名称对Kerberos服务进行身份验证。 只有在向MongoDB Enterprise Advanced进行身份验证时才能使用此机制。
代码占位符
本页上的代码示例使用以下占位符:
<username>: LDAP username.<hostname>: MongoDB 部署的网络解决。<port>: MongoDB 部署的端口号。如果省略此参数,驾驶员将使用默认端口号 (27017)。连接到MongoDB Atlas 群集时,可以选择指定端口号。<authentication_db>:包含用户的LDAP凭证的MongoDB 数据库。如果省略此参数,驾驶员将使用默认数据库(admin)。
要使用本页上的代码示例,请将这些占位符替换为您自己的值。
在应用程序中使用 GSSAPI 身份验证
要将MongoDB Server配置为使用Kerberos,请参阅 MongoDB Server Kerberos文档。
要将Kerberos身份验证机制与Ruby驾驶员结合使用,您必须安装并加载 mongo_kerberos 库。为此,将以下行添加到您的 Gemfile 中:
gem 'mongo', '~> 2' gem 'mongo_kerberos', '~> 2'
然后,将以下行添加到您的应用程序代码中:
require 'mongo' require 'mongo_kerberos'
注意
使用Kerberos身份验证时,必须指定托管的完全限定域名 (FQDN)。
以下部分介绍如何将Kerberos身份验证与Ruby MRI 和 JRuby 结合使用。
将Kerberos身份验证与Ruby MRI 结合使用
如果您将Kerberos身份验证与Ruby MRI结合使用,则必须执行以下步骤:
在驾驶员上建立Kerberos会话。驾驶员使用此会话向服务器证明用户的身份。
必须确保托管系统配置为支持Kerberos身份验证。要学习;了解有关配置托管系统以使用Kerberos 的更多信息,请参阅Kerberos文档或操作系统文档以了解详细信息。
使用 kinit 实用程序 建立Kerberos会话。
将Kerberos身份验证与 JRuby 结合使用
如果您在JRuby中使用Kerberos身份验证,则可以使用上述 MRI进程从外部建立与驾驶员的Kerberos会话。您还可以通过将配置存储在 java.security.auth.login.config 系统属性中来提供 keytab文件的路径。您还必须配置Java运行时环境才能使用Kerberos。要学习;了解更多信息,请参阅MongoDB Java驱动程序Kerberos文档以获取更多信息。
Kerberos身份验证示例
选择 Connection String 或 Client Options标签页,查看使用Kerberos身份验证连接到MongoDB 的相应语法:
client = Mongo::Client.new("mongodb://<username>@<hostname>[:<port>]/<authentication_db>?authMechanism=GSSAPI")
client = Mongo::Client.new(['<hostname>[:<port>]'], auth_mech: :gssapi, user: '<username>')
注意
如果使用连接字符串连接到MongoDB,请确保对用户名中出现的所有特殊字符进行百分号编码。
API 文档
要学习;了解有关本页讨论的任何方法或类型的更多信息,请参阅以下API文档: