Partilhar via


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

  1. 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. Ativar criptografia de senha SCRAM

  2. Permita SCRAM-SHA-256 como método de autenticação. Escolha o 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.

  3. Guarde as alterações. Essas são propriedades dinâmicas e não exigem a reinicialização do servidor.

  4. 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.
    
  5. Verifique a encriptação da palavra-passe.

    postgres=> show password_encryption;
     password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Em seguida, você pode atualizar a senha para os usuários.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. 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)
    
  8. 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