Bagikan melalui


Membuat penyedia Koneksi OpenID di Azure Kubernetes Service (AKS)

OpenID Koneksi (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 Koneksi (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.

Prasyarat

  • 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.

Membuat kluster AKS dengan penerbit OIDC

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

Memperbarui kluster AKS dengan penerbit OIDC

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 

Tampilkan URL pengeluar sertifikat OIDC

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.comdasar , di mana nilai untuk {region} mencocokkan lokasi tempat kluster AKS disebarkan.

Putar kunci OIDC

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.

Periksa kunci OIDC

Mendapatkan URL penerbit OIDC

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.

Mendapatkan dokumen penemuan

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/00000000-0000-0000-0000-000000000000/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"
  ]
}

Mendapatkan dokumen JWK Set

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.

Langkah berikutnya

  • 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.