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
To learn more about the SCRAM family of authentication mechanisms, see RFC 5802 and Salted Challenge Response Authentication Mechanism on 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.