PostgreSQL için Azure Veri Tabanı esnek sunucuda SCRAM kimlik doğrulaması

Salted Challenge Response Authentication Mechanism (SCRAM), parola tabanlı bir karşılıklı kimlik doğrulama protokolüdür. Bu, birkaç güvenlik düzeyi ekleyen ve güvenilmeyen bağlantılarda parola algılamayı önleyen bir sınama yanıtı şemasıdır. SCRAM, parolaların sunucuda şifrelemeyle karma olarak depolanmasını destekler ve bu da gelişmiş güvenlik sağlar.

Uyarı

SCRAM kimlik doğrulama yöntemini kullanarak PostgreSQL için Azure Veri Tabanı esnek sunucuya erişmek için istemci kitaplıklarınızın SCRAM'ı desteklemesi gerekir. Daha fazla bilgi için SCRAM'ı destekleyen sürücülerin listesine bakın.

SCRAM kimlik doğrulaması, her kimlik doğrulaması için istemci kanıtını hesaplaması gereken uygulama sunucularınıza fazladan hesaplama yükü ekler. Uygulamanızın bağlantı havuzundaki bağlantı sayısını sınırlayarak (uygulamanızdaki sohbeti azaltarak) veya istemcinizin izin verdiği eşzamanlı işlem sayısını sınırlayarak (daha büyük işlemler) SCRAM'ın sunduğu performans ek yükünü azaltabilirsiniz. SCRAM kimlik doğrulamasına geçmeden önce iş yüklerinizi test edin.

SCRAM kimlik doğrulamayı yapılandırma

Parametreler'e gidin

SCRAM kimlik doğrulamasını yapılandırmak için Azure portalındaki Parametreler sayfasına erişin:

  1. Azure portalınaoturum açın.
  2. PostgreSQL için Azure Veri Tabanı esnek sunucunuza gidin.
  3. Sol taraftaki menüde Ayarlar'ın altında Parametreler'i seçin.
  4. Aşağıdaki adımlarda belirtilen parametreleri bulmak için arama kutusunu kullanın.

Yapılandırma adımları

  1. password_encryption'yi SCRAM-SHA-256 ile değiştirin. Şu anda PostgreSQL için Azure Veri Tabanı yalnızca SHA-256 kullanan SCRAM'ı destekler.

    SCRAM için şifreleme sayfasının ekran görüntüsü.

  2. Kimlik doğrulama yöntemi olarak izin ver SCRAM-SHA-256 .

    SCRAM tarafından ulaşılan kimlik doğrulamasının ekran görüntüsü.

    Önemli

    Yalnızca SCRAM-SHA-256 yöntemini seçerek yalnızca SCRAM kimlik doğrulamasını zorunlu kılabilirsiniz. Bu yöntemi uyguladığınızda, MD5 kimlik doğrulamasına sahip kullanıcılar sunucuya bağlanamaz. SCRAM'ı zorlamadan önce, tüm kullanıcı parolalarını SCRAM-SHA-256olarak güncelleştirene kadar hem MD5 SCRAM-SHA-256 hem de kimlik doğrulama yöntemleri olduğundan emin olun. 7. adımda belirtilen sorguyu kullanarak kullanıcılar için kimlik doğrulama türünü doğrulayabilirsiniz.

  3. Değişiklikleri kaydedin. Bu özellikler dinamiktir ve sunucunun yeniden başlatılmasını gerektirmez.

  4. PostgreSQL için Azure Veri Tabanı esnek sunucu istemcinizden PostgreSQL için Azure Veri Tabanı esnek sunucuya bağlanın. Örneğin

    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.
    
  5. Parola şifrelemesini doğrulayın.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Kullanıcılar için parolayı güncelleştirin.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. işlevini kullanarak azure_roles_authtype() kullanıcı kimlik doğrulama türlerini doğrulayın.

    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. SCRAM kimlik doğrulamasını destekleyen istemciden sunucunuza bağlanın.

    SCRAM kimlik doğrulaması, yerleşik yönetilen PgBouncer'a bağlanıldığında da desteklenir.