Autenticação SCRAM no Banco de Dados do Azure para PostgreSQL - Servidor Flexível
APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível
O SCRAM (Salted Challenge Response Authentication Mechanism) é um protocolo de autenticação mútua baseado em senha. É um esquema de desafio-resposta que adiciona vários níveis de segurança e impede a deteção de senhas em conexões não confiáveis. O SCRAM suporta o armazenamento de senhas no servidor em um formato criptograficamente hash que fornece segurança avançada.
Nota
Para acessar uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL usando o método SCRAM de autenticação, suas bibliotecas de cliente precisam dar suporte ao SCRAM. Consulte a lista de drivers que suportam SCRAM.
Nota
A autenticação SCRAM impõe carga computacional extra aos servidores de aplicativos, que precisam calcular a prova do cliente para cada autenticação. A sobrecarga de desempenho que a SCRAM introduz pode ser atenuada limitando o número de conexões no pool de conexões do seu aplicativo (reduzindo a chattiness em seu aplicativo) ou limitando o número de transações simultâneas que seu cliente permite (transações maiores). É recomendável testar suas cargas de trabalho antes de migrar para a autenticação SCRAM.
Configurar autenticação SCRAM
Altere password_encryption para SCRAM-SHA-256. Atualmente, o servidor flexível do Banco de Dados do Azure para PostgreSQL suporta apenas SCRAM usando SHA-256.
Permita SCRAM-SHA-256 como método de autenticação.
Importante
Você pode optar por impor a autenticação somente SCRAM selecionando apenas o método SCRAM-SHA-256. Ao fazer isso, os usuários com autenticação MD5 podem se conectar mais tempo ao servidor. Portanto, antes de aplicar o SCRAM, é recomendável ter o MD5 e o SCRAM-SHA-256 como métodos de autenticação até atualizar todas as senhas de usuário para o SCRAM-SHA-256. Você pode verificar o tipo de autenticação para usuários usando a consulta mencionada na etapa #7.
Guarde as alterações. Essas são propriedades dinâmicas e não exigem a reinicialização do servidor.
No seu cliente de servidor flexível do Banco de Dados do Azure para PostgreSQL, conecte-se à instância de servidor flexível do Banco de Dados do Azure para PostgreSQL. Por exemplo,
psql "host=myPGServer.postgres.database.azure.com port=5432 dbname=postgres user=myDemoUser password=<password> sslmode=require" psql (12.3 (Ubuntu 12.3-1.pgdg18.04+1), server 12.6) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help.
Verifique a encriptação da palavra-passe.
postgres=> show password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
Em seguida, você pode atualizar a senha para os usuários.
postgres=> \password myDemoUser Enter new password: Enter it again: postgres=>
Você pode verificar os tipos de autenticação do usuário usando
azure_roles_authtype()
a função.postgres=> SELECT * from azure_roles_authtype(); rolename | authtype ---------------------------+----------- azuresu | NOLOGIN pg_monitor | NOLOGIN pg_read_all_settings | NOLOGIN pg_read_all_stats | NOLOGIN pg_stat_scan_tables | NOLOGIN pg_read_server_files | NOLOGIN pg_write_server_files | NOLOGIN pg_execute_server_program | NOLOGIN pg_signal_backend | NOLOGIN replication | NOLOGIN myDemoUser | SCRAM-256 azure_pg_admin | NOLOGIN srtest | SCRAM-256 sr_md5 | MD5 (14 rows)
Em seguida, você pode se conectar do cliente que suporta a autenticação SCRAM ao seu servidor.
Nota
A autenticação SCRAM também é suportada quando conectada ao PgBouncer gerenciado integrado. O tutorial acima é válido para configurar a conectividade usando a autenticação SCRAM através do recurso PgBouncer integrado.