Menu Docs
Página inicial do Docs
/ / /
C#/.NET
/

Mecanismos de autenticação empresarial

Nesta página

  • Visão geral
  • Autenticar com GSSAPI/Kerberos
  • Propriedades adicionais
  • Autenticar com LDAP (PLAIN)
  • Documentação da API

Neste guia, você aprenderá como autenticar com o MongoDB usando os mecanismos de autenticação disponíveis somente no MongoDB Enterprise Edition. Os mecanismos de autenticação são processos pelos quais o driver e o servidor confirmam a identidade de um cliente para garantir maior segurança antes de se conectar.

Você pode usar os seguintes mecanismos de autenticação com a versão mais recente do MongoDB Enterprise Edition.

  • GSSAPI/Kerberos

  • LDAP (Plain)

Para autenticar usando outro mecanismo, consulte a página de fundamentos do Autenticação Mecanismos . Para obter mais informações sobre como estabelecer uma conexão com seu cluster do MongoDB , consulte o Guia de Conexão.

Você pode especificar o mecanismo de autenticação e as credenciais ao se conectar ao MongoDB usando um dos seguintes métodos:

  • Uma connection string, também conhecida como URI de conexão, é uma string que informa ao driver como se conectar a um MongoDB deployment e como se comportar enquanto estiver conectado.

  • Um método de fábrica para o mecanismo de autenticação suportado, contido na classe MongoCredential .

O mecanismo de autenticação GSSAPI (Generic Security Services API) permite que o usuário autentique em um serviço Kerberos usando o nome principal do usuário.

Os exemplos a seguir especificam o mecanismo de autenticação usando os seguintes placeholders:

  • <username>: Seu URL codificado nome principal; por exemplo "nome de usuário%40Realm.ME"

  • <password>: A senha do usuário Kerberos

  • <hostname>: O endereço de rede do seu MongoDB Server, acessível pelo seu cliente

Selecione a aba Connection String ou MongoCredential para ver a sintaxe correspondente para especificar o mecanismo de autenticação GSSAPI/Kerberos:

var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>/?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 a senha se uma 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.

Você pode especificar propriedades adicionais com seu mecanismo de autenticação utilizando a string de conexão ou um método de fábrica na classe MongoCredential .

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://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=CANONICALIZE_HOSTNAME:true");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_passwordpassword>");
credential = credential.WithMechanismProperty("CANONICALIZE_HOST_NAME", "true");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

O exemplo a seguir mostra como especificar o Realm do usuário quando ele é diferente do Realm do serviço:

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

O exemplo a seguir mostra como especificar o nome do serviço quando ele não é o padrão mongodb:

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

O exemplo a seguir mostra como especificar múltiplas propriedades do mecanismo de autenticação:

var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<service name>,SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_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);

Você pode autenticar em um servidor LDAP (Lightweight Directory Access Protocol) usando seu nome de usuário e senha do servidor de diretórios.

Os exemplos a seguir especificam o mecanismo de autenticação usando os seguintes placeholders:

  • <username>: Seu nome de usuário LDAP

  • <password>: Sua senha LDAP

  • <hostname>: O endereço de rede do seu MongoDB Server, acessível pelo seu cliente

  • <authenticationDb>: O banco de dados MongoDB que contém a autenticação do seu usuário

Selecione a aba Connection String ou MongoCredential para ver a sintaxe correspondente para especificar o mecanismo de autenticação LDAP:

var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>/?authSource=<authenticationDb>&authMechanism=PLAIN");
var credential = MongoCredential.CreatePlainCredential("<authenticationDb>", "<username>", "<password>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

Dica

O método refere-se a PLAIN em vez de LDAP, pois ele autentica usando o PLAIN Simple Authentication and Security Layer (SASL) definido em RFC-4616.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Mecanismos de autenticação