Bagikan melalui


Menggunakan ID Microsoft Entra untuk autentikasi dengan Azure Database for PostgreSQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Dalam artikel ini, Anda mengonfigurasi akses ID Microsoft Entra untuk autentikasi dengan server fleksibel Azure Database for PostgreSQL. Anda juga akan mempelajari cara menggunakan token Microsoft Entra dengan server fleksibel Azure Database for PostgreSQL.

Anda dapat mengonfigurasi autentikasi Microsoft Entra untuk server fleksibel Azure Database for PostgreSQL baik selama provisi server atau yang lebih baru. Hanya pengguna administrator Microsoft Entra yang dapat membuat atau mengaktifkan pengguna untuk autentikasi berbasis Microsoft Entra ID. Sebaiknya jangan gunakan administrator Microsoft Entra untuk operasi database reguler karena peran tersebut telah meningkatkan izin pengguna (misalnya, CREATEB).

Anda dapat memiliki beberapa pengguna admin Microsoft Entra dengan server fleksibel Azure Database for PostgreSQL. Pengguna admin Microsoft Entra dapat menjadi pengguna, grup, atau perwakilan layanan.

Prasyarat

Mengonfigurasi persyaratan jaringan

MICROSOFT Entra ID adalah aplikasi multipenyewa. Ini memerlukan konektivitas keluar untuk melakukan operasi tertentu, seperti menambahkan grup admin Microsoft Entra. Selain itu, Anda memerlukan aturan jaringan agar konektivitas Microsoft Entra berfungsi, tergantung pada topologi jaringan Anda:

  • Akses publik (alamat IP yang diizinkan): Tidak ada aturan jaringan tambahan yang diperlukan.

  • Akses pribadi (integrasi jaringan virtual):

    • Anda memerlukan aturan grup keamanan jaringan keluar (NSG) untuk memungkinkan lalu lintas jaringan virtual hanya mencapai AzureActiveDirectory tag layanan.
    • Jika Anda menggunakan tabel rute, Anda perlu membuat aturan dengan tag AzureActiveDirectory layanan tujuan dan hop Internetberikutnya .
    • Secara opsional, jika Anda menggunakan proksi, Anda dapat menambahkan aturan firewall baru untuk memungkinkan lalu lintas HTTP/S hanya AzureActiveDirectory menjangkau tag layanan.
  • DNS Kustom: Ada pertimbangan tambahan jika Anda menggunakan DNS kustom di Virtual Network (VNET) Anda. Dalam kasus seperti itu, sangat penting untuk memastikan bahwa titik akhir berikut diselesaikan ke alamat IP yang sesuai: login.microsoftonline.com: Titik akhir ini digunakan untuk tujuan autentikasi. Verifikasi bahwa penyiapan DNS kustom Anda memungkinkan penyelesaian login.microsoftonline.com ke alamat IP yang benar graph.microsoft.com: Titik akhir ini digunakan untuk mengakses Microsoft Graph API. Pastikan penyiapan DNS kustom Anda memungkinkan resolusi graph.microsoft.com ke alamat IP yang benar.

Untuk mengatur admin Microsoft Entra selama penyediaan server, ikuti langkah-langkah berikut:

  1. Di portal Azure, selama penyediaan server, pilih Autentikasi PostgreSQL dan Microsoft Entra atau Hanya autentikasi Microsoft Entra sebagai metode autentikasi.
  2. Pada tab Atur admin , pilih pengguna, grup, perwakilan layanan, atau identitas terkelola Microsoft Entra yang valid di penyewa pelanggan untuk menjadi administrator Microsoft Entra.

Anda dapat secara opsional menambahkan akun admin PostgreSQL lokal jika Anda lebih suka menggunakan metode autentikasi PostgreSQL dan Microsoft Entra.

Catatan

Anda hanya dapat menambahkan satu pengguna admin Azure selama provisi server. Anda dapat menambahkan beberapa pengguna admin Microsoft Entra setelah Server dibuat.

Cuplikan layar yang memperlihatkan pilihan untuk menyetel admin Microsoft Entra selama provisi server.]

Untuk mengatur administrator Microsoft Entra setelah pembuatan server, ikuti langkah-langkah berikut:

  1. Di portal Azure, pilih instans server fleksibel Azure Database for PostgreSQL yang ingin Anda aktifkan untuk ID Microsoft Entra.
  2. Di bawah Keamanan, pilih Autentikasi. Kemudian pilih autentikasi PostgreSQL dan Microsoft Entra atau autentikasi Microsoft Entra hanya sebagai metode autentikasi, berdasarkan kebutuhan Anda.
  3. Pilih Tambahkan Admin Microsoft Entra. Kemudian pilih pengguna, grup, perwakilan layanan, atau identitas terkelola Microsoft Entra yang valid di penyewa pelanggan untuk menjadi administrator Microsoft Entra.
  4. Pilih Simpan.

Cuplikan layar yang memperlihatkan pilihan untuk mengatur admin Microsoft Entra setelah pembuatan server.

Penting

Saat mengatur administrator, pengguna baru ditambahkan ke server fleksibel Azure Database for PostgreSQL dengan izin administrator penuh.

Menyambungkan ke Azure Database for PostgreSQL dengan menggunakan ID Microsoft Entra

Diagram tingkat tinggi berikut ini meringkas alur kerja menggunakan autentikasi Microsoft Entra dengan Azure Database for PostgreSQL:

Diagram alur autentikasi antara ID Microsoft Entra, komputer pengguna, dan server.

Integrasi Microsoft Entra berfungsi dengan alat PostgreSQL standar seperti psql, yang tidak diketahui dan dukungan Microsoft Entra hanya menentukan nama pengguna dan kata sandi saat Anda terhubung ke PostgreSQL. Seperti yang ditunjukkan pada diagram sebelumnya, token Microsoft Entra diteruskan sebagai kata sandi.

Kami telah menguji klien berikut:

  • baris perintah psql: Gunakan PGPASSWORD variabel untuk meneruskan token.
  • Azure Data Studio: Gunakan ekstensi PostgreSQL.
  • Klien berbasis libpq lainnya: Contohnya termasuk kerangka kerja aplikasi umum dan pemeta hubungan objek (ORM).
  • PgAdmin: Hapus Sambungkan sekarang di pembuatan server.

Autentikasi dengan Microsoft Entra ID

Gunakan prosedur berikut untuk mengautentikasi dengan MICROSOFT Entra ID sebagai pengguna server fleksibel Azure Database for PostgreSQL. Anda dapat mengikuti di Azure Cloud Shell, di komputer virtual Azure, atau di komputer lokal Anda.

Masuk ke langganan Azure pengguna

Mulailah dengan mengautentikasi dengan ID Microsoft Entra dengan menggunakan Azure CLI. Langkah ini tidak diperlukan di Azure Cloud Shell.

az login

Perintah membuka jendela browser ke halaman autentikasi Microsoft Entra. Ini mengharuskan Anda untuk memberikan ID pengguna dan kata sandi Microsoft Entra Anda.

Mengambil token akses Microsoft Entra

Gunakan Azure CLI untuk memperoleh token akses bagi pengguna yang diautentikasi Microsoft Entra untuk mengakses Azure Database for PostgreSQL. Berikut adalah contoh cloud publik:

az account get-access-token --resource https://ossrdbms-aad.database.windows.net

Nilai sumber daya sebelumnya harus ditentukan seperti yang ditunjukkan. Untuk cloud lain, Anda dapat mencari nilai sumber daya dengan menggunakan perintah berikut:

az cloud show

Untuk Azure CLI versi 2.0.71 dan yang lebih baru, Anda dapat menentukan perintah dalam versi nyaman berikut untuk semua cloud:

az account get-access-token --resource-type oss-rdbms

Setelah autentikasi berhasil, ID Microsoft Entra mengembalikan token akses:

{
  "accessToken": "TOKEN",
  "expiresOn": "...",
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

Token adalah string Base64. Ini mengodekan semua informasi tentang pengguna yang diautentikasi dan ditargetkan ke layanan Azure Database for PostgreSQL.

Gunakan token sebagai kata sandi untuk masuk dengan psql klien

Saat menyambungkan, yang terbaik adalah menggunakan token akses sebagai kata sandi pengguna PostgreSQL.

Saat menggunakan klien baris perintah psql, token akses perlu diteruskan melalui PGPASSWORD variabel lingkungan. Alasannya adalah bahwa token akses melebihi panjang kata sandi yang dapat diterima psql secara langsung.

Berikut adalah contoh Windows:

set PGPASSWORD=<copy/pasted TOKEN value from step 2>
$env:PGPASSWORD='<copy/pasted TOKEN value from step 2>'

Berikut adalah contoh Linux/macOS:

export PGPASSWORD=<copy/pasted TOKEN value from step 2>

Anda juga dapat menggabungkan langkah 2 dan langkah 3 bersama-sama menggunakan penggantian perintah. Pengambilan token dapat dienkapsulasi ke dalam variabel dan diteruskan langsung sebagai nilai untuk PGPASSWORD variabel lingkungan:

export PGPASSWORD=$(az account get-access-token --resource-type oss-rdbms --query "[accessToken]" -o tsv)

Sekarang Anda dapat memulai koneksi dengan Azure Database for PostgreSQL seperti biasanya:

psql "host=mydb.postgres... user=user@tenant.onmicrosoft.com dbname=postgres sslmode=require"

Menggunakan token sebagai kata sandi untuk masuk dengan PgAdmin

Untuk menyambungkan dengan menggunakan token Microsoft Entra dengan PgAdmin, ikuti langkah-langkah berikut:

  1. Buka Pgadmin dan klik Daftar dari menu sebelah kiri dan pilih Server
  2. Di Tab Umum , berikan nama koneksi dan kosongkan opsi Sambungkan sekarang .
  3. Klik tab Koneksi dan berikan detail instans server fleksibel Azure Database for PostgreSQL Anda untuk Nama host/alamat dan nama pengguna dan simpan. nama pengguna adalah ID atau email Microsoft Entra Anda
  4. Dari menu browser, pilih koneksi server fleksibel Azure Database for PostgreSQL Anda dan klik Sambungkan Server
  5. Masukkan kata sandi token Direktori Aktif Anda saat diminta.

Cuplikan layar yang memperlihatkan proses masuk menggunakan admin PG.

Berikut adalah beberapa pertimbangan penting saat Anda menyambungkan:

  • user@tenant.onmicrosoft.com adalah userPrincipalName dari pengguna Microsoft Entra.
  • Pastikan untuk menggunakan cara yang tepat untuk dieja pengguna Azure. Nama pengguna dan grup Microsoft Entra peka huruf besar/kecil.
  • Jika nama berisi spasi, gunakan garis miring terbelakang (\) sebelum setiap spasi untuk melepaskannya. Anda dapat menggunakan Azure CLI untuk mendapatkan pengguna yang masuk dan mengatur nilai untuk PGUGSER variabel lingkungan:
    export PGUSER=$(az ad signed-in-user show --query "[userPrincipalName]" -o tsv | sed 's/ /\\ /g')
    
  • Validitas token akses adalah 5 menit hingga 60 menit. Anda harus mendapatkan token akses sebelum memulai masuk ke Azure Database for PostgreSQL.

Anda sekarang diautentikasi ke server Azure Database for PostgreSQL Anda melalui autentikasi Microsoft Entra.

Mengautentikasi dengan ID Microsoft Entra sebagai anggota grup

Membuat grup Microsoft Entra di server fleksibel Azure Database for PostgreSQL

Untuk mengaktifkan grup Microsoft Entra untuk mengakses database Anda, gunakan mekanisme yang sama dengan yang Anda gunakan untuk pengguna, tetapi tentukan nama grup sebagai gantinya. Contohnya:

select * from  pgaadauth_create_principal('Prod DB Readonly', false, false).

Saat anggota grup masuk, mereka menggunakan token akses mereka tetapi menentukan nama grup sebagai nama pengguna.

Catatan

Server fleksibel Azure Database for PostgreSQL mendukung identitas terkelola dan perwakilan layanan sebagai anggota grup.

Masuk ke langganan Azure pengguna

Autentikasi dengan ID Microsoft Entra dengan menggunakan Azure CLI. Langkah ini tidak diperlukan di Azure Cloud Shell. Pengguna harus menjadi anggota grup Microsoft Entra.

az login

Mengambil token akses Microsoft Entra

Gunakan Azure CLI untuk memperoleh token akses bagi pengguna yang diautentikasi Microsoft Entra untuk mengakses Azure Database for PostgreSQL. Berikut adalah contoh cloud publik:

az account get-access-token --resource https://ossrdbms-aad.database.windows.net

Anda harus menentukan nilai sumber daya awal persis seperti yang ditunjukkan. Untuk cloud lain, Anda dapat mencari nilai sumber daya dengan menggunakan perintah berikut:

az cloud show

Untuk Azure CLI versi 2.0.71 dan yang lebih baru, Anda dapat menentukan perintah dalam versi nyaman berikut untuk semua cloud:

az account get-access-token --resource-type oss-rdbms

Setelah autentikasi berhasil, ID Microsoft Entra mengembalikan token akses:

{
  "accessToken": "TOKEN",
  "expiresOn": "...",
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

Gunakan token sebagai kata sandi untuk masuk dengan psql atau PgAdmin

Pertimbangan ini sangat penting saat Anda terhubung sebagai anggota grup:

  • Nama grup adalah nama grup Microsoft Entra yang coba Anda sambungkan.
  • Pastikan untuk menggunakan cara yang tepat untuk mengeja nama grup Microsoft Entra. Nama pengguna dan grup Microsoft Entra peka huruf besar/kecil.
  • Saat Anda tersambung sebagai grup, gunakan hanya nama grup dan bukan alias anggota grup.
  • Jika nama berisi spasi, gunakan garis miring terbelakang (\) sebelum setiap spasi untuk melepaskannya.
  • Validitas token akses adalah 5 menit hingga 60 menit. Sebaiknya Anda mendapatkan token akses sebelum memulai masuk ke Azure Database for PostgreSQL.

Anda sekarang diautentikasi ke server PostgreSQL Anda melalui autentikasi Microsoft Entra.

Langkah berikutnya