Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Mecanismos de autenticação

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 de Mecanismos de autenticação corporativa. Para saber mais sobre como estabelecer uma conexão com seu cluster MongoDB, consulte o Guia de Conexão.

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.

Cada mecanismo de autenticação contém os seguintes placeholders:

  • db_username - Seu nome de usuário do banco de dados do MongoDB

  • db_password - A senha do usuário do banco de dados MongoDB

  • hostname - Seu endereço de rede de servidores MongoDB, acessível por seu cliente

  • port - Número da porta dos servidores MongoDB

  • authenticationDb - 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 predefinido admin.

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: "<db_username>",
Password: "<db_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.

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 do banco de dados, 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: "<db_username>",
Password: "<db_password>",
}
clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>").
SetAuth(credential)
client, err := mongo.Connect(context.TODO(), clientOpts)

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: "<db_username>",
Password: "<db_password>",
}
clientOpts := options.Client().ApplyURI("mongodb://<hostname>:<port>").
SetAuth(credential)
client, err := mongo.Connect(context.TODO(), clientOpts)

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.

Importante

O mecanismo de autenticação MONGODB-AWS está disponível somente nas versões 4.4 e mais recentes 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 se conectar a uma instância do MongoDB com a autenticação MONGODB-AWS habilitada, especifique o mecanismo de autenticação MONGODB-AWS.

O driver verifica suas credenciais nas seguintes fontes na ordem listada:

  1. Connection string.

  2. Variáveis de ambiente.

  3. Arquivo de token de identidade da Web.

  4. Amazon Web Services ECS endpoint especificado na variável de ambiente do AWS_CONTAINER_CREDENTIALS_RELATIVE_URI .

  5. Desfecho Amazon Web Services EC2. Para saber mais, consulte Funções de IAM para tarefas na documentação do Amazon Web Services.

Importante

O motorista obtém as credenciais somente da primeira fonte na qual elas são encontradas. Por exemplo, se você especificar suas credenciais do Amazon Web Services na string de conexão, o driver ignorará todas as credenciais especificadas nas variáveis de ambiente.

Dica

Os exemplos seguintes definem as credenciais apropriadas utilizando o método SetAuth() . Você também pode especificar estas credenciais utilizando o método ApplyURI(). Se você usar o método ApplyURI() , deverá codificar o nome de usuário e a senha por URL para garantir que eles sejam analisados corretamente.

Para se conectar à sua instância MongoDB usando suas credenciais AWS IAM, execute as seguintes etapas:

  • Atribua à opção AuthMechanism o valor MONGODB-AWS

  • Atribua à opção Username o valor do seu accessKeyID

  • Atribua à opção Password o valor do seu secretAccessKey

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 da AWS, use as credenciais temporárias retornadas de uma solicitação de assumir função .

Para utilizar credenciais temporárias, atribua o valor do seu sessionToken à opção AuthMechanismProperties:

var accessKeyID, secretAccessKey, 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))

O mecanismo de autenticação do X.509 utiliza 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 TLS

  • tlsCertificateKeyFile 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 string

  • Atribua a tlsCertificateKeyFile o caminho para seu arquivo na connection string

  • Atribua à 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)