Mecanismos de autenticação empresarial
Nesta página
Visão geral
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.
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
.
Autenticar com GSSAPI/Kerberos
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
.
Propriedades adicionais
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
.
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://<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);
Realm
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);
Nome do serviço
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);
Várias propriedades
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);
Autenticar com LDAP (PLAIN)
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.
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: