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.

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.

O driver Go é compatível com os seguintes mecanismos de autenticação:

  • SCRAM-SHA-256

  • SCRAM-SHA-1

  • MONGODB-CR

  • MongoDB-AWS

  • X.509

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:

  • 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, 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 é 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 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 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)

Voltar

Contexto