Docs 菜单
Docs 主页
/ / /
C#/.NET
/ /

Kerberos (GSSAPI)

在此页面上

  • Overview
  • 代码占位符
  • 在应用程序中使用 GSSAPI 身份验证
  • additionalProperties
  • API 文档

通用安全服务API (GSSAPI)身份验证机制允许使用主体名称对Kerberos服务进行身份验证。只有在向MongoDB Enterprise Advanced进行身份验证时才能使用此机制。

本页上的代码示例使用以下占位符:

  • <username>:您的 URL编码的 主体名称。示例:"username%40REALM.ME"

  • <password>: Kerberos用户的密码。

  • <hostname>: MongoDB 部署的网络解决。

  • <port>: MongoDB 部署的端口号。如果省略此参数,驾驶员将使用默认端口号 ( 27017 )。

要使用本页上的代码示例,请将这些占位符替换为您自己的值。

您可以指定 GSSAPI凭证身份验证机制,并通过使用 MongoCredential对象或作为连接字符串的一部分提供Kerberos档案。选择 Connection StringMongoCredential标签页,查看相应的语法:

var mongoClient = new MongoClient(
"mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

提示

省略密码

如果满足以下任一条件,则可以省略密码参数:

  • 在 Windows 上,运行应用程序的进程所有者与需要身份验证的用户相同。

  • 在 Linux 上,用户已通过kinit username@REALM.COM初始化其密钥表。

您可以在连接字符串或 MongoCredential对象中包含以下 GSSAPI 配置选项。

以下示例显示如何使用 DNS 服务器检索主机的完全限定域名:

var mongoClient = new MongoClient(
"mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" +
"authMechanismProperties=CANONICALIZE_HOSTNAME:true");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>");
credential = credential.WithMechanismProperty("CANONICALIZE_HOST_NAME", "true");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

以下示例展示了当用户的域与服务的 Realm 不同时如何指定该域 。将 <user's realm> 占位符替换为Kerberos用户的域 。

var mongoClient = new MongoClient(
"mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" +
"authMechanismProperties=SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>");
credential = credential.WithMechanismProperty("SERVICE_REALM", "<user's realm>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

以下示例展示了当服务名称不是默认mongodb 时如何指定该名称。将 <service name> 占位符替换为服务名称。

var mongoClient = new MongoClient(
"mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" +
"authMechanismProperties=SERVICE_NAME:<service name>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>");
credential = credential.WithMechanismProperty("SERVICE_NAME", "<service name>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

以下示例显示如何指定多个身份验证机制属性:

var mongoClient = new MongoClient(
"mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" +
"authMechanismProperties=SERVICE_NAME:<service name>,SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>");
credential = credential
.WithMechanismProperty("SERVICE_REALM", "<user's realm>")
.WithMechanismProperty("SERVICE_NAME", "<service name>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

要学习;了解有关本页讨论的任何方法或类型的更多信息,请参阅以下API文档:

后退

LDAP (Plain)