Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK:
Azure Cosmos DB untuk PostgreSQL (dengan dukungan ekstensi database Citus untuk PostgreSQL)
Dalam artikel ini, Anda mengonfigurasi metode autentikasi untuk Azure Cosmos DB for PostgreSQL. Anda mengelola pengguna admin Microsoft Entra ID dan peran PostgreSQL asli untuk autentikasi dengan Azure Cosmos DB for PostgreSQL. Anda juga mempelajari cara menggunakan token ID Microsoft Entra dengan Azure Cosmos DB for PostgreSQL.
Kluster Azure Cosmos DB for PostgreSQL dibuat dengan satu peran PostgreSQL asli bawaan bernama 'citus'. Anda dapat menambahkan lebih banyak peran PostgreSQL asli setelah provisi kluster selesai.
Anda juga dapat mengonfigurasi autentikasi Microsoft Entra ID (sebelumnya Azure Active Directory) untuk Azure Cosmos DB for PostgreSQL. Anda dapat mengaktifkan autentikasi ID Microsoft Entra sebagai tambahan atau alih-alih autentikasi PostgreSQL asli pada kluster Anda. Anda dapat mengubah metode autentikasi yang diaktifkan pada kluster kapan saja setelah kluster disediakan. Saat autentikasi ID Microsoft Entra diaktifkan, Anda dapat menambahkan beberapa pengguna ID Microsoft Entra ke kluster Azure Cosmos DB for PostgreSQL dan membuat salah satu dari mereka administrator. Pengguna ID Microsoft Entra dapat menjadi pengguna atau perwakilan layanan.
Pilih metode autentikasi
Anda perlu menggunakan portal Azure untuk mengonfigurasi metode autentikasi pada kluster Azure Cosmos DB for PostgreSQL.
Selesaikan item berikut pada kluster Azure Cosmos DB for PostgreSQL Anda untuk mengaktifkan atau menonaktifkan autentikasi ID Microsoft Entra dan autentikasi PostgreSQL asli.
- Pada halaman kluster, di bawah judul Manajemen kluster, pilih Autentikasi untuk membuka opsi manajemen autentikasi.
- Di bagian Metode autentikasi, pilih autentikasi PostgreSQL saja, autentikasi ID Microsoft Entra, atau autentikasi PostgreSQL dan MICROSOFT Entra ID sebagai metode autentikasi berdasarkan kebutuhan Anda.
Setelah selesai lanjutkan dengan mengonfigurasi autentikasi ID Microsoft Entra atau menambahkan peran PostgreSQL asli di halaman Autentikasi yang sama.
Konfigurasikan autentikasi ID Microsoft Entra
Prasyarat
Pengguna harus diizinkan masuk ke Azure Cosmos DB for PostgreSQL di penyewa MICROSOFT Entra ID. Langkah-langkah ini harus dilakukan sekali untuk penyewa MICROSOFT Entra ID yang akan digunakan untuk autentikasi pada kluster Azure Cosmos DB for PostgreSQL.
Penting
Izin administrator penyewa MICROSOFT Entra ID diperlukan untuk membuat perubahan. Lihat panduan untuk memecahkan masalah izin.
- Cari 'ID Microsoft Entra' di portal Azure.
- Buka layanan 'ID Microsoft Entra'.
- Pada halaman Gambaran Umum layanan MICROSOFT Entra ID di bagian Gambaran Umum, cari ID aplikasi 'b4fa09d8-5da5-4352-83d9-05c2a44cf431'.
- Pilih aplikasi perusahaan 'Azure Cosmos DB for PostgreSQL AAD Authentication' dalam hasil pencarian.
- Di aplikasi perusahaan Azure Cosmos DB for PostgreSQL AAD Authentication, pilih halaman Properti.
- Atur Diaktifkan bagi pengguna untuk masuk? ke Ya dan simpan perubahan.
Catatan
Mengedit properti aplikasi perusahaan seperti "Diaktifkan bagi pengguna untuk masuk" memerlukan izin yang diberikan ke peran dengan hak istimewa untuk memperbarui properti aplikasi perusahaan. Peran, seperti pemilik aplikasi enterprise, harus memiliki izin "memperbarui properti aplikasi enterprise". Untuk informasi selengkapnya, lihat Peran hak istimewa terkecil Microsoft Entra berdasarkan tugas - Aplikasi perusahaan.
Tambahkan admin Microsoft Entra ID ke kluster Azure Cosmos DB untuk PostgreSQL
Untuk menambahkan atau menghapus peran ID Microsoft Entra di kluster, ikuti langkah-langkah berikut di halaman Autentikasi :
- Di bagian autentikasi ID Microsoft Entra, pilih Tambahkan admin ID Microsoft Entra.
- Di panel Pilih Admin ID Microsoft Entra, pilih satu atau beberapa pengguna ID Microsoft Entra atau aplikasi perusahaan yang valid di penyewa AD saat ini untuk menjadi administrator ID Microsoft Entra di kluster Azure Cosmos DB for PostgreSQL Anda.
- Gunakan Pilih untuk mengonfirmasi pilihan Anda.
- Di halaman Autentikasi , pilih Simpan di toolbar untuk menyimpan perubahan atau lanjutkan dengan menambahkan peran PostgreSQL asli.
Mengonfigurasi autentikasi PostgreSQL bawaan
Untuk menambahkan peran Postgres pada kluster, ikuti langkah-langkah berikut di halaman Autentikasi :
- Di bagian autentikasi PostgreSQL, pilih Tambahkan peran PostgreSQL.
- Masukkan nama peran dan kata sandi. Pilih Simpan.
- Di halaman Autentikasi , pilih Simpan di toolbar untuk menyimpan perubahan atau lanjutkan dengan menambahkan pengguna admin ID Microsoft Entra.
Pengguna PostgreSQL asli dibuat pada simpul koordinator kluster, dan disebarkan ke semua simpul pekerja. Peran yang dibuat melalui portal Azure memiliki atribut LOGIN, yang berarti mereka adalah pengguna sejati yang dapat masuk ke database.
Menyambungkan ke Azure Cosmos for PostgreSQL dengan menggunakan autentikasi ID Microsoft Entra
Integrasi ID Microsoft Entra berfungsi dengan alat klien PostgreSQL standar seperti psql, yang tidak menyadari ID Microsoft Entra dan dukungan hanya menentukan nama pengguna dan kata sandi saat Anda terhubung ke PostgreSQL. Dalam kasus seperti itu, token ID Microsoft Entra diteruskan sebagai kata sandi.
Kami menguji klien berikut:
-
perintah baris psql: Gunakan variabel
PGPASSWORD
untuk mengoper token. - Klien berbasis libpq lainnya: Contohnya termasuk kerangka kerja aplikasi umum dan pemeta hubungan objek (ORM).
- pgAdmin: Hapus opsi Hubungkan sekarang saat membuat server.
Gunakan prosedur berikut untuk mengautentikasi dengan MICROSOFT Entra ID sebagai pengguna Azure Cosmos DB 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 ID Microsoft Entra. Ini mengharuskan Anda untuk memberikan nama pengguna dan kata sandi ID Microsoft Entra Anda.
Nama akun pengguna yang Anda gunakan untuk mengautentikasi (misalnya, user@tenant.onmicrosoft.com) adalah nama yang akan dibuat token aksesnya pada langkah berikutnya.
Mengambil token akses ID Microsoft Entra
Gunakan Azure CLI untuk memperoleh token akses untuk pengguna terautentikasi ID Microsoft Entra untuk mengakses Azure Cosmos for PostgreSQL. Berikut contohnya:
az account get-access-token --resource https://token.postgres.cosmos.azure.com
Setelah autentikasi berhasil, MICROSOFT Entra ID mengembalikan token akses untuk langganan Azure saat ini:
{
"accessToken": "[TOKEN]",
"expiresOn": "[expiration_date_and_time]",
"subscription": "[subscription_id]",
"tenant": "[tenant_id]",
"tokenType": "Bearer"
}
TOKEN adalah string Base64. Ini mengodekan semua informasi tentang pengguna yang diautentikasi dan dikaitkan dengan layanan Azure Cosmos DB for PostgreSQL. Token berlaku setidaknya selama 5 menit dengan maksimum 90 menit. ExpiresOn menentukan waktu kedaluwarsa token aktual.
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=<TOKEN value from the previous step>
$env:PGPASSWORD='<TOKEN value from the previous step>'
Berikut adalah contoh Linux/macOS:
export PGPASSWORD=<TOKEN value from the previous step>
Anda juga dapat menggabungkan dua langkah sebelumnya bersama-sama menggunakan substitusi 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 https://token.postgres.cosmos.azure.com --query "[accessToken]" -o tsv)
Catatan
Pastikan variabel PGPASSWORD diatur ke token akses Microsoft Entra ID untuk langganan Anda, demi autentikasi menggunakan Microsoft Entra ID. Jika Anda perlu melakukan autentikasi peran Postgres dari sesi yang sama, Anda dapat mengatur PGPASSWORD ke kata sandi peran Postgres atau menghapus nilai variabel PGPASSWORD untuk memasukkan kata sandi secara interaktif. Autentikasi akan gagal dengan nilai yang salah dalam PGPASSWORD.
Sekarang Anda dapat memulai koneksi dengan Azure Cosmos DB for PostgreSQL menggunakan akun pengguna ID Microsoft Entra tempat token akses dibuat. Anda akan melakukannya seperti biasanya dengan akun pengguna sebagai pengguna dan tanpa parameter 'kata sandi' di baris perintah:
psql "host=mycluster.[uniqueID].postgres.cosmos.azure.com user=user@tenant.onmicrosoft.com dbname=[db_name] sslmode=require"
Menggunakan token sebagai kata sandi untuk masuk dengan PgAdmin
Untuk menyambungkan dengan menggunakan token ID Microsoft Entra dengan PgAdmin, ikuti langkah-langkah berikut:
- Kosongkan opsi Sambungkan sekarang di pembuatan server.
- Masukkan detail server Anda pada tab Koneksi dan simpan.
- Pastikan pengguna ID Microsoft Entra yang valid diisi dalam Nama Pengguna.
- Dari menu Objek pgAdmin, pilih Sambungkan Server.
- Masukkan kata sandi token ID Microsoft Entra saat Diminta.
Berikut adalah beberapa pertimbangan penting saat Anda menyambungkan:
-
user@tenant.onmicrosoft.com
adalah nama pengguna ID Microsoft Entra. - Pastikan untuk menggunakan ejaan yang tepat dari nama pengguna Azure. Nama pengguna dan grup ID Microsoft Entra peka terhadap huruf besar/kecil.
- Jika nama berisi spasi, gunakan backslash (
\
) sebelum setiap spasi untuk mengabaikan spasi tersebut. - Validitas token akses adalah 5 menit hingga 90 menit. Anda harus mendapatkan token akses sebelum memulai masuk ke Azure Cosmos for PostgreSQL.
Anda sekarang diautentikasi ke server Azure Cosmos for PostgreSQL Anda melalui autentikasi ID Microsoft Entra.
Mengelola peran PostgreSQL asli
Ketika autentikasi PostgreSQL asli diaktifkan pada kluster, Anda dapat menambahkan dan menghapus peran Postgres selain peran 'citus' bawaan. Anda juga dapat mengatur ulang kata sandi dan memodifikasi hak istimewa Postgres untuk peran asli.
Cara menghapus peran pengguna PostgreSQL asli atau mengubah kata sandi mereka
Untuk memperbarui pengguna, kunjungi halaman Autentikasi untuk kluster Anda, dan pilih elipsis ... di samping pengguna. Elipsis membuka menu untuk menghapus pengguna atau mengatur ulang kata sandi mereka.
Peran citus
diberikan hak istimewa dan tidak dapat dihapus. Namun, citus
peran akan dinonaktifkan, jika metode 'autentikasi hanya ID Microsoft Entra' dipilih untuk kluster.
Cara mengubah hak istimewa untuk peran pengguna
Peran pengguna baru biasanya digunakan untuk memberikan akses database dengan hak istimewa terbatas. Untuk memodifikasi hak istimewa pengguna, gunakan perintah PostgreSQL standar, menggunakan alat seperti PgAdmin atau psql. Untuk informasi selengkapnya, lihat Menyambungkan ke kluster.
Misalnya, untuk mengizinkan PostgreSQL db_user
membaca mytable
, berikan izin:
GRANT SELECT ON mytable TO db_user;
Untuk memberikan izin yang sama ke peran user@tenant.onmicrosoft.com
ID Microsoft Entra, gunakan perintah berikut:
GRANT SELECT ON mytable TO "user@tenant.onmicrosoft.com";
Azure Cosmos DB for PostgreSQL menyebarkan pernyataan GRANT untuk tabel tunggal ke seluruh kluster, menerapkannya pada semua node pekerja. GRANT yang berlaku di seluruh sistem juga diterapkan (misalnya, untuk semua tabel dalam skema):
-- applies to the coordinator node and propagates to worker nodes for Postgres role db_user
GRANT SELECT ON ALL TABLES IN SCHEMA public TO db_user;
Atau untuk peran ID Microsoft Entra
-- applies to the coordinator node and propagates to worker nodes for Azure AD role user@tenant.onmicrosoft.com
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "user@tenant.onmicrosoft.com";