Mengonfigurasi penyedia OIDC untuk Identity Service GKE

Dokumen ini ditujukan untuk administrator platform, atau siapa pun yang mengelola penyiapan identitas di organisasi Anda. Panduan ini menjelaskan cara mengonfigurasi penyedia identitas OpenID Connect (OIDC) yang Anda pilih untuk Identity Service GKE.

Mendaftarkan GKE Identity Service ke penyedia Anda

Penyiapan Identity Service GKE memerlukan satu client ID dan secret dari penyedia identitas Anda. ID dan secret ini digunakan oleh Layanan Identitas GKE saat terhubung ke penyedia sebagai bagian dari alur autentikasi untuk pengguna. Untuk mendapatkannya, Anda harus mendaftarkan Identity Service GKE ke penyedia sebagai aplikasi klien, dengan mengikuti prosedur standar untuk penyedia yang Anda pilih. Anda dapat menemukan beberapa detail pendaftaran spesifik untuk penyedia populer di bagian berikutnya.

Untuk URL alihan, tentukan nilai berikut:

  • https://console.cloud.google.com/kubernetes/oidc adalah URL pengalihan untuk konsol Google Cloud.
  • http://localhost:PORT/callback adalah URL pengalihan untuk gcloud CLI. Anda dapat menentukan nomor port yang lebih tinggi dari 1024.
  • APISERVER-URL:11001/finish-login adalah URL alihan jika Anda memilih untuk melakukan autentikasi menggunakan akses FQDN. Ganti APISERVER-URL dengan FQDN server Kubernetes API cluster. Misalnya, jika APISERVER-URL adalah https://apiserver.company.com, redirect_uri harus berupa https://apiserver.company.com:11001/finish-login.

Simpan client ID dan rahasia yang Anda dapatkan dari langkah pendaftaran. Bagikan detail ini kepada administrator cluster yang perlu menyiapkan Identity Service GKE.

Informasi penyiapan penyedia identitas

Bagian ini memberikan informasi tambahan khusus penyedia untuk mendaftarkan Identity Service GKE. Jika penyedia Anda tercantum di sini, daftarkan Layanan Identitas GKE ke penyedia Anda sebagai aplikasi klien menggunakan petunjuk berikut.

Microsoft AD FS

Gunakan serangkaian wizard pengelolaan AD FS untuk mengonfigurasi server AD FS dan database pengguna AD.

  1. Buka panel pengelolaan AD FS.

  2. Pilih Application Groups > Actions > Add an Application Group.

  3. Pilih Aplikasi Server. Masukkan nama dan deskripsi pilihan Anda. Klik Next.

  4. Masukkan dua URL pengalihan Anda, seperti yang ditentukan di atas. Anda akan diberi client ID. Ini adalah cara server AD FS mengidentifikasi Identity Service GKE. Simpan ID klien untuk nanti.

  5. Pilih Buat secret bersama. Identity Service GKE menggunakan secret ini untuk melakukan autentikasi ke server AD FS. Simpan secret untuk digunakan nanti.

Mengonfigurasi grup keamanan (opsional)

  1. Di pengelolaan AD FS, pilih Relying party trusts > Add a new relying party trust.

  2. Pilih Klaim kepekaan, lalu klik Mulai.

  3. Pilih Masukkan data tentang pihak tepercaya secara manual.

  4. Masukkan nama tampilan.

  5. Lewati dua langkah berikutnya.

  6. Masukkan ID Kepercayaan pihak tepercaya. Saran: token-groups-claim.

  7. Untuk Access control policy, pilih Permit everyone. Artinya, semua pengguna membagikan informasi grup keamanan mereka ke gcloud CLI dan konsol Google Cloud.

  8. Klik Selesai.

Memetakan atribut LDAP ke nama klaim

  1. Di pengelolaan AD FS, pilih Relying party trusts > Edit claim issuance policy.

  2. Pilih Send LDAP Attributes as Claims, lalu klik Next.

  3. Untuk Claim rule name, masukkan groups.

  4. Untuk Attribute store, pilih Active Directory.

  5. Dalam tabel, untuk LDAP Attribute, pilih:

    • AD FS versi 5.0 dan yang lebih baru: Token-Groups Qualified by Domain name
    • Versi AD FS sebelum 5.0: Grup Token - Nama yang Memenuhi Syarat
  6. Untuk Outgoing Claim Type, pilih:

    • AD FS versi 5.0 dan yang lebih baru: Grup
    • AD FS versi sebelum 5.0: groups
  7. Klik Finish, lalu klik Apply.

