Panduan ini menunjukkan cara mengonfigurasi Workforce Identity Federation menggunakan Okta sebagai penyedia identitas (IdP), mengelola akses, dan membuat pengguna login untuk mengakses layanan Google Cloud yang mendukung Workforce Identity Federation.
Sebelum memulai
- Pastikan Anda telah menyiapkan organisasi Google Cloud.
-
After installing the Google Cloud CLI, configure the gcloud CLI to use your federated identity and then initialize it by running the following command:
gcloud init
- Untuk login, IdP Anda harus memberikan informasi autentikasi yang ditandatangani: IdP OIDC harus memberikan token JWT, dan respons IdP SAML harus ditandatangani.
- Untuk menerima informasi penting tentang perubahan pada organisasi atau produk Google Cloud, Anda harus memberikan Kontak Penting. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Federasi Identitas Tenaga Kerja.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi Workforce Identity Federation,
minta administrator untuk memberi Anda
peran IAM IAM Workforce Pool Admin (roles/iam.workforcePoolAdmin
) di organisasi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Atau, peran dasar Pemilik IAM (roles/owner
) juga
mencakup izin untuk mengonfigurasi Workforce Identity Federation.
Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi Anda dapat memberikannya dalam
lingkungan pengembangan atau pengujian.
Membuat workforce identity pool
Konsol
Untuk membuat workforce identity pool, lakukan hal berikut:
Di Konsol Google Cloud, buka halaman Workforce Identity Pool:
Klik Buat pool dan lakukan tindakan berikut:
Di kolom Name, masukkan nama tampilan kumpulan. ID kumpulan otomatis diambil dari nama saat Anda mengetik, dan ditampilkan di kolom Nama. Anda dapat memperbarui ID pool dengan mengklik Edit di samping ID pool.
Opsional: Di Deskripsi, masukkan deskripsi pool.
Durasi sesi ditetapkan secara default. Untuk memasukkan durasi sesi khusus, klik Edit. Durasi sesi menentukan durasi validnya token akses Google Cloud, sesi login konsol (federasi), dan sesi login gcloud CLI dari workforce pool ini. Durasi harus lebih dari 15 menit (900 detik) dan kurang dari 12 jam (43200 detik). Jika durasi sesi tidak ditentukan, durasi default adalah durasi satu jam (3600 detik).
Untuk mengaktifkan pool, pastikan Mengaktifkan Pool aktif.
Untuk membuat workforce identity pool, klik Berikutnya.
gcloud
Untuk membuat workforce identity pool, jalankan perintah berikut:
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
Ganti kode berikut:
WORKFORCE_POOL_ID
: ID yang Anda pilih untuk mewakili workforce pool Google Cloud Anda. Untuk mengetahui informasi tentang cara memformat ID, lihat bagian Parameter kueri dalam dokumentasi API.ORGANIZATION_ID
: ID organisasi numerik dari organisasi Google Cloud Anda.DISPLAY_NAME
: Opsional. Nama tampilan untuk kumpulan identitas tenaga kerja Anda.DESCRIPTION
: Opsional. Deskripsi kumpulan identitas tenaga kerja.SESSION_DURATION
: Opsional. Durasi sesi, yang menentukan durasi validnya token akses Google Cloud, sesi login konsol (federasi), dan sesi login gcloud CLI dari workforce pool ini. Durasi harus lebih dari 15 menit (900 detik) dan kurang dari 12 jam (43200 detik). Jika durasi sesi tidak disetel, maka durasi defaultnya adalah satu jam (3600 detik).
Membuat integrasi aplikasi Okta
Bagian ini menjelaskan langkah-langkah untuk membuat integrasi aplikasi Okta menggunakan Konsol Admin Okta. Untuk mengetahui detail tambahan, lihat Membuat integrasi aplikasi kustom.
Workforce identity pool mendukung federasi menggunakan protokol OIDC dan SAML.
Baca panduan integrasi OIDC dan SAML dari Okta untuk mengetahui detail selengkapnya. Konfigurasi dasar dijelaskan di bagian ini.
OIDC
Untuk membuat integrasi aplikasi Okta yang menggunakan protokol OIDC, lakukan langkah-langkah berikut:
- Login ke Konsol Admin Okta.
- Buka Applications > Applications.
Untuk mulai mengonfigurasi integrasi aplikasi, lakukan hal berikut:
- Klik Create App Integration.
- Pada Sign-in method, pilih OIDC - OpenID Connect.
- Pada Application type, pilih jenis aplikasi; misalnya, Web Application.
- Untuk membuat aplikasi, klik Next.
- Di App integration name, masukkan nama untuk aplikasi Anda.
- Di bagian Grant type, pilih kotak centang Implicit (hybrid).
Di bagian Sign-in redirect URI, di kolom teks, masukkan URL alihan. Pengguna Anda akan dialihkan ke URL ini setelah berhasil login. Jika Anda mengonfigurasi akses ke konsol (gabungan), gunakan format URL berikut:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Ganti kode berikut:
WORKFORCE_POOL_ID
: ID workforce pool yang Anda buat sebelumnya dalam panduan ini.WORKFORCE_PROVIDER_ID
: ID penyedia workforce identity pilihan Anda; misalnya:okta-oidc-provider
. Untuk mengetahui informasi tentang cara memformat ID, lihat bagian Parameter kueri dalam dokumentasi API.
Centang kotak centang Skip group assignment for now.
Untuk menyimpan integrasi aplikasi, klik Save.
Opsional: Untuk menambahkan atribut khusus bagi profil pengguna Okta, lakukan hal berikut:
- Di Data Type, pilih
string
. - Di Display name, masukkan
Department
. - Di Variable name, masukkan
department
. - Untuk menyimpan pemetaan, klik Save.
Untuk mempelajari lebih lanjut tentang menambahkan atribut khusus, lihat Menambahkan atribut khusus ke profil pengguna Okta.
- Di Data Type, pilih
Opsional: Untuk membuat pemetaan untuk atribut yang dikirim dalam token OIDC, di Directory, klik Profile Editor, dan lakukan hal berikut:
- Temukan aplikasi OIDC yang Anda buat sebelumnya dalam panduan ini.
- Klik Mappings.
- Pilih tab Okta User to App.
- Di tab Okta User User Profile, di kotak kombinasi yang tersedia,
masukkan
department
. Okta selesai otomatis menjadiuser.department
. - Untuk menyimpan pemetaan, klik Save Mappings. Untuk detail selengkapnya, lihat Menambahkan pemetaan atribut.
Untuk mempelajari pemetaan lebih lanjut, lihat artikel Memetakan atribut Okta ke atribut aplikasi di Editor Profil.
Opsional: Untuk mengonfigurasi klaim grup, lakukan tindakan berikut:
- Jika Anda menggunakan Server Otorisasi Org, lakukan hal berikut:
- Buka Applications > Applications
- Pilih aplikasi klien OpenID Connect yang Anda buat sebelumnya di bagian ini.
- Buka tab Sign On
- Di bagian OpenID Connect ID Token, klik Edit.
- Di bagian Groups claim type, Anda dapat memilih salah satu dari
opsi berikut:
- Pilih Expression.
- Pilih Matches regex dan masukkan
.*
.
- Untuk menyimpan klaim grup, klik Save.
- Saat Anda membuat penyedia workforce identity pool nanti dalam
panduan ini, tambahkan
groups
sebagai cakupan tambahan untuk meminta klaim grup dari Okta untuk single sign-on web. Langkah ini hanya diperlukan jika Anda menggunakan alur login berbasis browser konsol (gabungan) atau gcloud CLI.
- Jika Anda menggunakan Server Otorisasi Kustom, lakukan hal berikut:
- Di Konsol Admin, dari menu Security, pilih API.
- Pilih server otorisasi kustom yang ingin dikonfigurasi.
- Buka tab Claims, lalu klik Add Claim.
- Masukkan nama untuk klaim. Untuk contoh ini, beri nama
groups
. - Dalam klaim Anda, pada bagian Include in token type, pilih ID Token dan pilih Always.
- Pilih Groups sebagai Value type.
- Di kotak drop-down Filter, pilih Matches regex lalu masukkan ekspresi berikut sebagai Nilai:
.*
- Klik Create.
- Jika Anda menggunakan Server Otorisasi Org, lakukan hal berikut:
Untuk mengetahui detail selengkapnya tentang klaim grup, lihat Menambahkan klaim Grup.
SAML
Untuk membuat integrasi aplikasi Okta yang menggunakan protokol SAML, lakukan langkah-langkah berikut:
- Login ke Konsol Admin Okta.
- Buka Applications > Applications.
- Klik Create App Integration.
- Pada Sign-in method, pilih SAML 2.0, lalu klik Next.
- Masukkan nama untuk aplikasi Anda, lalu klik Next untuk melanjutkan ke opsi Configure SAML.
Di Single Sign On URL, masukkan URL alihan. URL ini merupakan tempat pengguna dialihkan setelah mereka berhasil login. Jika Anda mengonfigurasi akses ke konsol, gunakan format URL berikut.
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Masukkan Audience URI (
SP Entity ID
). Format ID adalah sebagai berikut:https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Ganti kode berikut:
WORKFORCE_POOL_ID
: ID workforce identity pool yang Anda buat sebelumnya dalam panduan iniWORKFORCE_PROVIDER_ID
: ID penyedia workforce identity pilihan Anda; misalnya:okta-saml-provider
Untuk mengetahui informasi tentang cara memformat ID, lihat bagian Parameter kueri dalam dokumentasi API.
Opsional: Gunakan Pernyataan Atribut untuk menentukan atribut khusus yang ingin Anda kirim dalam pernyataan SAML. Setelah penyiapan, atribut ini dapat digunakan di Google Cloud untuk membuat kebijakan pengelolaan akses atau dalam attribute_condition; misalnya, dalam panduan ini Anda memetakan departemen sebagai berikut:
Nama Nilai department
user.department
Opsional: Untuk menambahkan klaim grup, yang digunakan nanti dalam panduan ini, lihat Cara meneruskan keanggotaan grup pengguna di pernyataan SAML.
Selesaikan pembuatan integrasi aplikasi Okta.
Membuat penyedia workforce identity pool
Bagian ini menjelaskan cara membuat penyedia workforce identity pool untuk memungkinkan pengguna IdP Anda mengakses Google Cloud. Anda dapat mengonfigurasi penyedia untuk menggunakan protokol OIDC atau SAML.
Membuat penyedia workforce identity pool OIDC
Untuk membuat penyedia workforce identity pool untuk integrasi aplikasi Okta Anda, menggunakan protokol OIDC, lakukan hal berikut:
Untuk mendapatkan ID klien untuk integrasi aplikasi Okta Anda, lakukan hal berikut:
- Buka integrasi aplikasi Okta.
- Klik tab General.
- Salin konten bidang Client ID.
Untuk membuat penyedia workforce identity pool OIDC untuk login berbasis web, lakukan hal berikut:
Konsol
Alur kode
Di Okta, lakukan hal berikut:
Di Client authentication, pilih Client secret.
Di tabel Client secret, temukan rahasia tersebut, lalu klik content_copy Copy.
Di Konsol Google Cloud, untuk membuat penyedia OIDC yang menggunakan alur kode otorisasi, lakukan hal berikut:
Di Konsol Google Cloud, buka halaman Workforce Identity Pool:
Di tabel Workforce Identity Pool, pilih pool tempat Anda ingin membuat penyedia.
Di tabel Penyedia, klik Tambah Penyedia.
Di bagian Pilih protokol, pilih Open ID Connect (OIDC).
Di bagian Buat penyedia pool, lakukan hal berikut:
- Di bagian Nama, masukkan nama penyedia.
- Di bagian Penerbit (URL), masukkan URI penerbit. URI penerbit OIDC harus dalam format URI yang valid dan diawali dengan
https
; misalnya,https://example.com/oidc
. - Masukkan Client ID, client ID OIDC yang terdaftar
dengan IdP OIDC Anda; ID harus cocok dengan klaim
aud
JWT yang dikeluarkan oleh IdP Anda. - Untuk membuat penyedia yang diaktifkan, pastikan Penyedia yang Diaktifkan telah aktif.
- Klik Lanjutkan.
Di bagian Jenis respons, lakukan hal berikut. Jenis respons hanya digunakan untuk alur single sign-on berbasis web.
- Di bagian Jenis respons, pilih Kode.
- Di bagian Rahasia klien, masukkan rahasia klien dari IdP Anda.
Pada Perilaku klaim pernyataan, pilih salah satu opsi berikut:
- Info pengguna dan token ID
- Hanya token ID
Klik Lanjutkan.
Di bagian Konfigurasi penyedia, Anda dapat mengonfigurasi pemetaan atribut dan kondisi atribut. Untuk membuat pemetaan atribut, lakukan hal berikut. Anda dapat memberikan nama kolom IdP atau ekspresi berformat CEL yang menampilkan string.
Wajib: Pada OIDC 1, masukkan subjek dari IdP; misalnya,
assertion.sub
.Opsional: Untuk menambahkan pemetaan atribut tambahan, lakukan hal berikut:
- Klik Tambahkan pemetaan.
- Pada Google n, dengan n adalah angka, masukkan salah satu kunci yang didukung Google Cloud.
- Di kolom OIDC n yang sesuai, masukkan nama kolom khusus IdP yang akan dipetakan, dalam format CEL.
Untuk membuat kondisi atribut, lakukan hal berikut:
- Klik Add condition.
- Di Attribute Conditions, masukkan kondisi dalam format CEL;
misalnya,
assertion.subject.endsWith('@example.com')
jika nilaisubject
yang dipetakan sebelumnya berisi atribut alamat email yang diakhiri dengan@example.com
.
Untuk membuat penyedia, klik Submit.
Alur implisit
Di Konsol Google Cloud di Google Cloud, lakukan hal berikut:
Di Konsol Google Cloud, buka halaman Workforce Identity Pools:
Di tabel Workforce Identity Pool, pilih pool tempat Anda ingin membuat penyedia.
Di tabel Penyedia, klik Tambah Penyedia.
Di bagian Pilih protokol, pilih Open ID Connect (OIDC).
Di bagian Buat penyedia pool, lakukan hal berikut:
- Di bagian Nama, masukkan nama penyedia.
- Di bagian Penerbit (URL), masukkan URI penerbit. URI penerbit OIDC harus dalam format URI yang valid dan diawali dengan
https
; misalnya,https://example.com/oidc
. - Masukkan Client ID, client ID OIDC yang terdaftar
dengan IdP OIDC Anda; ID harus cocok dengan klaim
aud
JWT yang dikeluarkan oleh IdP Anda. - Untuk membuat penyedia yang diaktifkan, pastikan Penyedia yang Diaktifkan telah aktif.
- Klik Lanjutkan.
Di bagian Jenis respons, lakukan hal berikut. Jenis respons hanya digunakan untuk alur single sign-on berbasis web.
- Pada Jenis respons, pilih Token ID.
- Klik Lanjutkan.
Di bagian Konfigurasi penyedia, Anda dapat mengonfigurasi pemetaan atribut dan kondisi atribut. Untuk membuat pemetaan atribut, lakukan hal berikut. Anda dapat memberikan nama kolom IdP atau ekspresi berformat CEL yang menampilkan string.
Wajib: Pada OIDC 1, masukkan subjek dari IdP; misalnya,
assertion.sub
.Opsional: Untuk menambahkan pemetaan atribut tambahan, lakukan hal berikut:
- Klik Tambahkan pemetaan.
- Pada Google n, dengan n adalah angka, masukkan salah satu kunci yang didukung Google Cloud.
- Di kolom OIDC n yang sesuai, masukkan nama kolom khusus IdP yang akan dipetakan, dalam format CEL.
Untuk membuat kondisi atribut, lakukan hal berikut:
- Klik Add condition.
Di Attribute Conditions, masukkan kondisi dalam format CEL; misalnya,
assertion.subject.endsWith('@example.com')
jika nilaisubject
yang dipetakan sebelumnya berisi atribut alamat email yang diakhiri dengan@example.com
.
Untuk membuat penyedia, klik Kirim.
gcloud
Alur kode
Di Okta, lakukan hal berikut:
Di Client authentication, pilih Client secret.
Di tabel Client secret, temukan rahasia tersebut, lalu klik content_copy Copy.
Di Google Cloud, jalankan perintah berikut untuk membuat penyedia OIDC yang menggunakan alur kode otorisasi untuk login web:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \
--client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=globalGanti kode berikut:
WORKFORCE_PROVIDER_ID
: ID penyedia kumpulan identitas tenaga kerja yang unik. Awalangcp-
dicadangkan dan tidak dapat digunakan di workforce identity pool atau ID penyedia workforce identity pool.WORKFORCE_POOL_ID
: ID workforce identity pool yang akan dihubungkan dengan IdP Anda.DISPLAY_NAME
: Nama tampilan opsional yang mudah digunakan untuk penyedia; misalnya,idp-eu-employees
.DESCRIPTION
: Deskripsi penyedia workforce opsional; misalnya,IdP for Partner Example Organization employees
.ISSUER_URI
: URI penyedia OIDC, dalam format URI yang valid, yang diawali denganhttps
; misalnya,https://example.com/oidc
. Catatan: Untuk alasan keamanan,ISSUER_URI
harus menggunakan skema HTTPS.OIDC_CLIENT_ID
: ID klien OIDC yang terdaftar dengan IdP OIDC Anda; ID harus cocok dengan klaimaud
JWT yang dikeluarkan oleh IdP Anda.OIDC_CLIENT_SECRET
: Rahasia klien OIDC.WEB_SSO_ADDITIONAL_SCOPES
: Cakupan tambahan opsional yang akan dikirim ke IdP OIDC untuk login berbasis browser konsol (gabungan) atau gcloud CLI; misalnya,groups
untuk meminta klaim grup dari Okta jika menggunakan server otorisasi organisasi Okta.ATTRIBUTE_MAPPING
: Pemetaan atribut. Berikut adalah contoh pemetaan atribut: Contoh ini memetakan atribut IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,group1
, dancostcenter
dalam pernyataan OIDC ke masing-masing atributgoogle.subject
,google.groups
, danattribute.costcenter
.ATTRIBUTE_CONDITION
: Kondisi atribut; misalnya,assertion.subject.endsWith('@example.com')
jika nilaisubject
yang dipetakan sebelumnya berisi alamat email yang diakhiri dengan@example.com
.JWK_JSON_PATH
: Jalur opsional ke JWK OIDC yang diupload secara lokal. Jika parameter ini tidak disediakan, Google Cloud akan menggunakan jalur/.well-known/openid-configuration
IdP Anda untuk mendapatkan JWK yang berisi kunci publik. Untuk informasi selengkapnya tentang JWK OIDC yang diupload secara lokal, lihat mengelola JWK OIDC.
locations/global/workforcePools/enterprise-example-organization-employees
.Alur implisit
Untuk membuat penyedia OIDC yang menggunakan alur implisit untuk login web, jalankan perintah berikut:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \ --web-sso-response-type="id-token" \ --web-sso-assertion-claims-behavior="only-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=global
Ganti kode berikut:
WORKFORCE_PROVIDER_ID
: ID penyedia kumpulan identitas tenaga kerja yang unik. Awalangcp-
dicadangkan dan tidak dapat digunakan di workforce identity pool atau ID penyedia workforce identity pool.WORKFORCE_POOL_ID
: ID workforce identity pool yang akan dihubungkan dengan IdP Anda.DISPLAY_NAME
: Nama tampilan opsional yang mudah digunakan untuk penyedia; misalnya,idp-eu-employees
.DESCRIPTION
: Deskripsi penyedia workforce opsional; misalnya,IdP for Partner Example Organization employees
.ISSUER_URI
: URI penyedia OIDC, dalam format URI yang valid, yang diawali denganhttps
; misalnya,https://example.com/oidc
. Catatan: Untuk alasan keamanan,ISSUER_URI
harus menggunakan skema HTTPS.OIDC_CLIENT_ID
: ID klien OIDC yang terdaftar dengan IdP OIDC Anda; ID harus cocok dengan klaimaud
JWT yang dikeluarkan oleh IdP Anda.WEB_SSO_ADDITIONAL_SCOPES
: Cakupan tambahan opsional yang akan dikirim ke IdP OIDC untuk login berbasis browser konsol (gabungan) atau gcloud CLI; misalnya,groups
untuk meminta klaim grup dari Okta jika menggunakan server otorisasi organisasi Okta.ATTRIBUTE_MAPPING
: Pemetaan atribut. Berikut adalah contoh pemetaan atribut: Contoh ini memetakan atribut IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,group1
, dancostcenter
dalam pernyataan OIDC ke masing-masing atributgoogle.subject
,google.groups
, danattribute.costcenter
.ATTRIBUTE_CONDITION
: Kondisi atribut; misalnya,assertion.subject.endsWith('@example.com')
jika nilaisubject
yang dipetakan sebelumnya berisi alamat email yang diakhiri dengan@example.com
.JWK_JSON_PATH
: Jalur opsional ke JWK OIDC yang diupload secara lokal. Jika parameter ini tidak disediakan, Google Cloud akan menggunakan jalur/.well-known/openid-configuration
IdP Anda untuk mendapatkan JWK yang berisi kunci publik. Untuk informasi selengkapnya tentang JWK OIDC yang diupload secara lokal, lihat mengelola JWK OIDC.
locations/global/workforcePools/enterprise-example-organization-employees
.
Membuat penyedia workforce identity pool SAML
Di IdP SAML, daftarkan aplikasi baru untuk Workforce Identity Federation Google Cloud.
Tetapkan audiens untuk pernyataan SAML. Biasanya ini adalah kolom
SP Entity ID
di konfigurasi IdP Anda. Anda harus menetapkannya ke URL berikut:https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Jika Anda berencana untuk menyiapkan akses pengguna ke konsol, maka pada IdP SAML, tetapkan kolom URL alihan atau URL Assertion Consumer Service (ACS) ke URL berikut:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Lihat Menyiapkan akses pengguna ke konsol untuk detail selengkapnya tentang cara mengonfigurasi login dengan konsol.
Di Google Cloud, buat penyedia workforce identity pool SAML dengan dokumen metadata SAML IdP. Anda dapat mendownload dokumen XML metadata SAML dari IdP. Dokumen setidaknya harus menyertakan hal berikut:
- ID entitas SAML untuk IdP Anda.
- URL single sign-on untuk IdP Anda.
- Minimal satu kunci publik penandatanganan. Lihat Persyaratan kunci dalam panduan ini untuk mengetahui detail tentang kunci penandatanganan.
Konsol
Untuk mengonfigurasi penyedia SAML menggunakan konsol Google Cloud, lakukan hal berikut:
Di Konsol Google Cloud, buka halaman Workforce Identity Pool:
Di tabel Workforce Identity Pool, pilih pool yang ingin Anda buatkan penyedia.
Di tabel Penyedia, klik Tambah Penyedia.
Pada bagian Pilih protokol, pilih SAML.
Di bagian Buat penyedia pool lakukan hal berikut:
Di bagian Nama, masukkan nama penyedia.
Opsional: Di bagian Deskripsi, masukkan deskripsi penyedia.
Di file metadata IDP (XML), pilih file XML metadata yang Anda buat sebelumnya dalam panduan ini.
Pastikan bagian Aktifkan provider sudah aktif.
Klik Lanjutkan.
Di Penyedia konfigurasi, lakukan langkah berikut:
Di Pemetaan atribut, masukkan ekspresi CEL untuk
google.subject
.Opsional: Untuk memasukkan pemetaan lain, klik Tambahkan pemetaan, lalu masukkan pemetaan lain, misalnya:
Contoh ini memetakan atribut IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
, danassertion.attributes.costcenter[0]
ke atribut Google Cloudgoogle.subject
,google.groups
, dangoogle.costcenter
.Opsional: Untuk menambahkan kondisi atribut, klik Tambahkan kondisi, lalu masukkan ekspresi CEL yang mewakili kondisi atribut. Misalnya, untuk membatasi atribut
ipaddr
ke rentang IP tertentu, Anda dapat mengatur kondisi menjadiassertion.attributes.ipaddr.startsWith('98.11.12.')
. Contoh kondisi ini memastikan bahwa hanya pengguna dengan alamat IP yang diawali dengan98.11.12.
yang dapat login menggunakan penyedia workforce ini.Klik Lanjutkan.
Untuk membuat penyedia, klik Kirim.
gcloud
Untuk membuat penyedia workforce identity pool untuk integrasi aplikasi Okta Anda, menggunakan protokol SAML, lakukan hal berikut:
Untuk menyimpan metadata SAML untuk aplikasi Okta, lakukan hal berikut:
- Buka Okta App.
- Klik tab Sign On.
- Di bagian SAML Signing Certificates, klik Actions > View IdP metadata untuk sertifikat aktif.
- Di halaman baru yang terbuka, salin metadata XML.
- Simpan metadata sebagai file XML lokal.
Untuk membuat penyedia workforce untuk aplikasi Okta, jalankan perintah berikut:
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --idp-metadata-path="XML_METADATA_PATH" \ --location="global"
Ganti kode berikut:
WORKFORCE_PROVIDER_ID
: ID penyedia workforce yang Anda buat sebelumnya dalam panduan ini.WORKFORCE_POOL_ID
: ID workforce identity pool yang Anda buat sebelumnya dalam panduan ini.ATTRIBUTE_MAPPING
: Pemetaan atribut—misalnya: Contoh ini memetakan atribut IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
, danassertion.attributes.costcenter[0]
ke atribut Google Cloudgoogle.subject
,google.groups
, dangoogle.costcenter
.ATTRIBUTE_CONDITION
: Kondisi atribut opsional. Misalnya, untuk membatasi atributipaddr
ke rentang IP tertentu, Anda dapat mengatur kondisi menjadiassertion.attributes.ipaddr.startsWith('98.11.12.')
. Contoh kondisi ini memastikan bahwa hanya pengguna dengan alamat IP yang diawali dengan98.11.12.
yang dapat login menggunakan penyedia workforce ini.XML_METADATA_PATH
: Jalur ke file metadata berformat XML untuk aplikasi Okta yang Anda buat sebelumnya dalam panduan ini.
Awalan
gcp-
dicadangkan dan tidak dapat digunakan di workforce identity pool atau ID penyedia workforce identity pool.Opsional: Menerima pernyataan SAML terenkripsi dari IdP
Untuk mengaktifkan IdP SAML 2.0 guna memproduksi pernyataan SAML terenkripsi yang dapat diterima oleh workforce identity federation, lakukan hal berikut:
- Dalam workforce identity federation, lakukan hal berikut:
- Buat pasangan kunci asimetris untuk penyedia workforce identity pool Anda.
- Download file sertifikat yang berisi kunci publik.
- Konfigurasikan IdP SAML untuk menggunakan kunci publik guna mengenkripsi pernyataan SAML yang dikeluarkan.
- Di IdP Anda, lakukan hal berikut:
- Aktifkan enkripsi pernyataan, yang juga dikenal sebagai enkripsi token.
- Upload kunci publik yang Anda buat di workforce identity federation.
- Pastikan IdP Anda menghasilkan pernyataan SAML terenkripsi.
Membuat kunci enkripsi pernyataan SAML untuk workforce identity federation
Bagian ini memandu Anda untuk membuat pasangan kunci asimetris yang memungkinkan workforce identity federation untuk menerima pernyataan SAML yang terenkripsi.
Google Cloud menggunakan kunci pribadi untuk mendekripsi pernyataan SAML yang dikeluarkan IdP Anda. Untuk membuat pasangan kunci asimetris yang akan digunakan dengan enkripsi SAML, jalankan perintah berikut. Untuk mempelajari lebih lanjut, lihat Algoritma enkripsi SAML yang didukung.
gcloud iam workforce-pools providers keys create KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
Ganti kode berikut:
KEY_ID
: nama kunci yang Anda pilihWORKFORCE_POOL_ID
: ID poolWORKFORCE_PROVIDER_ID
: ID penyedia workforce identity pool-
KEY_SPECIFICATION
: spesifikasi kunci, yang dapat berupa salah satu darirsa-2048
,rsa-3072
, danrsa-4096
.
Setelah membuat pasangan kunci, untuk mendownload kunci publik ke dalam file sertifikat, jalankan perintah berikut. Hanya workforce identity federation yang memiliki akses ke kunci pribadi.
gcloud iam workforce-pools providers keys describe KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
Ganti kode berikut:
KEY_ID
: adalah nama kunciWORKFORCE_POOL_ID
: ID poolWORKFORCE_PROVIDER_ID
: ID penyedia workforce identity poolCERTIFICATE_PATH
: jalur untuk menulis sertifikat misalnya,saml-certificate.cer
atausaml-certificate.pem
Mengonfigurasi IdP yang sesuai dengan SAML 2.0 untuk mengeluarkan pernyataan SAML terenkripsi
Untuk mengonfigurasi Okta guna mengenkripsi pernyataan SAML, lakukan langkah berikut:
- Buka dasbor Okta dan login.
- Buka Applications>Applications.
- Klik aplikasi Anda.
- Di tab General, pada bagian SAML Settings, klik Edit.
- Klik Next untuk melihat SAML Settings.
- Klik Show advanced settings.
- Di SAML Settings, lakukan langkah berikut:
- Di salah satu Response (dipilih) atau Assertion Signature, pilih
Signed
. - Di bagian Signature Algorithm dan Digest Algorithm, pilih salah satu opsi.
- Tetapkan nilai berikut:
- Assertion Encryption: Terenkripsi.
- Encryption Algorithm: Algoritma apa pun yang Anda pilih.
- Encryption Certificate: Upload file sertifikat yang Anda buat sebelumnya dalam panduan ini.
- Untuk menyimpan konfigurasi, klik Next, lalu Finish
Setelah mengonfigurasi IdP untuk mengenkripsi pernyataan SAML, sebaiknya Anda memeriksa untuk memastikan bahwa pernyataan yang dihasilkan benar-benar dienkripsi. Bahkan dengan enkripsi pernyataan SAML yang dikonfigurasi, workforce identity federation masih dapat memproses pernyataan teks biasa.
Menghapus kunci enkripsi workforce identity federation
Untuk menghapus kunci enkripsi SAML, jalankan perintah berikut:gcloud iam workforce-pools providers keys delete KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global
Ganti kode berikut:
KEY_ID
: adalah nama kunciWORKFORCE_POOL_ID
: ID poolWORKFORCE_PROVIDER_ID
: ID penyedia workforce identity pool
Algoritma enkripsi SAML yang didukung
Workforce identity federation mendukung algoritma transpor kunci berikut:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
Workforce identity federation mendukung algoritma enkripsi blok berikut:
Mengelola akses ke resource Google Cloud
Bagian ini memberikan contoh yang menunjukkan cara mengelola akses ke resource Google Cloud oleh pengguna Workforce Identity Federation.
Dalam contoh ini, Anda memberikan peran Identity and Access Management (IAM) pada project contoh. Kemudian, pengguna dapat login dan menggunakan project ini untuk mengakses produk Google Cloud.
Anda dapat mengelola peran IAM untuk satu identitas, grup identitas, atau keseluruhan pool. Untuk mengetahui informasi selengkapnya, lihat Merepresentasikan pengguna workforce identity pool dalam kebijakan IAM.
Untuk satu identitas
Untuk memberikan peran Storage Admin (roles/storage.admin
) ke satu identitas
untuk project
TEST_PROJECT_ID
, jalankan perintah berikut:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Ganti kode berikut:
TEST_PROJECT_ID
: ID projectWORKFORCE_POOL_ID
: ID workforce identity poolSUBJECT_VALUE
: identitas pengguna
Menggunakan atribut departemen yang dipetakan
Untuk memberikan peran Storage Admin (roles/storage.admin
) ke semua identitas
dalam departemen tertentu untuk project
TEST_PROJECT_ID
, jalankan perintah berikut:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"
Ganti kode berikut:
TEST_PROJECT_ID
: ID projectWORKFORCE_POOL_ID
: ID workforce identity poolDEPARTMENT_VALUE
: nilaiattribute.department
yang dipetakan
Menggunakan grup yang dipetakan
Untuk memberikan peran Storage Admin (roles/storage.admin
) ke semua identitas dalam
grup tertentu untuk project TEST_PROJECT_ID
,
jalankan perintah berikut:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Ganti kode berikut:
TEST_PROJECT_ID
: ID projectWORKFORCE_POOL_ID
: ID workforce identity poolGROUP_ID
: grup dalam klaimgoogle.groups
yang dipetakan.
Login dan uji akses
Di bagian ini, Anda akan login sebagai pengguna workforce identity pool dan menguji bahwa Anda memiliki akses ke produk Google Cloud.
Login
Bagian ini menunjukkan cara login sebagai pengguna gabungan dan mengakses resource Google Cloud.
Login konsol (gabungan)
Untuk login ke konsol Workforce Identity Federation Google Cloud, yang juga dikenal sebagai konsol (gabungan), lakukan tindakan berikut:
-
Buka halaman login konsol (gabungan).
-
Masukkan nama penyedia, dengan format berikut:
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
- Masukkan kredensial pengguna dalam integrasi aplikasi Okta, jika diminta.
Jika Anda memulai login yang dimulai dengan IdP, gunakan URL berikut di SAML
Settings untuk parameter RelayState Default bertingkat:https://console.cloud.google/
.
Login berbasis browser gcloud CLI
Untuk login ke gcloud CLI menggunakan alur login berbasis browser, lakukan langkah berikut:
Membuat file konfigurasi
Untuk membuat file konfigurasi login, jalankan perintah berikut. Secara opsional, Anda dapat mengaktifkan file sebagai default untuk gcloud CLI dengan menggunakan flag --activate
.
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE
Ganti kode berikut:
-
WORKFORCE_POOL_ID
: ID workforce identity pool -
WORKFORCE_PROVIDER_ID
: ID penyedia workforce identity pool LOGIN_CONFIG_FILE
: jalur ke file konfigurasi login yang Anda tentukan—misalnya,login.json
File ini berisi endpoint yang digunakan oleh gcloud CLI untuk mengaktifkan alur autentikasi berbasis browser dan menetapkan audiens ke IdP yang dikonfigurasi di penyedia workforce identity pool. File tidak berisi informasi rahasia.
Outputnya terlihat mirip dengan yang berikut ini:
{ "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "auth_url": "https://auth.cloud.google/authorize", "token_url": "https://sts.googleapis.com/v1/oauthtoken", "token_info_url": "https://sts.googleapis.com/v1/introspect", }
Login menggunakan autentikasi berbasis browser
Untuk mengautentikasi menggunakan autentikasi login berbasis browser, Anda dapat menggunakan salah satu metode berikut:
-
Jika Anda menggunakan flag
--activate
saat membuat file konfigurasi, atau jika Anda mengaktifkan file konfigurasi dengangcloud config set auth/login_config_file
, gcloud CLI akan menggunakan file konfigurasi Anda secara otomatis:gcloud auth login
-
Untuk login dengan menentukan lokasi file konfigurasi, jalankan perintah berikut:
gcloud auth login --login-config=LOGIN_CONFIG_FILE
-
Untuk menggunakan variabel lingkungan guna menentukan lokasi file konfigurasi,
tetapkan
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
ke jalur konfigurasi.
Nonaktifkan login berbasis browser
Untuk menghentikan penggunaan file konfigurasi login, lakukan langkah berikut:
-
Jika Anda menggunakan flag
--activate
saat membuat file konfigurasi, atau jika Anda mengaktifkan file konfigurasi dengangcloud config set auth/login_config_file
, Anda harus menjalankan perintah berikut untuk membatalkan penetapannya:gcloud config unset auth/login_config_file
-
Hapus variabel lingkungan
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
, jika telah ditetapkan.
Login headless gcloud CLI
Untuk login ke gcloud CLI, menggunakan alur headless, lakukan langkah berikut:
OIDC
Buat pengguna login ke aplikasi Okta dan dapatkan token OIDC dari Okta.
Simpan token OIDC yang ditampilkan oleh Okta di lokasi yang aman pada mesin lokal Anda.
Untuk membuat file konfigurasi seperti contoh nanti dalam langkah ini, jalankan perintah berikut:
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type="urn:ietf:params:oauth:token-type:id_token" \ --credential-source-file="PATH_TO_OIDC_ID_TOKEN" \ --workforce-pool-user-project="WORKFORCE_POOL_USER_PROJECT" \ --output-file="config.json"
Ganti kode berikut:
WORKFORCE_POOL_ID
: ID workforce identity poolWORKFORCE_PROVIDER_ID
: ID penyediaPATH_TO_OIDC_TOKEN
: jalur ke file kredensial IdP OIDCWORKFORCE_POOL_USER_PROJECT
: nomor project yang terkait dengan project pengguna workforce pool
Akun utama harus memiliki izin serviceusage.services.use
di project ini.
Saat Anda menjalankan perintah, file konfigurasi IdP OIDC akan dihasilkan dengan format seperti berikut:
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
"subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
"credential_source": {
"file": "PATH_TO_OIDC_CREDENTIALS_FILE"
}
}
SAML
Buat pengguna login ke aplikasi Okta dan dapatkan SAML Response dari Okta.
Simpan Respons SAML yang ditampilkan oleh Okta di lokasi yang aman pada mesin lokal Anda, lalu simpan jalurnya, sebagai berikut:
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
Untuk membuat file konfigurasi, jalankan perintah berikut:
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type="urn:ietf:params:oauth:token-type:saml2" \ --credential-source-file="SAML_ASSERTION_PATH" \ --workforce-pool-user-project="PROJECT_ID" \ --output-file="config.json"
Ganti kode berikut:
WORKFORCE_PROVIDER_ID
: ID penyedia workforce yang Anda buat sebelumnya dalam panduan ini.WORKFORCE_POOL_ID
: ID workforce identity pool yang Anda buat sebelumnya dalam panduan ini.SAML_ASSERTION_PATH
: jalur file pernyataan SAML.PROJECT_ID
: project ID
File konfigurasi yang dihasilkan terlihat mirip dengan berikut:
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "subject_token_type": "urn:ietf:params:oauth:token-type:saml2", "token_url": "https://sts.googleapis.com/v1/token", "credential_source": { "file": "SAML_ASSERTION_PATH" }, "workforce_pool_user_project": "PROJECT_ID" }
Untuk login ke gcloud
menggunakan pertukaran token, jalankan perintah berikut:
gcloud auth login --cred-file="config.json"
gcloud
kemudian secara transparan menukar kredensial Okta Anda dengan token akses Google Cloud sementara,
sehingga Anda dapat melakukan panggilan gcloud
lainnya ke Google Cloud.
Anda akan melihat output yang mirip dengan berikut ini:
Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID
/subject/USER_ID
].
Untuk mencantumkan akun berkredensial dan akun yang saat ini aktif, jalankan perintah berikut:
gcloud auth list
Menguji akses
Anda kini memiliki akses ke layanan Google Cloud yang mendukung
Workforce Identity Federation dan yang aksesnya diberikan kepada Anda. Sebelumnya dalam
panduan ini, Anda telah memberikan peran Storage Admin (roles/storage.admin
) ke semua
identitas dalam departemen tertentu untuk project
TEST_PROJECT_ID
. Kini Anda dapat menguji apakah Anda memiliki akses
dengan mencantumkan bucket Cloud Storage.
Konsol (gabungan)
Untuk mencantumkan bucket Cloud Storage menggunakan konsol (gabungan), lakukan hal berikut:
- Membuka halaman Cloud Storage
- Pastikan Anda dapat melihat daftar bucket yang ada untuk
TEST_PROJECT_ID
gcloud CLI
Untuk mencantumkan bucket dan objek Cloud Storage untuk project yang dapat Anda akses, jalankan perintah berikut:
gcloud storage ls --project="TEST_PROJECT_ID"
Akun utama harus memiliki izin serviceusage.services.use
pada project
yang ditentukan.
Menghapus pengguna
Workforce Identity Federation membuat metadata dan resource pengguna untuk identitas pengguna gabungan. Misalnya, jika Anda memilih untuk menghapus pengguna di IdP, Anda juga harus menghapus resource ini secara eksplisit di Google Cloud. Untuk melakukannya, lihat Menghapus pengguna Workforce Identity Federation dan datanya.
Anda mungkin melihat resource terus dikaitkan dengan pengguna yang telah dihapus. Hal ini karena menghapus metadata dan resource pengguna memerlukan operasi yang berjalan lama. Setelah Anda memulai penghapusan identitas pengguna, proses yang dimulai pengguna sebelum penghapusan dapat terus berjalan hingga proses tersebut selesai atau dibatalkan.
Langkah selanjutnya
- Menghapus pengguna Workforce Identity Federation dan datanya
- Pelajari produk Google Cloud mana yang mendukung Workforce Identity Federation
- Menyiapkan akses pengguna ke konsol (gabungan)