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 hopInternet
berikutnya . - Secara opsional, jika Anda menggunakan proksi, Anda dapat menambahkan aturan firewall baru untuk memungkinkan lalu lintas HTTP/S hanya
AzureActiveDirectory
menjangkau tag layanan.
- Anda memerlukan aturan grup keamanan jaringan keluar (NSG) untuk memungkinkan lalu lintas jaringan virtual hanya mencapai
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:
- Di portal Azure, selama penyediaan server, pilih Autentikasi PostgreSQL dan Microsoft Entra atau Hanya autentikasi Microsoft Entra sebagai metode autentikasi.
- 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.
Untuk mengatur administrator Microsoft Entra setelah pembuatan server, ikuti langkah-langkah berikut:
- Di portal Azure, pilih instans server fleksibel Azure Database for PostgreSQL yang ingin Anda aktifkan untuk ID Microsoft Entra.
- Di bawah Keamanan, pilih Autentikasi. Kemudian pilih autentikasi PostgreSQL dan Microsoft Entra atau autentikasi Microsoft Entra hanya sebagai metode autentikasi, berdasarkan kebutuhan Anda.
- 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.
- Pilih Simpan.
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:
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:
- Buka Pgadmin dan klik Daftar dari menu sebelah kiri dan pilih Server
- Di Tab Umum , berikan nama koneksi dan kosongkan opsi Sambungkan sekarang .
- 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
- Dari menu browser, pilih koneksi server fleksibel Azure Database for PostgreSQL Anda dan klik Sambungkan Server
- Masukkan kata sandi token Direktori Aktif Anda saat diminta.
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 untukPGUGSER
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
- Tinjau konsep keseluruhan untuk autentikasi Microsoft Entra dengan Azure Database for PostgreSQL - Server Fleksibel.
- Pelajari cara Mengelola pengguna Microsoft Entra - Azure Database for PostgreSQL - Server Fleksibel.