Mengonfigurasi penyedia OIDC untuk GKE Identity Service

Dokumen ini menjelaskan cara mengonfigurasi penyedia identitas OpenID Connect (OIDC) yang Anda pilih untuk GKE Identity Service. Untuk mengetahui selengkapnya tentang GKE Identity Service, lihat ringkasan.

Dokumen ini ditujukan untuk administrator platform, atau siapa pun yang mengelola penyiapan identitas di organisasi Anda. Jika Anda adalah administrator cluster atau operator aplikasi, mintalah administrator platform Anda untuk mengikuti bagian ini sebelum memulai Mengonfigurasi cluster untuk GKE Identity Service tingkat fleet atau Mengonfigurasi cluster untuk GKE Identity Service dengan OIDC.

Mendaftarkan GKE Identity Service dengan penyedia Anda

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

Untuk URL pengalihan, tentukan nilai berikut:

  • https://console.cloud.google.com/kubernetes/oidc adalah URL alihan untuk Konsol Google Cloud.
  • http://localhost:PORT/callback adalah URL alihan untuk gcloud CLI. Anda dapat menentukan nomor port yang lebih besar dari 1024.

Mendaftarkan penyedia Anda melalui proses autentikasi alternatif

Proses alternatif untuk mendaftarkan penyedia Anda adalah dengan melakukan autentikasi langsung melalui server GKE Identity Service. Jika menggunakan penyedia OIDC atau Azure AD, Anda harus mengupdate redirect_uri sesuai dengan format URL cluster. redirect_uri memiliki format berikut:

      https://CLUSTER-SERVER-FQDN.com:8443/finish-login

Ganti CLUSTER-SERVER-FQDN dengan nama server cluster.

Misalnya, jika URL cluster adalah https://cluster.company.com, maka redirect_uri harus https://cluster.company.com:8443/finish-login.

Simpan client ID dan rahasia yang Anda dapatkan dari langkah pendaftaran. Bagikan detail ini kepada administrator cluster yang perlu menyiapkan GKE Identity Service. Anda harus memastikan bahwa Anda telah melakukan hal berikut:

  • Konfigurasikan layanan nama domain (DNS) untuk me-resolve CLUSTER-SERVER-FQDN ke VIP bidang kontrol (alamat IP virtual). Pengguna dapat mengakses cluster menggunakan nama domain ini.
  • Gunakan sertifikat Server Name Indication (SNI) yang diterbitkan oleh Certificate Authority (CA) perusahaan tepercaya Anda. Sertifikat ini secara khusus menyebutkan CLUSTER-SERVER-FQDN sebagai domain yang valid, sehingga menghilangkan potensi peringatan sertifikat bagi pengguna. Anda dapat memberikan sertifikat SNI saat pembuatan cluster. Untuk mengetahui informasi selengkapnya tentang autentikasi menggunakan sertifikat SNI, lihat autentikasi sertifikat SNI.
  • Jika sertifikat SNI tidak memungkinkan, konfigurasi semua perangkat pengguna agar memercayai sertifikat cluster-CA. Tindakan ini akan menghindari peringatan sertifikat, tetapi Anda perlu mendistribusikan sertifikat cluster-CA ke semua pengguna.

Untuk mengetahui informasi selengkapnya tentang akses login pengguna menggunakan sertifikat ini, lihat Menyiapkan akses login pengguna melalui proses autentikasi alternatif

Informasi penyiapan penyedia

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

Microsoft AD FS

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

  1. Buka panel pengelolaan AD FS.

  2. Pilih Grup Aplikasi > Tindakan > Tambahkan Grup Aplikasi.

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

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

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

Mengonfigurasi grup keamanan (opsional)

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

  2. Pilih Ketahui klaim, 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 Kebijakan kontrol akses, pilih Izinkan semua orang. Ini berarti semua pengguna membagikan informasi grup keamanan mereka dengan gcloud CLI dan Konsol Google Cloud.

  8. Klik Selesai.

Memetakan atribut LDAP untuk mengklaim nama

  1. Di pengelolaan Jasa Keuangan, pilih Relying party trust > Edit kebijakan penerbitan klaim.

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

  3. Untuk Nama aturan klaim, masukkan groups.

  4. Untuk Attribute store, pilih Active Directory.

  5. Pada tabel, untuk Atribut LDAP, pilih:

    • AD FS versi 5.0 dan yang lebih baru: Grup Token yang Memenuhi Syarat berdasarkan Nama domain
    • Versi AD FS sebelum 5.0: Grup Token - Nama Berkualitas
  6. Untuk Outgoing Claims Type, pilih:

    • AD FS versi 5.0 dan yang lebih baru: Grup
    • Versi AD FS sebelum 5.0: grup
  7. Klik Selesai, lalu klik Terapkan.

Mendaftarkan GKE Identity Service dengan AD FS

Buka jendela PowerShell dalam mode Administrator, dan 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 dapatkan 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 ke Azure

Untuk mendaftarkan klien OAuth ke Azure, selesaikan langkah-langkah pada link berikut:

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

  2. Daftarkan aplikasi ke platform identitas Microsoft.

  3. Buka halaman App registrations di Azure Portal dan pilih aplikasi Anda berdasarkan nama.

  4. Buat Rahasia Klien.

    1. Klik Add a certificate or secret di bagian Essentials. Daftar sertifikat dan daftar secret akan muncul.

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

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

  5. Tambahkan URI pengalihan.

    1. Kembali ke halaman aplikasi.

    2. Pilih Add a Redirect URI di bagian Essentials. Halaman Authentication akan muncul.

    3. Pilih Add a platform, dan panel bernama Configure platform akan muncul di sebelah kanan.

    4. Pilih Web. Di bagian Redirect URI, 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 Save di bagian atas.

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

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

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

  • Rahasia Klien: Anda telah diberi ini pada langkah terakhir. Anda tidak akan dapat mengambil data ini jika Anda menutup halaman saat pembuatan secret. Pastikan untuk menyimpan nilai di lokasi yang aman (atau buat secret baru jika Anda kehilangan jejak dengan rahasia sebelumnya).

Penyiapan lanjutan untuk Azure AD

Sebaiknya gunakan penyiapan lanjutan ini hanya ketika Anda ingin menyiapkan cluster dengan kebijakan otorisasi berbasis grup Azure AD ketika pengguna cluster termasuk dalam lebih dari 200 grup Azure AD. Penyiapan lanjutan untuk Azure AD mendukung platform berikut:

  • Cluster GKE lokal (baik VMware maupun 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 mereka di Azure AD. GKE Identity Service menggunakan email pengguna untuk menegaskan identitas pengguna dan mengautentikasi permintaan.

Anda perlu 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 GKE Identity Service mengakses endpoint Microsoft Graph API tempat informasi grup diambil. Tanpa langkah ini, GKE Identity Service 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 Berikan izin admin untuk.... Anda dapat menemukan informasi selengkapnya tentang cara memberikan izin admin di Selengkapnya tentang izin API dan izin admin.

Bagikan detail penyedia

Pastikan administrator cluster memiliki informasi yang diperlukan berikut ini untuk konfigurasi 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 (asumsi default saat mengonfigurasi cluster adalah sub)
  • Kolom nama grup (mengklaim) yang digunakan penyedia Anda untuk mengembalikan grup keamanan, jika ada.
  • Cakupan atau parameter tambahan apa pun yang khusus untuk penyedia Anda, seperti yang dijelaskan di bagian sebelumnya. Misalnya, jika server otorisasi Anda meminta izin untuk autentikasi dengan Microsoft Azure dan Okta, admin cluster perlu 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 certificate authority publik (misalnya jika Anda menggunakan sertifikat yang ditandatangani sendiri), Anda memerlukan sertifikat (atau rantai sertifikat) penyedia identitas. Sertifikat (atau rantai sertifikat) minimal harus berisi root certificate (rantai sebagian diterima, selama rantai berdekatan kembali dengan root certificate). Saat memberikan nilai ini di ClientConfig, nilai ini perlu diformat sebagai string berenkode base64. Untuk membuat string, gabungkan sertifikat lengkap yang dienkode PEM menjadi satu string, lalu enkode base64 pada sertifikat tersebut.

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