Visão geral
O SCRAM (Salted Challenge Response Authentication Mechanism) é o mecanismo de autenticação padrão do MongoDB. O driver Scala suporta as seguintes variantes SCRAM:
SCRAM-SHA-256: Usa o algoritmo de hash SHA-256 e é o mecanismo padrão para MongoDB 6.0 e posterior.SCRAM-SHA-1: Usa o algoritmo de hash SHA-1.
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 SCRAM 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 .
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 do 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.
Mecanismo de autenticação padrão
O mecanismo de autenticação padrão para MongoDB 6.0 e posterior é SCRAM-SHA-256. Para usar o mecanismo padrão, selecione uma das seguintes abas:
Para autenticar com uma string de conexão, omita o parâmetro authMechanism:
val mongoClient = MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")
A classe MongoCredential representa uma credencial de autenticação e inclui métodos de fábrica estáticos para cada mecanismo de autenticação. Para autenticar com a classe MongoCredential, use o método createCredential():
val user = "<db_username>" // the username val source = "<authenticationDb>" // the authentication database val password = ... // the password as a character array val credential = MongoCredential.createCredential(user, source, password) val mongoClient = MongoClient(MongoClientSettings .builder() .applyToClusterSettings(builder => builder.hosts(Collections.singletonList(ServerAddress("<hostname>", <port>)))) .credential(credential) .build())
SCRAM-SHA-256
Para usar esse mecanismo, featureCompatibilityVersion deve ser 4.0 ou posterior. Para especificar o mecanismo de autenticação SCRAM-SHA-256, selecione uma das seguintes abas:
Para autenticar com uma string de conexão, defina o parâmetro authMechanism como SCRAM-SHA-256:
val mongoClient = MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256")
A classe MongoCredential representa uma credencial de autenticação e inclui métodos de fábrica estáticos para cada mecanismo de autenticação. Para autenticar com a classe MongoCredential, use o método createScramSha256Credential():
val user = "<db_username>" // the username val source = "<authenticationDb>" // the authentication database val password = ... // the password as a character array val credential = MongoCredential.createScramSha256Credential(user, source, password) val mongoClient = MongoClient(MongoClientSettings .builder() .applyToClusterSettings(builder => builder.hosts(Collections.singletonList(ServerAddress("<hostname>", <port>)))) .credential(credential) .build())
SCRAM-SHA-1
Para especificar o mecanismo de autenticação SCRAM-SHA-1, selecione uma das seguintes abas:
Para autenticar com uma string de conexão, defina o parâmetro authMechanism como SCRAM-SHA-1:
val mongoClient = MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-1")
A classe MongoCredential representa uma credencial de autenticação e inclui métodos de fábrica estáticos para cada mecanismo de autenticação. Para autenticar com a classe MongoCredential, use o método createScramSha1Credential():
val user = "<db_username>" // the username val source = "<authenticationDb>" // the authentication database val password = ... // the password as a character array val credential = MongoCredential.createScramSha1Credential(user, source, password) val mongoClient = MongoClient(MongoClientSettings .builder() .applyToClusterSettings(builder => builder.hosts(Collections.singletonList(ServerAddress("<hostname>", <port>)))) .credential(credential) .build())
Documentação da API
Para obter mais informações sobre os métodos e tipos nesta página, consulte a seguinte documentação da API: