Dokumen ini menjelaskan cara administrator cluster atau operator aplikasi dapat mengonfigurasi cluster Kubernetes untuk mendukung autentikasi dari penyedia Security Assertion Markup Language (SAML) pihak ketiga. Untuk mengetahui informasi selengkapnya, lihat Tentang autentikasi menggunakan identitas pihak ketiga.
Batasan
Anda harus menggunakan jenis cluster yang mendukung SAML.
Sebelum memulai
-
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Setelah melakukan inisialisasi gcloud CLI, update gcloud CLI dan instal komponen yang diperlukan:
gcloud components update gcloud components install kubectl
- Pastikan administrator platform Anda telah memberi Anda semua informasi penyedia yang Anda butuhkan. Untuk mengetahui informasi selengkapnya, lihat Membagikan detail penyedia.
Mengonfigurasi cluster
Untuk mengonfigurasi cluster untuk autentikasi menggunakan SAML, Anda mengonfigurasi resource kustom Kubernetes bernama ClientConfig dengan informasi tentang penyedia identitas dan parameter yang diperlukan penyedia untuk menampilkan informasi pengguna.
Untuk mengedit default ClientConfig, pastikan Anda dapat terhubung ke cluster
kubectl, lalu jalankan perintah berikut:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
Ganti KUBECONFIG_PATH dengan jalur ke file kubeconfig
cluster Anda—misalnya $HOME/.kube/config.
Editor teks memuat resource ClientConfig cluster Anda. Tambahkan
objek spec.authentication.saml seperti yang ditunjukkan dalam contoh berikut. Jangan ubah
data default yang telah ditulis.
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
attributeMapping:
ATTRIBUTE_KEY_1: ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2: ATTRIBUTE_CEL_EXPRESSION_2
groupsAttribute: GROUPS_ATTRIBUTE
groupPrefix: GROUP_PREFIX
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
userPrefix: USER_PREFIX
certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Anda dapat menambahkan beberapa konfigurasi penyedia identitas OIDC, LDAP, dan SAML ke ClientConfig yang sama. Cluster mencoba mengautentikasi dengan setiap konfigurasi dalam urutan yang ditentukan, dan berhenti setelah autentikasi pertama berhasil. Contoh ClientConfig berikut menentukan beberapa penyedia identitas dalam urutan tertentu:
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- aws:
region: us-west-2
name: AWS Login
- ldap:
# Multiple lines are omitted here.
- saml:
# Multiple lines are omitted here.
- azureAD:
# Multiple lines are omitted here.
- oidc:
name: Okta OIDC
# Multiple lines are omitted here.
- oidc:
name: Google OIDC
# Multiple lines are omitted here.
Kolom SAML ClientConfig
Tabel berikut menjelaskan kolom objek ClientConfig saml. Kolom yang perlu Anda tambahkan bergantung pada token penyedia identitas dan cara administrator platform Anda mengonfigurasi penyedia.
| Kolom | Diperlukan | Deskripsi | Format |
|---|---|---|---|
| nama | Ya | Nama yang ingin Anda gunakan untuk mengidentifikasi konfigurasi ini, biasanya nama penyedia identitas. Nama konfigurasi harus dimulai dengan huruf, diikuti dengan maksimal 39 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. | String |
| idpEntityID | Ya | ID entitas SAML untuk penyedia SAML, yang ditentukan dalam format URI. Misalnya: https://www.idp.com/saml. |
URL String |
| idpSingleSignOnURI | ya | Endpoint SSO penyedia SAML, yang ditentukan dalam format URI. Misalnya: https://www.idp.com/saml/sso. |
URL String |
| idpCertificateDataList | Ya | Sesuai dengan sertifikat penyedia identitas yang digunakan untuk memverifikasi respons SAML. Sertifikat ini harus dienkode dengan base64 standar dan diformat PEM. Maksimum hanya dua sertifikat yang didukung untuk memfasilitasi rotasi sertifikat penyedia identitas. | String |
| userAttribute | Tidak | Nama atribut dalam respons SAML yang menyimpan nama pengguna. | String |
| groupsAttribute | Tidak | Nama atribut dalam respons SAML yang menyimpan informasi grup pengguna. | String |
| userPrefix | Tidak | Awalan yang ingin Anda tambahkan ke klaim pengguna untuk mencegah konflik dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default. | String |
| groupPrefix | Tidak | Awalan yang ingin Anda tambahkan ke nama grup keamanan. Hal ini dilakukan untuk menghindari konflik dengan nama yang ada dalam aturan kontrol akses jika Anda memiliki konfigurasi untuk beberapa penyedia identitas (biasanya nama penyedia). | String |
| attributeMapping | Tidak | Pemetaan atribut pengguna tambahan. | String |
| certificateAuthorityData | Tidak | Jika disediakan oleh administrator platform Anda, ini adalah string sertifikat berenkode PEM untuk penyedia identitas. Sertakan string yang dihasilkan dalam certificateAuthorityData sebagai satu baris. |
String |
| preferredAuthentication | Tidak | Nama metode autentikasi pilihan yang dikonfigurasi di cluster. | String |
Setelah Anda menyelesaikan ClientConfig, simpan file, yang akan memperbarui ClientConfig di cluster Anda. Jika Anda melakukan kesalahan sintaksis, Anda akan diminta untuk mengedit ulang konfigurasi guna memperbaikinya.
Apa langkah selanjutnya?
Setelah konfigurasi diterapkan, lanjutkan menyiapkan akses pengguna ke cluster.