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 utiliza o algoritmo SHA-256 para hash sua senha, é o mecanismo de autenticação padrão no servidor MongoDB versão 4.0 e posterior.
Você pode usar o SCRAM para autenticar no MongoDB Atlas, Enterprise Advanced e MongoDB Community Edition.
Dica
Mecanismos SCRAM
Para saber mais sobre a família de mecanismos de autenticação SCRAM, 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 servidor MongoDB.
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
db_username- seu nome de usuário do banco de dados de dados MongoDB .db_password- a senha do usuário do banco de banco de dados MongoDB .hostname- endereço de rede do seu MongoDB Server, acessível pelo seu cliente.port- número da porta do seu servidor MongoDB.authenticationDb- Banco de dados MongoDB que contém os dados de autenticação do usuário. Se omitir este parâmetro, o driver utiliza o valor padrãoadmin.
Para usar os exemplos de código nesta página, substitua esses espaços reservados por seus próprios valores.
Autenticar com SCRAM-SHA-256
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-256 .
Para especificar o mecanismo de autenticação padrão usando uma string de conexão, omita o mecanismo. Seu código para instanciar um MongoClient deve ser semelhante ao seguinte:
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(). Seu código para instanciar um MongoClient deve ser semelhante ao seguinte:
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)
Você também pode especificar explicitamente o mecanismo de autenticação do SCRAM-SHA-256 , como mostrado nos seguintes trechos de código:
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. Seu código para instanciar um MongoClient deve ser semelhante ao seguinte:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256")
Para especificar o mecanismo de autenticação padrão usando a classe MongoCredential, use o método createScramSha256Credential(). Seu código para instanciar um MongoClient deve ser semelhante ao seguinte:
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)