Visão geral
O SCRAM (Salted Challenge Response Authentication Mechanism) é uma família de mecanismos de autenticação que usa um mecanismo de desafio-resposta para autenticar o usuário. SCRAM-SHA-256
, que usa o algoritmo SHA-256
para gerar hash de sua senha, é o mecanismo de autenticação padrão no MongoDB Server versão 4.0 e posterior. SCRAM-SHA-1
, que usa o algoritmo SHA-1
, é o mecanismo de autenticação padrão nas versões do MongoDB Server anteriores à 4.0.
Você pode usar SCRAM
para autenticar no MongoDB Atlas, Enterprise Advanced e MongoDB Community Edition.
Dica
Mecanismos SCRAM
Para saber mais sobre a SCRAM
família de mecanismos de autenticação, consulte RFC 5802 e Mecanismo de autenticação de resposta de desafio salgado na Wikipedia.
Para obter mais informações sobre a implementação do MongoDB do SCRAM
, consulte SCRAM no manual do MongoDB Server.
Especificar SCRAM-SHA-256 autenticação
SCRAM-SHA-256
, conforme definido por RFC 7677, criptografa seu nome de usuário e senha com o algoritmo SHA-256
para autenticar seu usuário. Este é o mecanismo de autenticação padrão .
Os exemplos nesta seção mostram como especificar este mecanismo de autenticação padrão e utilizar os seguintes valores de espaço reservado:
db_username
: Seu nome de usuário do banco de dados MongoDB .db_password
: A senha de usuário do banco de dados MongoDB .hostname
: O endereço de rede da sua implantação do MongoDB , aberto ao seu cliente.port
: o número da porta da sua implantação do MongoDB .authenticationDb
: O banco de dados MongoDB que contém os dados de autenticação do seu usuário. Se omitir este parâmetro, o driver utiliza o valor padrãoadmin
.
Selecione a guia Connection String ou MongoCredential abaixo para obter instruções e código de exemplo para especificar este mecanismo de autenticação:
Para especificar o mecanismo de autenticação padrão usando uma string de conexão, omita o mecanismo conforme mostrado no exemplo a seguir:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")
Para especificar o mecanismo de autenticação padrão usando a classe MongoCredential
, use o método createCredential()
conforme mostrado no exemplo a seguir:
val credential = MongoCredential.createCredential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Alternativamente, você pode especificar explicitamente o mecanismo de autenticação do SCRAM-SHA-256
. Selecione a aba Connection String ou MongoCredential abaixo para obter instruções e amostras de código para especificar este mecanismo de autenticação:
Para especificar o mecanismo de autenticação do SCRAM-SHA-256
utilizando uma string de conexão, atribua ao parâmetro authMechanism
o valor SCRAM-SHA-256
em sua string de conexão como mostrado no exemplo a seguir:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-256")
Para especificar o mecanismo de autenticação padrão usando a classe MongoCredential
, use o método createScramSha256Credential() como mostrado no seguinte exemplo:
val credential = MongoCredential.createScramSha256Credential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Especificar SCRAM-SHA-1 autenticação
SCRAM-SHA-1
, conforme definido por RFC 5802, criptografa seu nome de usuário e senha com o algoritmo SHA-1
para autenticar seu usuário.
Os exemplos nesta seção mostram como especificar este mecanismo de autenticação e utilizar os seguintes valores de espaço reservado:
db_username
: Seu nome de usuário do banco de dados MongoDB .db_password
: A senha de usuário do banco de dados MongoDB .hostname
: O endereço de rede da sua implantação do MongoDB , aberto ao seu cliente.port
: o número da porta da sua implantação do MongoDB .authenticationDb
: O banco de dados MongoDB que contém os dados de autenticação do seu usuário. Se omitir este parâmetro, o driver utiliza o valor padrãoadmin
.
Selecione a aba Connection String ou MongoCredential abaixo para obter instruções e amostras de código para especificar o mecanismo de autenticação SCRAM-SHA-1
:
Para especificar o mecanismo de autenticação do SCRAM-SHA-1
utilizando uma string de conexão, atribua ao parâmetro authMechanism
o valor SCRAM-SHA-1
em sua string de conexão como mostrado no exemplo a seguir:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-1")
Para especificar o mecanismo de autenticação padrão usando a classe MongoCredential
, use o método createScramSha1Credential() como mostrado no seguinte exemplo:
val credential = MongoCredential.createScramSha1Credential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Informações adicionais
Para saber mais sobre autenticação no MongoDB, consulte Autenticação no manual do MongoDB Server .
Para saber mais sobre como criar um objeto MongoClient
usando o driver Kotlin Sync, consulte o guia Criar um MongoClient.