Mendaftarkan GKE Identity Service dengan AD FS

Buka jendela PowerShell dalam mode Administrator, lalu masukkan perintah ini:

Grant-AD FSApplicationPermission `
  -ClientRoleIdentifier "[CLIENT_ID]" `
 -ServerRoleIdentifier [SERVER_ROLE_IDENTIFIER] `
  -ScopeName "allatclaims", "openid"

Ganti kode berikut:

  • [CLIENT_ID] adalah client ID yang Anda peroleh sebelumnya.

  • [SERVER_ROLE_IDENTIFIER] adalah ID klaim yang Anda masukkan sebelumnya. Ingat bahwa ID yang disarankan adalah token-groups-claim.

Azure AD

Mendaftarkan klien OAuth dengan Azure

Untuk mendaftarkan klien OAuth dengan Azure, selesaikan langkah-langkah di link berikut:

  1. Jika Anda belum melakukannya, Siapkan tenant di Azure Active Directory.

  2. Mendaftarkan aplikasi dengan platform identitas Microsoft.

  3. Buka halaman App registrations di Azure Portal, lalu pilih aplikasi Anda berdasarkan namanya.

  4. Buat Rahasia Klien.

    1. Klik Tambahkan sertifikat atau secret di bagian Dasar-Dasar. Daftar sertifikat dan daftar secret akan muncul.

    2. Klik New client secret. Beri nama secret Anda, lalu klik Tambahkan.

    3. Simpan Nilai* secret di lokasi yang aman. Anda tidak akan dapat mengambilnya setelah menutup atau memuat ulang halaman.

  5. Tambahkan URI pengalihan.

    1. Kembali ke halaman permohonan.

    2. Pilih Tambahkan URI Pengalihan di bagian Dasar-Dasar. Halaman Autentikasi akan muncul.

    3. Pilih Tambahkan platform, dan panel bernama Konfigurasi platform akan muncul di sebelah kanan.

    4. Pilih Web. Di bagian Redirect URIs, masukkan http://localhost:PORT/callback untuk alur login gcloud CLI. Pilih PORT yang lebih besar dari 1024. Klik tombol Configure.

    5. Klik tombol Add URI untuk menambahkan URI lain, https://console.cloud.google.com/kubernetes/oidc, untuk login konsol Google Cloud.

    6. Klik tombol Simpan di bagian atas.

Sekarang pendaftaran klien Anda sudah selesai. Anda harus memiliki info berikut untuk dibagikan kepada administrator cluster:

  • URI Penerbit: https://login.microsoftonline.com/TENANT_ID/v2.0. ID tenant ditampilkan sebagai Directory (tenant) ID di halaman Aplikasi di portal Azure.

  • Client ID: Client ID ditampilkan sebagai Application (client) ID di halaman Aplikasi di portal Azure.

  • Rahasia Klien: Anda mendapatkannya di langkah terakhir. Anda tidak akan dapat mengambilnya jika menutup halaman setelah pembuatan secret. Pastikan untuk menyimpan nilai di lokasi yang aman (atau buat secret baru jika Anda kehilangan lacak secret sebelumnya).

Penyiapan lanjutan untuk Azure AD

Pertimbangkan untuk menggunakan penyiapan lanjutan ini hanya jika Anda ingin menyiapkan cluster dengan kebijakan otorisasi berbasis grup Azure AD tempat pengguna cluster tergabung dalam lebih dari 200 grup Azure AD. Penyiapan lanjutan untuk Azure AD mendukung platform berikut:

  • Cluster GKE on-premise (VMware dan bare metal): Dari GKE Enterprise 1.14
  • Cluster Anthos di AWS: Dari GKE Enterprise 1.14 (Kubernetes versi 1.25 atau yang lebih baru)
  • Cluster Anthos di Azure: Dari GKE Enterprise 1.14 (Kubernetes versi 1.25 atau yang lebih baru)
  • Cluster Anthos di AWS (generasi sebelumnya): Dari GKE Enterprise 1.14

Sebelum memulai, pastikan setiap pengguna memiliki alamat email terkait yang dikonfigurasi sebagai ID-nya di Azure AD. Layanan Identitas GKE menggunakan email pengguna untuk menyatakan identitas pengguna dan mengautentikasi permintaan.

Anda harus memastikan bahwa klien yang Anda daftarkan di bagian sebelumnya telah mendelegasikan izin untuk mendapatkan informasi pengguna dan grup dari Microsoft Graph API. Izin ini memungkinkan plugin Identity Service GKE mengakses endpoint Microsoft Graph API tempat informasi grup diambil. Tanpa langkah ini, Identity Service GKE tidak dapat mencantumkan grup pengguna, dan kebijakan otorisasi RBAC berdasarkan grup tidak akan berfungsi seperti yang diharapkan.

Anda harus memiliki izin admin global atau admin organisasi untuk melakukan langkah penyiapan ini.

  1. Login ke portal Azure.
  2. Jika Anda memiliki akses ke beberapa tenant, gunakan filter Direktori + langganan di menu atas untuk memilih tenant yang berisi pendaftaran aplikasi klien Anda.
  3. Pilih Azure Active Directory - App registrations, lalu pilih aplikasi klien Anda.
  4. Pilih API permissions - Add a permission - Microsoft Graph - Delegated permissions.
  5. Di tab Group, centang Group.Read.All. Di tab User, centang User.Read.All.
  6. Klik Tambahkan izin untuk menyelesaikan proses.
  7. Berikan izin atas nama semua pengguna dengan mengklik tombol Grant admin consent for.... Anda dapat menemukan informasi selengkapnya tentang cara memberikan izin admin di Selengkapnya tentang izin API dan izin admin.

Membagikan detail penyedia identitas

Bagikan informasi penyedia berikut kepada administrator cluster Anda untuk penyiapan cluster:

  • URI penerbit penyedia
  • Rahasia klien
  • Client ID
  • URI pengalihan dan port yang Anda tentukan untuk gcloud CLI
  • Kolom nama pengguna (klaim) yang digunakan penyedia Anda untuk mengidentifikasi pengguna dalam tokennya (default yang diasumsikan saat mengonfigurasi cluster adalah sub)
  • Kolom nama grup (klaim) yang digunakan penyedia Anda untuk menampilkan grup keamanan, jika ada.
  • Cakupan atau parameter tambahan yang spesifik untuk penyedia Anda, seperti yang dijelaskan di bagian sebelumnya. Misalnya, jika server otorisasi meminta izin untuk autentikasi dengan Microsoft Azure dan Okta, admin cluster harus menentukan prompt=consent sebagai parameter. Jika Anda telah mengonfigurasi ADFS untuk memberikan informasi grup keamanan, parameter tambahan yang relevan adalah resource=token-groups-claim (atau apa pun yang Anda pilih sebagai ID kepercayaan pihak tepercaya).
  • (Opsional) Jika penyedia Anda tidak menggunakan sertifikat yang ditandatangani oleh otoritas sertifikat publik (misalnya jika Anda menggunakan sertifikat yang ditandatangani sendiri), Anda memerlukan sertifikat (atau rantai sertifikat) dari penyedia identitas. Sertifikat (atau rantai sertifikat) minimal harus berisi root certificate (rantai sebagian diterima, selama rantai tersebut berdekatan kembali ke root certificate). Saat memberikan nilai ini di ClientConfig, nilai tersebut harus diformat sebagai string berenkode base64. Untuk membuat string, gabungkan sertifikat lengkap yang dienkode PEM menjadi satu string, lalu enkode base64.

Anda dapat melihat daftar lengkap parameter konfigurasi Identity Service GKE di Mengonfigurasi cluster.

Langkah selanjutnya

Administrator cluster Anda dapat menyiapkan Identity Service GKE untuk setiap cluster atau fleet.