Mecanismos de autenticação empresarial
Nesta página
Visão geral
Neste guia, você aprenderá como autenticar no MongoDB usando os mecanismos de autenticação disponíveis 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 saber mais sobre como estabelecer uma conexão com seu Cluster MongoDB, consulte o Guia de Conexão.
Você pode especificar seu mecanismo de autenticação e credenciais ao se conectar ao MongoDB por meio dos seguintes métodos:
Usando um URI de string de conexão. Para saber mais sobre como usar um URI de string de conexão para autenticação empresarial, consulte a entrada manual do servidor em URIs de string.
Especificar credenciais e um mecanismo de autenticação no tipo
Credential
.
Autenticação no GSSAPI/Kerberos
O mecanismo de autenticação GSSAPI (Generic Security Services API) permite que o usuário autentique em um serviço Kerberos usando a entidade de segurança do usuário.
Você deve usar a tag de construção gssapi
e especificar o suporte cgo durante a compilação para usar a autenticação Kerberos. O suporte cgo
é habilitado por padrão, a menos que você defina anteriormente variáveis de ambiente para compilação cruzada em uma plataforma diferente. Para usar a tag de construção gssapi
, compile seu código com o seguinte comando:
go build -tags gssapi
Exemplo
Este exemplo especifica o mecanismo de autenticação usando os seguintes espaços reservados:
username
: Seu principal Kerberos. Um exemplo de nome de usuário émyuser@KERBEROS.EXAMPLE.COM
.password
: A senha do usuário Kerberos. Você também pode armazenar sua senha em um arquivokeytab
para evitar expor sua senha no código.connection uri
Seu URI da cadeia de conexão.
O código a seguir mostra como você pode definir uma estrutura Credential
para se autenticar no Kerberos e criar um cliente com suas preferências de autenticação:
credential := options.Credential{ AuthMechanism: "GSSAPI", Username: "<username>", Password: "<password>", PasswordSet: true, } uri := "<connection uri>" clientOpts := options.Client().ApplyURI(uri).SetAuth(credential) client, err := mongo.Connect(context.TODO(), clientOpts)
Você não precisa definir uma senha nem o campo PasswordSet
em sua estrutura Credential
se armazenar chaves de autenticação em arquivos keytab
. Você pode inicializar um cache de credenciais para autenticar a entidade Kerberos utilizando o binário kinit
. Para saber mais sobre o kinit
binário, consulte a documentação da Oracle.
O comando a seguir mostra como você pode chamar um cache de credenciais para um exemplo de nome de usuário:
kinit myuser@KERBEROS.EXAMPLE.COM
Como alternativa, é possível se autenticar usando uma URI de string de conexão especificando a entidade Kerberos codificada por URL, a senha, o hostname
e o endereço de rede do servidor MongoDB:
uri := "mongodb://<username>:<password>@<hostname>/?authMechanism=GSSAPI"
SERVICE_NAME
Definir SERVICE_REALM
campos personalizados e
Você pode especificar propriedades adicionais com seu mecanismo de autenticação usando o campo AuthMechanismProperties
na estrutura Credential
. O nome de serviço padrão para Kerberos é "mongodb". O código a seguir mostra como você pode definir valores personalizados para os campos SERVICE_NAME
e SERVICE_REALM
ao definir uma estrutura Credential
:
credential := options.Credential{ AuthMechanism: "GSSAPI", Username: "<username>", Password: "<password>", AuthMechanismProperties: map[string]string{ "SERVICE_REALM": "<Kerberos service realm>", "SERVICE_NAME": "<service name>", }, }
Para mais informações sobre propriedades adicionais, consulte a entrada manual do servidor sobre propriedades de autenticação.
Autenticar no 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.
Aviso
Esse mecanismo de autenticação envia a senha para o servidor em texto simples, portanto, use esse mecanismo somente com conexões TLS.
Exemplo
Este exemplo especifica o mecanismo de autenticação usando os seguintes espaços reservados:
username
: Seu nome de usuário LDAPpassword
: Sua senha LDAPconnection uri
: Seu URI da cadeia de conexão
O código a seguir mostra como você pode definir uma estrutura Credential
para se autenticar no LDAP e criar um cliente com suas preferências de autenticação:
credential := options.Credential{ AuthMechanism: "PLAIN", Username: "<username>", Password: "<password>", } uri := "<connection uri>" clientOpts := options.Client().ApplyURI(uri).SetAuth(credential) client, err := mongo.Connect(context.TODO(), clientOpts)
Como alternativa, você pode autenticar usando uma URI de string de conexão, especificando seu nome de usuário LDAP, senha e hostname
, o endereço de rede do seu servidor MongoDB:
uri := "mongodb://<username>:<password>@<hostname>/?authMechanism=PLAIN"
Observação
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.
Informações adicionais
Para saber mais sobre os conceitos deste guia, consulte a seguinte documentação:
Documentação da API
Tipo de Credencial
SetAuth() método