Bagikan melalui


Autentikasi SCRAM di Azure Database for PostgreSQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Salted Challenge Response Authentication Mechanism (SCRAM) adalah protokol autentikasi timbal balik berbasis kata sandi. Ini adalah skema respons tantangan yang menambahkan beberapa tingkat keamanan dan mencegah sniffing kata sandi pada koneksi yang tidak tepercaya. SCRAM mendukung penyimpanan kata sandi di server dalam bentuk hash kriptografis yang memberikan keamanan tingkat lanjut.

Catatan

Untuk mengakses instans server fleksibel Azure Database for PostgreSQL menggunakan metode autentikasi SCRAM, pustaka klien Anda perlu mendukung SCRAM. Lihat daftar driver yang mendukung SCRAM.

Catatan

Autentikasi SCRAM memberlakukan beban komputasi tambahan di server aplikasi Anda, yang perlu menghitung bukti klien untuk setiap autentikasi. Pengantar SCRAM overhead performa dapat dimitigasi dengan membatasi jumlah koneksi di kumpulan koneksi aplikasi Anda (mengurangi obrolan dalam aplikasi Anda) atau membatasi jumlah transaksi bersamaan yang diizinkan klien Anda (transaksi penggugus). Disarankan untuk menguji beban kerja Anda sebelum bermigrasi ke autentikasi SCRAM.

Mengonfigurasi autentikasi SCRAM

  1. Ubah password_encryption menjadi SCRAM-SHA-256. Saat ini server fleksibel Azure Database for PostgreSQL hanya mendukung SCRAM menggunakan SHA-256. Mengaktifkan enkripsi sandi SCRAM

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

    Penting

    Anda dapat memilih untuk memberlakukan autentikasi khusus SCRAM dengan memilih metode SCRAM-SHA-256 saja. Dengan demikian, pengguna dengan autentikasi MD5 dapat lebih lama tersambung ke server. Oleh karena itu, sebelum memberlakukan SCRAM, sebaiknya gunakan MD5 dan SCRAM-SHA-256 sebagai metode autentikasi hingga Anda memperbarui semua kata sandi pengguna ke SCRAM-SHA-256. Anda dapat memverifikasi jenis autentikasi untuk pengguna menggunakan kueri yang disebutkan di langkah #7.

  3. Simpan perubahan. Ini adalah properti dinamis dan tidak memerlukan penghidupan ulang server.

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

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

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

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

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

Catatan

Autentikasi SCRAM juga didukung saat terhubung ke PgBouncer terkelola bawaan. Tutorial di atas berlaku untuk menyiapkan konektivitas menggunakan autentikasi SCRAM melalui fitur PgBouncer bawaan.

Langkah berikutnya