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.
Azure Kubernetes Service (AKS) mendukung autentikasi terstruktur, yang memungkinkan Anda mengonfigurasi penyedia identitas eksternal untuk mengautentikasi pengguna ke server API Kubernetes. Fitur ini didasarkan pada konfigurasi autentikasi terstruktur Kubernetes upstream. AKS menerapkan fungsionalitas ini melalui pengautentikasi JSON Web Token (JWT) yang memvalidasi token dari penyedia identitas eksternal sesuai dengan konfigurasi Anda. Dengan autentikasi terstruktur, organisasi dapat mengintegrasikan AKS dengan infrastruktur identitas yang ada di luar ID Microsoft Entra.
Artikel ini memberikan gambaran umum tentang cara menggunakan penyedia identitas eksternal dengan autentikasi terstruktur AKS, termasuk konsep utama, pertimbangan keamanan, dan langkah berikutnya untuk konfigurasi.
Penting
Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Pratinjau AKS sebagian didukung oleh dukungan pelanggan berdasarkan upaya terbaik yang dapat dilakukan. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Manfaat autentikasi penyedia identitas eksternal
Autentikasi terstruktur memperluas AKS di luar integrasi ID Microsoft Entra tradisional dengan mendukung penyedia identitas OpenID Connect (OIDC) standar industri. Fitur ini memungkinkan Anda untuk:
- Autentikasi pengguna dengan penyedia identitas eksternal seperti Google, GitHub, atau penyedia yang mematuhi OIDC.
- Pertahankan manajemen identitas terpusat di seluruh organisasi Anda.
- Menerapkan validasi klaim kustom dan aturan pemetaan pengguna.
- Mendukung beberapa penyedia identitas secara bersamaan pada satu kluster.
Alur autentikasi penyedia identitas eksternal
Ketika pengguna mencoba mengakses server API Kubernetes menggunakan autentikasi terstruktur dengan penyedia identitas eksternal, alur autentikasi dan otorisasi adalah sebagai berikut:
-
Autentikasi: Langkah-langkah berikut memvalidasi identitas pengguna:
- Presentasi token: Pengguna mempersembahkan token JWT dari penyedia identitas yang dikonfigurasi.
- Validasi token: Server API memvalidasi tanda tangan, penerbit, audiens, dan kedaluwarsa token.
- Pemrosesan klaim: Aturan validasi klaim kustom diterapkan untuk memastikan token memenuhi kebutuhan Anda.
- Pemetaan pengguna: Klaim dipetakan ke identitas pengguna Kubernetes (nama pengguna, grup, dan atribut tambahan).
- Otorisasi: Standard Kubernetes Role-Based Access Control (RBAC) menentukan tindakan apa yang dapat dilakukan pengguna yang diautentikasi.
Penyedia identitas yang didukung
Meskipun autentikasi terstruktur AKS memungkinkan penggunaan penyedia identitas yang sesuai dengan OIDC, penyedia yang umum meliputi:
- GitHub: Mengautentikasi menggunakan identitas GitHub atau GitHub Actions.
- Google OAuth 2.0: Gunakan akun Google untuk autentikasi.
- Penyedia OIDC generik: Penyedia apa pun yang menerapkan standar OIDC.
- Solusi identitas kustom: Implementasi OIDC khusus organisasi.
Nota
ID Microsoft Entra tidak didukung sebagai penyedia identitas eksternal melalui autentikasi terstruktur. Gunakan integrasi Microsoft Entra yang ada untuk autentikasi ID Microsoft Entra.
Persyaratan untuk penyedia identitas eksternal
Penyedia identitas eksternal harus memenuhi persyaratan berikut untuk bekerja dengan autentikasi terstruktur AKS:
- Mendukung standar OIDC.
- Menyediakan titik akhir penemuan OIDC yang dapat diakses publik.
- Terbitkan token JWT dengan klaim yang sesuai.
- Dapat diakses dari node kluster AKS untuk validasi token.
Pengautentikasi JWT untuk autentikasi terstruktur AKS
Pengautentikasi JWT adalah objek konfigurasi yang menentukan cara AKS memvalidasi dan memproses token dari penyedia identitas eksternal. Misalnya, AKS mengharapkan token ID (JWT) yang aud klaimnya (audiens) cocok dengan nilai audiens yang Anda konfigurasi untuk pengautentikasi, seperti "my-api", atau ID klien OAuth. Setiap pengautentikasi JWT mencakup komponen berikut:
- Konfigurasi penerbit: Menentukan URL penerbit OIDC dan nilai audiens yang diharapkan untuk token.
- Aturan validasi klaim: Menggunakan ekspresi CEL (Bahasa Ekspresi Umum) untuk menerapkan logika validasi kustom pada klaim token.
- Pemetaan klaim: Menentukan bagaimana klaim JWT dipetakan ke atribut pengguna Kubernetes seperti nama pengguna, grup, dan bidang tambahan.
- Aturan validasi pengguna: Menerapkan logika validasi tambahan setelah pemetaan klaim untuk membatasi atau mengizinkan akses lebih lanjut.
Ekspresi CEL untuk validasi dan pemetaan klaim
Autentikasi terstruktur menggunakan ekspresi CEL untuk validasi dan pemetaan klaim yang fleksibel. CEL menyediakan lingkungan kotak pasir yang aman untuk mengevaluasi logika kustom terhadap klaim JWT.
Contoh ekspresi CEL:
// Validate that the 'sub' claim exists
has(claims.sub)
// Map username with AKS prefix
'aks:jwt:' + claims.sub
// Map groups from comma-separated string
claims.groups.split(',').map(g, 'aks:jwt:' + g)
// Conditional mapping based on claim verification
'aks:jwt:' + (claims.email_verified ? claims.email : claims.sub)
Praktik terbaik keamanan
Ingatlah praktik terbaik keamanan berikut saat menggunakan penyedia identitas eksternal dengan autentikasi terstruktur AKS:
- Gunakan validasi klaim yang kuat: Terapkan aturan validasi komprehensif untuk memastikan hanya token yang berwenang yang diterima.
- Batasi cakupan token: Konfigurasikan IdP Anda untuk mengeluarkan token dengan klaim minimal yang diperlukan.
- Rotasi reguler: Putar rahasia dan sertifikat klien secara teratur.
-
Akses monitor: Aktifkan log sumber daya dan aktifkan
kube-apiserverlog untuk memeriksa potensi masalah dengan pengautentikasi JWT yang dikonfigurasi dan melacak peristiwa autentikasi. - Konfigurasi pengujian: Validasi konfigurasi pengautentikasi JWT Anda di lingkungan nonproduksi terlebih dahulu.
Pertimbangan keamanan
Ingatlah pertimbangan keamanan berikut saat menggunakan idP eksternal dengan autentikasi terstruktur AKS:
-
Persyaratan awalan: Semua nama pengguna dan grup yang dipetakan melalui autentikasi terstruktur harus diawali dengan
aks:jwt:untuk mencegah konflik dengan metode autentikasi dan akun sistem lainnya. -
Akses jaringan: Titik akhir penyedia identitas harus dapat diakses dari:
- Node kluster AKS untuk validasi token.
- Sistem klien untuk akuisisi token.
- Jalur jaringan apa pun yang terlibat dalam alur autentikasi.
-
Lapisan validasi: Autentikasi terstruktur menyediakan beberapa lapisan validasi:
- Validasi tanda tangan token memastikan keaslian token.
- Validasi klaim standar memverifikasi penerbit, audiens, dan kedaluwarsa.
- Validasi klaim kustom menerapkan persyaratan spesifik organisasi Anda.
- Pemeriksaan akhir validasi pengguna setelah pemetaan klaim.
Konten terkait
Untuk informasi selengkapnya tentang autentikasi terstruktur dan fitur terkait, lihat sumber daya berikut ini: