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 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 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 MongoDB Server .
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
<db_username>
: O nome de usuário MongoDB do usuário a ser autenticado.<db_password>
: A senha MongoDB do usuário para autenticar.<hostname>
: O endereço de rede da sua implantação MongoDB .<port>
: o número da porta da sua implantação do MongoDB . Se você omitir este parâmetro, o driver utilizará o número de porta padrão (27017
). Você não precisa de um número de porta ao se conectar a um cluster MongoDB Atlas .<authenticationDb>
: O 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ão,admin
.
Para usar os exemplos de código, substitua esses espaços reservados por seus próprios valores.
Especifique o mecanismo de autenticação SCRAM padrão
Para usar o mecanismo SCRAM padrão para autenticar seu usuário MongoDB , especifique suas credenciais MongoDB , mas não especifique um mecanismo de autenticação. Selecione a aba Connection String ou MongoCredential abaixo para obter instruções e amostras de código para a sintaxe correspondente:
Para especificar o mecanismo de autenticação padrão usando uma string de conexão, omita o mecanismo. O código para instanciar um MongoClient
se assemelha ao seguinte:
MongoClient mongoClient = MongoClients.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()
. O código para instanciar um MongoClient
se assemelha ao seguinte:
MongoCredential credential = MongoCredential.createCredential("<db_username>", "<authenticationDb>", "<db_password>"); MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder() .applyToClusterSettings(builder -> builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>)))) .credential(credential) .build());
Para obter mais informações sobre os mecanismos de autenticação desafio-resposta (CR) e SCRAM (desafio-resposta) salinos que o MongoDB suporta, consulte a seção SCRAM do manual do MongoDB Server.
Especificar SCRAM-SHA-256 autenticação
SCRAM-SHA-256
é o método de autenticação padrão para o MongoDB começando no MongoDB 4.0, mas este exemplo de código mostra como usar explicitamente esse mecanismo. Selecione a aba Connection String ou MongoCredential 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. O código para instanciar um MongoClient
se assemelha ao seguinte:
MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256");
Para especificar o mecanismo de autenticação SCRAM-SHA-256
usando a classe MongoCredential
, use o método createScramSha256Credential()
. O código para instanciar um MongoClient
se assemelha ao seguinte:
MongoCredential credential = MongoCredential.createScramSha256Credential("<db_username>", "<authenticationDb>", "<db_password>"); MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder() .applyToClusterSettings(builder -> builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>)))) .credential(credential) .build());
Especificar SCRAM-SHA-1 autenticação
SCRAM-SHA-1
é o método de autenticação padrão para versões do MongoDB anteriores a 4.0, mas este exemplo de código mostra como usar explicitamente esse mecanismo. Selecione a aba Connection String ou MongoCredential 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-1
utilizando uma string de conexão, atribua ao parâmetro authMechanism
o valor SCRAM-SHA-1
em sua string de conexão. O código para instanciar um MongoClient
se assemelha ao seguinte:
MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-1");
Para especificar o mecanismo de autenticação SCRAM-SHA-1
usando a classe MongoCredential
, use o método createScramSha1Credential()
. O código para instanciar um MongoClient
se assemelha ao seguinte:
MongoCredential credential = MongoCredential.createScramSha1Credential("<db_username>", "<authenticationDb>", "<db_password>"); MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder() .applyToClusterSettings(builder -> builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>)))) .credential(credential) .build());
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos nesta página, consulte a seguinte documentação da API: