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:
+srv
: inclua essa opção no prefixo da string de conexão somente se estiver se conectando a um cluster MongoDB Atlas . Para saber mais sobre a+srv
opção, consulte Formatos de connection string no manual do MongoDB Server .<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
.<authenticationMechanism>
: Defina comoSCRAM-SHA-1
ouSCRAM-SHA-256
.
Para usar os exemplos de código nesta página, substitua esses espaços reservados por seus próprios valores.
Importante
Codificação percentual
Você deve codificar por cento um nome de usuário e senha antes de incluí-los em um URI MongoDB. O quote_plus()
método , disponível em urllib.parse módulo, é uma maneira de executar esta tarefa. Por exemplo, chamar quote_plus("and / or")
retorna a string and+%2F+or
.
Não codifique percentualmente o nome de usuário ou a senha ao passá-los como argumentos para MongoClient
.
Usando a autenticação SCRAM em seu aplicativo
Para usar o SCRAM para autenticar, defina a opção de conexão authMechanism
como SCRAM-SHA-1
ou SCRAM-SHA-256
. Você pode definir esta opção de duas maneiras: passando um argumento para o construtor MongoClient
ou por meio de um parâmetro em sua string de conexão.
client = pymongo.MongoClient("mongodb[+srv]://<hostname>:<port>", username="<db_username>", password="<db_password>", authSource="<authenticationDb>", authMechanism="<authenticationMechanism>")
uri = ("mongodb[+srv]://<percent-encoded db_username>:<percent-encoded db_password>" "@<hostname>:<port>/?" "authSource=<authenticationDb>" "&authMechanism=<authenticationMechanism>") client = pymongo.MongoClient(uri)
Documentação da API
Para saber mais sobre como autenticar seu aplicativo no PyMongo, consulte a seguinte documentação da API: