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