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+srvopçã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-1ouSCRAM-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 um nome de usuário e uma senha antes de incluí-los em um URI MongoDB. O método quote_plus(), disponível no módulo urllib.parse, é 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)
client = pymongo.AsyncMongoClient("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.AsyncMongoClient(uri)
Documentação da API
Para saber mais sobre como autenticar seu aplicativo no PyMongo, consulte a seguinte documentação da API: