Membuat penyedia OpenID Connect di Azure Kubernetes Service (AKS)
OpenID Connect (OIDC) memperluas protokol otorisasi OAuth 2.0 untuk digunakan sebagai protokol autentikasi lain yang dikeluarkan oleh ID Microsoft Entra. Anda dapat menggunakan OIDC untuk mengaktifkan akses menyeluruh (SSO) antara aplikasi berkemampuan OAuth pada kluster Azure Kubernetes Service (AKS) Anda dengan menggunakan token keamanan yang disebut token ID. Dengan kluster AKS, Anda dapat mengaktifkan penerbit OpenID Connect (OIDC), yang memungkinkan ID Microsoft Entra, atau platform manajemen identitas dan akses penyedia cloud lainnya, untuk menemukan kunci penandatanganan publik server API.
AKS memutar kunci secara otomatis dan berkala. Jika Anda tidak ingin menunggu, Anda dapat memutar kunci secara manual dan segera. Masa pakai maksimum token yang dikeluarkan oleh penyedia OIDC adalah satu hari.
Peringatan
Mengaktifkan pengeluar sertifikat OIDC pada kluster yang ada mengubah penerbit token akun layanan saat ini ke nilai baru, yang dapat menyebabkan waktu henti saat memulai ulang server API. Jika pod aplikasi Anda menggunakan token layanan tetap dalam status gagal setelah Anda mengaktifkan penerbit OIDC, kami sarankan Anda memulai ulang pod secara manual.
Dalam artikel ini, Anda mempelajari cara membuat, memperbarui, dan mengelola penerbit OIDC untuk kluster Anda.
Penting
Setelah Anda mengaktifkan pengeluar sertifikat OIDC pada kluster, menonaktifkannya tidak didukung.
Token perlu disegarkan secara berkala. Jika Anda menggunakan SDK, rotasinya otomatis. Jika tidak, Anda perlu menyegarkan token secara manual setiap 24 jam.
- Azure CLI versi 2.42.0 atau yang lebih tinggi. Jalankan
az --version
untuk menemukan versi Anda. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. - AKS mendukung pengeluar sertifikat OIDC pada versi 1.22 dan yang lebih tinggi.
Anda dapat membuat kluster AKS menggunakan perintah az aks create dengan --enable-oidc-issuer
parameter untuk mengaktifkan pengeluar sertifikat OIDC. Contoh berikut membuat kluster bernama myAKSCluster dengan satu node di myResourceGroup:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 1 \
--enable-oidc-issuer \
--generate-ssh-keys
Anda dapat memperbarui kluster AKS menggunakan perintah az aks update dengan --enable-oidc-issuer
parameter untuk mengaktifkan pengeluar sertifikat OIDC. Contoh berikut memperbarui kluster bernama myAKSCluster:
az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer
Untuk mendapatkan URL pengeluar sertifikat OIDC, jalankan perintah az aks show . Ganti nilai default untuk nama kluster dan nama grup sumber daya.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
Secara default, pengeluar sertifikat diatur untuk menggunakan URL https://{region}.oic.prod-aks.azure.com
dasar , di mana nilai untuk {region}
mencocokkan lokasi tempat kluster AKS disebarkan.
Untuk memutar kunci OIDC, jalankan perintah az aks oidc-issuer . Ganti nilai default untuk nama kluster dan nama grup sumber daya.
az aks oidc-issuer rotate-signing-keys --name myAKSCluster --resource-group myResourceGroup
Penting
Setelah Anda memutar kunci, kunci lama (key1) kedaluwarsa setelah 24 jam. Kunci lama (key1) dan kunci baru (key2) valid dalam periode 24 jam setelah rotasi. Jika Anda ingin segera membatalkan kunci lama (key1), Anda harus memutar kunci OIDC dua kali dan memulai ulang pod menggunakan token akun layanan yang diproyeksikan. Dengan proses ini, key2 dan key3 valid, dan key1 tidak valid.
Untuk mendapatkan URL pengeluar sertifikat OIDC, jalankan perintah az aks show . Ganti nilai default untuk nama kluster dan nama grup sumber daya.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
Outputnya harus menyerupai berikut ini:
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/
Secara default, pengeluar sertifikat diatur untuk menggunakan URL https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}
dasar , di mana nilai untuk {region}
mencocokkan lokasi tempat kluster AKS disebarkan. Nilai {uuid}
mewakili kunci OIDC, yang merupakan guid yang dihasilkan secara acak untuk setiap kluster yang tidak dapat diubah.
Untuk mendapatkan dokumen penemuan, salin URL https://(OIDC issuer URL).well-known/openid-configuration
dan buka di browser.
Outputnya harus menyerupai berikut ini:
{
"issuer": "https://eastus.oic.prod-aks.azure.com/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/00000000-0000-0000-0000-000000000000/",
"jwks_uri": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks",
"response_types_supported": [
"id_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
]
}
Untuk mendapatkan dokumen Set JWK, salin jwks_uri
dari dokumen penemuan dan tempelkan di bilah alamat browser Anda.
Outputnya harus menyerupai berikut ini:
{
"keys": [
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
},
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
}
]
}
Selama rotasi kunci, ada satu kunci lain yang ada dalam dokumen penemuan.
- Lihat mengonfigurasi pembuatan hubungan kepercayaan antara aplikasi dan idP eksternal untuk memahami bagaimana kredensial identitas federasi membuat hubungan kepercayaan antara aplikasi di kluster Anda dan idP eksternal.
- Tinjau ID Beban Kerja Microsoft Entra (pratinjau). Metode autentikasi ini terintegrasi dengan kemampuan asli Kubernetes untuk bergabung dengan penyedia identitas eksternal atas nama aplikasi.
- Lihat Mengamankan lalu lintas jaringan pod untuk memahami cara menggunakan mesin Kebijakan Jaringan dan membuat kebijakan jaringan Kubernetes untuk mengontrol arus lalu lintas antar pod di AKS.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: