PĆ”gina inicial do Docs ā Go
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.
Se vocĆŖ deseja estabelecer uma conexĆ£o com seu cluster MongoDB sem um mecanismo de autenticaĆ§Ć£o, consulte o Guia de ConexĆ£o.
Mecanismos compatĆveis
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.
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, 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
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 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 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)