Autentikasi SCRAM di server fleksibel Azure Database for PostgreSQL

Mekanisme Autentikasi Respons Tantangan Asin (SCRAM) adalah protokol autentikasi bersama berbasis kata sandi. Ini adalah skema respons tantangan yang menambahkan beberapa tingkat keamanan dan mencegah pengendusan kata sandi pada koneksi yang tidak tepercaya. SCRAM mendukung penyimpanan kata sandi di server dalam bentuk hash kriptografis, yang memberikan keamanan tingkat lanjut.

Nota

Untuk mengakses server fleksibel Azure Database for PostgreSQL dengan menggunakan metode autentikasi SCRAM, pustaka klien Anda perlu mendukung SCRAM. Untuk informasi selengkapnya, lihat daftar driver yang mendukung SCRAM.

Autentikasi SCRAM menambahkan beban komputasi tambahan ke server aplikasi Anda, yang perlu menghitung bukti klien untuk setiap autentikasi. Anda mungkin dapat mengurangi overhead kinerja yang ditimbulkan SCRAM dengan membatasi jumlah koneksi dalam pool koneksi aplikasi Anda (mengurangi frekuensi komunikasi dalam aplikasi) atau membatasi jumlah transaksi simultan yang diizinkan klien Anda (transaksi yang lebih besar). Uji beban kerja Anda sebelum bermigrasi ke autentikasi SCRAM.

Mengonfigurasi autentikasi SCRAM

Masuk ke Parameter

Untuk mengonfigurasi autentikasi SCRAM, akses halaman Parameter di portal Azure:

  1. Masuk ke portal Azure.
  2. Buka server fleksibel Azure Database for PostgreSQL Anda.
  3. Di menu sebelah kiri di bawah Pengaturan, pilih Parameter.
  4. Gunakan kotak pencarian untuk menemukan parameter yang disebutkan dalam langkah-langkah berikut.

Langkah-langkah konfigurasi

  1. Ubah password_encryption ke SCRAM-SHA-256. Saat ini, Azure Database for PostgreSQL hanya mendukung SCRAM menggunakan SHA-256.

    Cuplikan layar halaman enkripsi untuk SCRAM.

  2. Izinkan SCRAM-SHA-256 sebagai metode autentikasi.

    Cuplikan layar autentikasi yang dicapai oleh SCRAM.

    Penting

    Anda dapat menerapkan autentikasi khusus SCRAM dengan hanya memilih metode SCRAM-SHA-256. Saat Anda menerapkan metode ini, pengguna dengan autentikasi MD5 tidak dapat tersambung ke server. Sebelum Anda menerapkan SCRAM, pastikan MD5 dan SCRAM-SHA-256 merupakan metode autentikasi hingga Anda memperbarui semua kata sandi pengguna ke SCRAM-SHA-256. Anda dapat memverifikasi jenis autentikasi untuk pengguna dengan menggunakan kueri yang disebutkan di langkah 7.

  3. Simpan perubahan. Properti ini dinamis dan tidak memerlukan hidupkan ulang server.

  4. Dari klien server fleksibel Azure Database for PostgreSQL Anda, sambungkan ke server fleksibel Azure Database for PostgreSQL. Contohnya,

    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. Verifikasi enkripsi kata sandi.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Perbarui kata sandi untuk pengguna.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Verifikasi jenis autentikasi pengguna dengan menggunakan azure_roles_authtype() fungsi .

    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. Sambungkan dari klien yang mendukung autentikasi SCRAM ke server Anda.

    Autentikasi SCRAM juga didukung saat terhubung ke PgBouncer terkelola bawaan.