Mecanismos de autenticação
Nesta página
Visão geral
Neste guia, você aprenderá a usar cada mecanismo de autenticação disponível no MongoDB Community Edition. O MongoDB usa mecanismos de autenticação para confirmar uma identidade e estabelecer confiança para garantir a segurança no driver e no servidor antes da conexão.
Para autenticar usando GSSAPI/Kerberos
ou LDAP
, consulte a página de fundamentos do Enterprise Authentication Mechanisms . Para saber mais sobre como estabelecer uma conexão com seu Cluster MongoDB , consulte o Guia de Conexão.
Mecanismos compatíveis
O driver Go é compatível com os seguintes mecanismos de autenticação:
O Driver Go estabelece uma conexão com um mecanismo de autenticação por meio de um tipo Cliente. O tipo Client
especifica o mecanismo e as credenciais a serem usados como opções de conexão em um tipo Credencial. Para configurar essas opções, passe um tipo Credential
para o método SetAuth() do tipo ClientOptions.
As seções abaixo demonstram este processo ao usar os cinco mecanismos compatíveis com o MongoDB Community Edition.
Exemplos de convenções
Cada mecanismo de autenticação contém os seguintes placeholders:
username
- Seu nome de usuário MongoDBpassword
- Sua senha de usuário MongoDBhostname
- Seu endereço de rede de servidores MongoDB, acessível por seu clienteport
- Número da porta dos servidores MongoDBauthenticationDb
- Seu banco de dados MongoDB que contém os dados de autenticação do usuário. Se omitir esta opção, o condutor utiliza o valor predefinidoadmin
.
Default
O mecanismo padrão usa um dos seguintes mecanismos de autenticação, dependendo das versões do MongoDB compatíveis com o seu servidor:
Mecanismo | Versões |
---|---|
SCRAM-SHA-256 | MongoDB 4.0 e mais recente |
SCRAM-SHA-1 | MongoDB 3.0, 3.2, 3.4 e 3.6 |
MONGODB-CR | MongoDB 2.6 e mais antiga |
Para especificar o mecanismo de autenticação padrão, omita a opção AuthMechanism
:
credential := options.Credential{ AuthSource: "<authenticationDb>", Username: "<username>", Password: "<password>", } clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>"). SetAuth(credential) client, err := mongo.Connect(context.TODO(), clientOpts)
Para saber mais sobre os mecanismos de autenticação de resposta e desafio (CR) e mecanismos de autenticação de resposta e desafio baseada em senha (SCRAM) que o MongoDB suporta, consulte a seção SCRAM do manual do servidor.
SCRAM-SHA-256
Importante
SCRAM-SHA-256
é o método de autenticação padrão para o MongoDB começando no MongoDB 4.0.
SCRAM-SHA-256
é um mecanismo de autenticação de desafio-resposta (SCRAM) que usa seu nome de usuário e senha, criptografados com o algoritmo SHA-256
para autenticar seu usuário.
Para especificar o mecanismo de autenticação SCRAM-SHA-256
, atribua à opção AuthMechanism
o valor "SCRAM-SHA-256"
:
credential := options.Credential{ AuthMechanism: "SCRAM-SHA-256", AuthSource: "<authenticationDb>", Username: "<username>", Password: "<password>", } clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>"). SetAuth(credential) client, err := mongo.Connect(context.TODO(), clientOpts)
SCRAM-SHA-1
Importante
SCRAM-SHA-1
é o método de autenticação padrão para as versões 3.0, 3.2, 3.4 e 3.6. do MongoDB.
SCRAM-SHA-1
é um mecanismo de desafio-resposta (SCRAM) que utiliza seu nome de usuário e senha, criptografados usando o algoritmo do SHA-1
, para autenticar seu usuário.
Para especificar o mecanismo de autenticação SCRAM-SHA-1
, atribua à opção AuthMechanism
o valor "SCRAM-SHA-1"
:
credential := options.Credential{ AuthMechanism: "SCRAM-SHA-1", AuthSource: "<authenticationDb>", Username: "<username>", Password: "<password>", } clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>"). SetAuth(credential) client, err := mongo.Connect(context.TODO(), clientOpts)
MONGODB-CR
MONGODB-CR
é um mecanismo de autenticação de resposta e desafio que usa seu nome de usuário e senha para autenticar seu usuário.
Importante
Esse mecanismo de autenticação começou a ficar obsoleto no MongoDB 3.6 e não é mais compatível no MongoDB 4.0.
MONGODB-AWS
Importante
O mecanismo de autenticação MONGODB-AWS só está disponível nas versões 4.4 e posteriores do MongoDB .
O mecanismo de autenticação do MONGODB-AWS
utiliza suas credenciais do Amazon Web Services Identity and Access Management (AWS IAM) para autenticar o usuário.
Para especificar o mecanismo de autenticação MONGODB-AWS
, faça o seguinte:
Atribua à opção
AuthMechanism
o valorMONGODB-AWS
Atribua à opção
Username
o valor do seuaccessKeyID
Atribua à opção
Password
o valor do seusecretAccessKey
var accessKeyID, secretAccessKey string awsCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", AuthSource: "<authenticationDb>", Username: "<accessKeyID>", Password: "<secretAccessKey>", } awsIAMClient, err := mongo.Connect( context.TODO(), options.Client().SetAuth(awsCredential)) if err != nil { panic(err) } _ = awsIAMClient
Se você precisar especificar um token de sessão Amazon Web Services , use as credenciais temporárias retornadas de uma solicitação de assumir função .
Para usar credenciais temporárias, atribua à opção AuthMechanismProperties
o valor de sessionToken
:
var sessionToken string assumeRoleCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", AuthSource: "<authenticationDb>", Username: "<accessKeyID>", Password: "<secretAccessKey>", AuthMechanismProperties: map[string]string{ "AWS_SESSION_TOKEN": "<sessionToken>", }, } assumeRoleClient, err := mongo.Connect(context.TODO(), options.Client().SetAuth(assumeRoleCredential))
X.509
O mecanismo de autenticação X.509
usa TLS com certificados X.509 para autenticar seu usuário, identificado pelos nomes diferenciados relativos (RDNs) do seu certificado de cliente. Quando você especifica o mecanismo de autenticação X.509
, o servidor autentica a conexão usando os caminhos dos seguintes arquivos:
tlsCAFile
que contém uma única ou um grupo de autoridades de certificação nas quais confiar ao fazer uma conexão TLStlsCertificateKeyFile
que referencia o caminho para o arquivo de certificado do cliente ou o arquivo de chave privada do cliente
Para especificar o mecanismo de autenticação X.509
, faça o seguinte:
Atribua a
tlsCAFile
o caminho para seu arquivo na connection stringAtribua a
tlsCertificateKeyFile
o caminho para seu arquivo na connection stringAtribua à opção
AuthMechanism
o valor"MONGODB-X509"
caFilePath := "<cafile_path>" certificateKeyFilePath := "<client_certificate_path>" uri := "mongodb://<hostname>:<port>/?tlsCAFile=%s&tlsCertificateKeyFile=%s" uri = fmt.Sprintf(uri, caFilePath, certificateKeyFilePath) credential := options.Credential{ AuthMechanism: "MONGODB-X509", } clientOpts := options.Client().ApplyURI(uri).SetAuth(credential)