Kerberos (GSSAPI)
Nesta página
Visão geral
O mecanismo de autenticação da API de serviços de segurança genérica (GSSAPI) permite que você use seu nome principal para autenticar em um serviço Kerberos. Você pode usar esse mecanismo somente ao autenticar para Enterprise Advanced.
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
<username>
: seu nome principalcodificado para URL. Por exemplo:"username%40REALM.ME"
<password>
: A senha de usuário do Kerberos.<hostname>
: O endereço de rede da sua implantação MongoDB .<port>
: o número da porta da sua implantação do MongoDB . Se você omitir este parâmetro, o driver utilizará o número de porta padrão (27017
).
Para usar os exemplos de código nesta página, substitua esses espaços reservados por seus próprios valores.
Usando a autenticação GSSAPI em seu aplicativo
Você pode especificar o mecanismo de autenticação GSSAPI
e fornecer suas credenciais Kerberos usando um objeto MongoCredential
ou como parte da string de conexão. Selecione a aba Connection String ou MongoCredential para ver a sintaxe correspondente:
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);
Dica
Omissão da Senha
Você pode omitir o parâmetro de senha se alguma das seguintes afirmações for verdadeira:
No Windows, o proprietário do processo que executa o aplicativo é o mesmo que o usuário que precisa de autenticação.
No Linux, o usuário inicializou seu keytab via
kinit username@REALM.COM
.
Propriedades adicionais
Você pode incluir as seguintes opções de configuração GSSAPI em sua string de conexão ou em seu objeto MongoCredential
.
Nome de domínio totalmente qualificado
O exemplo a seguir mostra como usar o servidor DNS para recuperar o nome de domínio totalmente qualificado do host:
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
O exemplo a seguir mostra como especificar o Realm do usuário quando ele é diferente do Realm do serviço . Substitua o espaço reservado <user's realm>
pelo Realm do usuário 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);
Nome do serviço
O exemplo a seguir mostra como especificar o nome do serviço quando ele não é o padrão mongodb
. Substitua o espaço reservado <service name>
pelo nome do serviço.
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);
Múltiplas propriedades
O exemplo a seguir mostra como especificar múltiplas propriedades do mecanismo de autenticação:
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);
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos nesta página, consulte a seguinte documentação da API: