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 adicional 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 mais fragmentadas). É recomendado testar suas cargas de trabalho antes de migrar para a autenticação SCRAM.
Configurando a 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 somente a autenticação 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 impor o SCRAM, é recomendável ter o MD5 e o SCRAM-SHA-256 como métodos de autenticação até que você atualize 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=MyPassword 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.
Próximos passos
- Crie e gerencie o Banco de Dados do Azure para PostgreSQL - Rede virtual de Servidor Flexível usando a CLI do Azure.
- Saiba mais sobre rede no Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Entenda mais sobre o Banco de Dados do Azure para PostgreSQL - Regras flexíveis de firewall do Servidor