Menu Docs

PĆ”gina inicial do Docs ā†’ Go

Mecanismos de autenticaĆ§Ć£o

Nesta pƔgina

  • VisĆ£o geral
  • Mecanismos compatĆ­veis
  • Exemplos de convenƧƵes
  • Default
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-CR
  • MONGODB-AWS
  • X.509

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.

Se vocĆŖ deseja estabelecer uma conexĆ£o com seu cluster MongoDB sem um mecanismo de autenticaĆ§Ć£o, consulte o Guia de ConexĆ£o.

O driver Go Ć© compatĆ­vel com os seguintes mecanismos de autenticaĆ§Ć£o:

O Go Driver estabelece uma conexĆ£o com um mecanismo de autenticaĆ§Ć£o por meio de um cliente tipo. O Client tipo especifica o mecanismo e as credenciais a serem usados como opƧƵes de conexĆ£o em uma Credenciais tipo . Para configurar estas opƧƵes, passe um Credential tipo de para o SetAuth() mĆ©todo das ClientOptions tipo.

As seƧƵes a seguir demonstram esse processo com os cinco mecanismos compatƭveis com o MongoDB Community Edition.

Cada mecanismo de autenticaĆ§Ć£o contĆ©m os seguintes placeholders:

  • username - Seu nome de usuĆ”rio MongoDB

  • password - Sua senha de usuĆ”rio 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: "<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.

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)

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, criptografado com 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 Ć© 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 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 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 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))

O X.509 mecanismo de autenticaĆ§Ć£o do utiliza TLS com X.509 certificados para autenticar seu usuĆ”rio, identificado pelos nomes distintos 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)
ā† Ā ContextoTrabalhe com BSONĀ ā†’
DĆŖ Feedback
Ā© 2022 MongoDB, Inc.

Sobre

Ā© 2022 MongoDB, Inc.