Mengonfigurasi Workforce Identity Federation

Panduan ini menjelaskan cara mengonfigurasi Workforce Identity Federation dengan penyedia identitas (IdP) yang mendukung OIDC atau SAML 2.0.

Untuk petunjuk khusus mengenai IdP, baca artikel berikut:

Sebelum memulai

  1. Pastikan Anda telah menyiapkan organisasi Google Cloud.
  2. 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
  3. Enable the Identity and Access Management (IAM) and Resource Manager APIs.

    Enable the APIs

  4. Untuk login, IdP Anda harus memberikan informasi autentikasi yang ditandatangani: IdP OIDC harus memberikan token JWT, dan respons IdP SAML harus ditandatangani.
  5. 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 Workforce Identity 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 (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.

Mengonfigurasi Workforce Identity Federation

Untuk mengonfigurasi Workforce Identity Federation, Anda harus membuat workforce identity pool dan penyedia workforce identity pool.

Membuat workforce identity pool

Untuk membuat pool, jalankan perintah berikut:

Konsol

Untuk membuat workforce identity pool, lakukan hal berikut:

  1. Di Konsol Google Cloud, buka halaman Workforce Identity Pool:

    Buka Workforce Identity Pools

  2. Klik Buat pool dan lakukan tindakan berikut:

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

    2. Opsional: Di Deskripsi, masukkan deskripsi pool.

    3. 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).

    4. Untuk mengaktifkan pool, pastikan Mengaktifkan Pool aktif.

    5. 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 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 pool OIDC

Untuk membuat penyedia workforce identity pool menggunakan protokol OIDC, lakukan hal berikut:

  1. Di IdP OIDC, daftarkan aplikasi baru untuk Google Cloud Workforce Identity Federation. Perhatikan client ID dan URI penerbit yang diberikan oleh IdP. Anda menggunakannya dalam dokumen ini.

  2. Jika Anda berencana menyiapkan akses pengguna ke konsol, tambahkan URL alihan berikut ke IdP OIDC Anda:

    https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Untuk mempelajari cara mengonfigurasi login konsol (federasi), lihat Menyiapkan akses pengguna ke konsol (federasi).

  3. Di Google Cloud, untuk membuat penyedia, lakukan hal berikut:

    Konsol

    Alur kode

    Di Konsol Google Cloud, untuk membuat penyedia OIDC yang menggunakan alur kode otorisasi, lakukan hal berikut:

    1. Di Konsol Google Cloud, buka halaman Workforce Identity Pool:

      Buka Workforce Identity Pool

    2. Di tabel Workforce Identity Pool, pilih pool tempat Anda ingin membuat penyedia.

    3. Di tabel Penyedia, klik Tambah Penyedia.

    4. Di bagian Pilih protokol, pilih Open ID Connect (OIDC).

    5. Di bagian Buat penyedia pool, lakukan hal berikut:

      1. Di bagian Nama, masukkan nama penyedia.
      2. 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.
      3. Masukkan Client ID, client ID OIDC yang terdaftar dengan IdP OIDC Anda; ID harus cocok dengan klaim aud JWT yang dikeluarkan oleh IdP Anda.
      4. Untuk membuat penyedia yang diaktifkan, pastikan Penyedia yang Diaktifkan telah aktif.
      5. Klik Lanjutkan.
    6. Di bagian Jenis respons, lakukan hal berikut. Jenis respons hanya digunakan untuk alur single sign-on berbasis web.

      1. Di bagian Jenis respons, pilih Kode.
      2. Di bagian Rahasia klien, masukkan rahasia klien dari IdP Anda.
      3. Pada Perilaku klaim pernyataan, pilih salah satu opsi berikut:

        • Info pengguna dan token ID
        • Hanya token ID
      4. Klik Lanjutkan.

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

      1. Wajib: Pada OIDC 1, masukkan subjek dari IdP; misalnya, assertion.sub.

      2. Opsional: Untuk menambahkan pemetaan atribut tambahan, lakukan hal berikut:

        1. Klik Tambahkan pemetaan.
        2. Pada Google n, dengan n adalah angka, masukkan salah satu kunci yang didukung Google Cloud.
        3. Di kolom OIDC n yang sesuai, masukkan nama kolom khusus IdP yang akan dipetakan, dalam format CEL.
      3. Untuk membuat kondisi atribut, lakukan hal berikut:

        1. Klik Add condition.
        2. Di bagian Kondisi Atribut, masukkan kondisi dalam format CEL; misalnya, assertion.role == 'gcp-users'. Contoh kondisi ini memastikan bahwa hanya pengguna dengan peran gcp-users yang dapat login menggunakan penyedia ini.
    8. Untuk membuat penyedia, klik Kirim.

    Alur implisit

    Di konsol Google Cloud, untuk membuat penyedia OIDC yang menggunakan alur implisit, lakukan hal berikut:

    1. Di Konsol Google Cloud, buka halaman Workforce Identity Pool:

      Buka Workforce Identity Pool

    2. Di tabel Workforce Identity Pool, pilih pool tempat Anda ingin membuat penyedia.

    3. Di tabel Penyedia, klik Tambah Penyedia.

    4. Di bagian Pilih protokol, pilih Open ID Connect (OIDC).

    5. Di bagian Buat penyedia pool, lakukan hal berikut:

      1. Di bagian Nama, masukkan nama penyedia.
      2. 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.
      3. Masukkan Client ID, client ID OIDC yang terdaftar dengan IdP OIDC Anda; ID harus cocok dengan klaim aud JWT yang dikeluarkan oleh IdP Anda.
      4. Untuk membuat penyedia yang diaktifkan, pastikan Penyedia yang Diaktifkan telah aktif.
      5. Klik Lanjutkan.
    6. Di bagian Jenis respons, lakukan hal berikut. Jenis respons hanya digunakan untuk alur single sign-on berbasis web.

      1. Pada Jenis respons, pilih Token ID.
      2. Klik Lanjutkan.
    7. 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.

      1. Wajib: Pada OIDC 1, masukkan subjek dari IdP; misalnya, assertion.sub.

      2. Opsional: Untuk menambahkan pemetaan atribut tambahan, lakukan hal berikut:

        1. Klik Tambahkan pemetaan.
        2. Pada Google n, dengan n adalah angka, masukkan salah satu kunci yang didukung Google Cloud.
        3. Di kolom OIDC n yang sesuai, masukkan nama kolom khusus IdP yang akan dipetakan, dalam format CEL.
      3. Untuk membuat kondisi atribut, lakukan hal berikut:

        1. Klik Tambahkan kondisi.
        2. Di bagian Kondisi Atribut, masukkan kondisi dalam format CEL; misalnya, assertion.role == 'gcp-users'. Contoh kondisi ini memastikan bahwa hanya pengguna dengan peran gcp-users yang dapat login menggunakan penyedia ini.

    8. Untuk membuat penyedia, klik Kirim.

    gcloud

    Alur kode

    Untuk membuat penyedia OIDC yang menggunakan alur kode otorisasi 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" \
    --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=global

    Ganti kode berikut:

    • WORKFORCE_PROVIDER_ID: ID penyedia kumpulan identitas tenaga kerja yang unik. Awalan gcp- 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 dengan https; 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 klaim aud 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 (federasi) atau gcloud CLI.
    • ATTRIBUTE_MAPPING: Pemetaan atribut. Berikut adalah contoh pemetaan atribut:
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      Contoh ini memetakan atribut IdP subject, group1, dan costcenter dalam pernyataan OIDC ke masing-masing atribut google.subject, google.groups, dan attribute.costcenter.
    • ATTRIBUTE_CONDITION: Kondisi atribut; misalnya, assertion.role == 'gcp-users'. Contoh kondisi ini memastikan bahwa hanya pengguna dengan peran gcp-users yang dapat login menggunakan penyedia ini.
    • 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.
    Dalam respons perintah, POOL_RESOURCE_NAME adalah nama pool; misalnya, 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. Awalan gcp- 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 dengan https; 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 klaim aud JWT yang dikeluarkan oleh IdP Anda.
    • WEB_SSO_ADDITIONAL_SCOPES: Cakupan tambahan opsional yang akan dikirim ke IdP OIDC untuk login berbasis browser konsol (federasi) atau gcloud CLI.
    • ATTRIBUTE_MAPPING: Pemetaan atribut. Berikut adalah contoh pemetaan atribut:
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      Contoh ini memetakan atribut IdP subject, group1, dan costcenter dalam pernyataan OIDC ke masing-masing atribut google.subject, google.groups, dan attribute.costcenter.
    • ATTRIBUTE_CONDITION: Kondisi atribut; misalnya, assertion.role == 'gcp-users'. Contoh kondisi ini memastikan bahwa hanya pengguna dengan peran gcp-users yang dapat login menggunakan penyedia ini.
    • 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.
    Dalam respons perintah, POOL_RESOURCE_NAME adalah nama pool; misalnya, locations/global/workforcePools/enterprise-example-organization-employees.

    Awalan gcp- dicadangkan dan tidak dapat digunakan di workforce identity pool atau ID penyedia workforce identity pool.

    Untuk federasi OIDC, Anda dapat menggunakan assertion.NAME: string yang sama dengan nilai klaim bernama serupa dalam payload token ID.

Membuat penyedia workforce pool SAML

  1. Di IdP SAML, daftarkan aplikasi baru untuk Workforce Identity Federation Google Cloud.

  2. 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
    
  3. 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.

  4. 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:

  1. Di Konsol Google Cloud, buka halaman Workforce Identity Pool:

    Buka Workforce Identity Pool

  2. Di tabel Workforce Identity Pool, pilih pool yang ingin Anda buatkan penyedia.

  3. Di tabel Penyedia, klik Tambah Penyedia.

  4. Pada bagian Pilih protokol, pilih SAML.

  5. Di bagian Buat penyedia pool lakukan hal berikut:

    1. Di bagian Nama, masukkan nama penyedia.

    2. Opsional: Di bagian Deskripsi, masukkan deskripsi penyedia.

    3. Di file metadata IDP (XML), pilih file XML metadata yang Anda buat sebelumnya dalam panduan ini.

    4. Pastikan bagian Aktifkan provider sudah aktif.

    5. Klik Lanjutkan.

  6. Di Penyedia konfigurasi, lakukan langkah berikut:

    1. Di Pemetaan atribut, masukkan ekspresi CEL untuk google.subject.

    2. Opsional: Untuk memasukkan pemetaan lain, klik Tambahkan pemetaan, lalu masukkan pemetaan lain, misalnya:

      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]
      Contoh ini memetakan atribut IdP assertion.subject, assertion.attributes['https://example.com/aliases'], dan assertion.attributes.costcenter[0] ke atribut Google Cloud google.subject, google.groups, dan google.costcenter.

    3. 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 menjadi assertion.attributes.ipaddr.startsWith('98.11.12.'). Contoh kondisi ini memastikan bahwa hanya pengguna dengan alamat IP yang diawali dengan 98.11.12. yang dapat login menggunakan penyedia workforce ini.

    4. Klik Lanjutkan.

  7. Untuk membuat penyedia, klik Kirim.

gcloud

Untuk mengonfigurasi penyedia SAML menggunakan gcloud CLI, lakukan langkah berikut:

  gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
      --workforce-pool=WORKFORCE_POOL_ID \
      --display-name="DISPLAY_NAME" \
      --description="DESCRIPTION" \
      --idp-metadata-path=METADATA_FILE_PATH \
      --attribute-mapping="ATTRIBUTE_MAPPING" \
      --attribute-condition="ATTRIBUTE_CONDITION" \
      --location=global

Ganti kode berikut:

  • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pool.
  • WORKFORCE_POOL_ID: ID kumpulan identitas tenaga kerja.
  • DISPLAY_NAME Nama tampilan untuk penyedia; misalnya, idp-eu-employees.
  • DESCRIPTION: Deskripsi untuk penyedia workforce identity pool; misalnya, IdP for Partner Example Organization EU employees.
  • METADATA_FILE_PATH: Jalur file metadata SAML.
  • ATTRIBUTE_MAPPING: Pemetaan atribut; misalnya:

    google.subject=assertion.subject,
    google.groups=assertion.attributes['https://example.com/aliases'],
    attribute.costcenter=assertion.attributes.costcenter[0]
    Contoh ini memetakan atribut IdP assertion.subject, assertion.attributes['https://example.com/aliases'], dan assertion.attributes.costcenter[0] ke atribut Google Cloud google.subject, google.groups, dan google.costcenter.

  • ATTRIBUTE_CONDITION: Kondisi atribut. Misalnya, untuk membatasi atribut ipaddr ke rentang IP tertentu, Anda dapat mengatur kondisi menjadi assertion.attributes.ipaddr.startsWith('98.11.12.'). Contoh kondisi ini memastikan bahwa hanya pengguna dengan alamat IP yang diawali dengan 98.11.12. yang dapat login menggunakan penyedia workforce ini.

Penyedia memerlukan waktu beberapa menit untuk mulai menerima permintaan.

Untuk federasi SAML, Anda dapat menggunakan kata kunci berikut dalam pemetaan dan ketentuan atribut:

  • assertion.subject: string yang sama dengan atribut NameID dalam pernyataan SAML.
  • assertion.attributes.NAME: daftar string yang sama dengan nilai atribut bernama serupa dalam pernyataan SAML.

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.
Perlu diketahui, meskipun kunci penyedia enkripsi SAML telah dikonfigurasi, workforce identity federation masih dapat memproses pernyataan teks biasa.

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 pilih
  • WORKFORCE_POOL_ID: ID pool
  • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pool
  • KEY_SPECIFICATION: spesifikasi kunci, yang dapat berupa salah satu dari rsa-2048, rsa-3072, dan rsa-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 kunci
  • WORKFORCE_POOL_ID: ID pool
  • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pool
  • CERTIFICATE_PATH: jalur untuk menulis sertifikat misalnya, saml-certificate.cer atau saml-certificate.pem

Mengonfigurasi IdP yang sesuai dengan SAML 2.0 untuk mengeluarkan pernyataan SAML terenkripsi

Konfigurasikan IdP SAML agar menggunakan sertifikat publik yang didownload dari langkah terakhir untuk mengenkripsi pernyataan SAML yang dikeluarkan. Konsultasikan dengan tim IdP Anda untuk mendapatkan petunjuk khusus.

Setelah mengonfigurasi IdP untuk mengenkripsi pernyataan SAML, sebaiknya periksa 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 kunci
  • WORKFORCE_POOL_ID: ID pool
  • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pool

Algoritma enkripsi SAML yang didukung

Workforce identity federation mendukung algoritma transpor kunci berikut:

Workforce identity federation mendukung algoritma enkripsi blok berikut:

Persyaratan kunci penandatanganan SAML X.509

Spesifikasi kunci berikut berlaku untuk kunci penandatanganan SAML X.509:

  • Kunci publik RSA yang digabungkan dalam sertifikat X.509 v3.

  • Persyaratan validitas sertifikat:

    • notBefore: stempel waktu yang tidak lebih dari 7 hari ke depan
    • notAfter: stempel waktu yang tidak lebih dari 20 tahun ke depan
  • Algoritma yang direkomendasikan:

Penyedia workforce identity pool dapat dikonfigurasi dengan maksimal tiga kunci penandatanganan secara bersamaan. Jika ada beberapa kunci, Google Cloud akan melakukan iterasi dan mencoba menggunakan setiap kunci yang belum habis masa berlakunya untuk memenuhi permintaan pertukaran token.

Praktik terbaiknya, sebaiknya Anda tidak menggunakan kembali pasangan kunci yang sama dengan layanan lain.

Pengelolaan kunci

Untuk mengupdate kunci penandatanganan IdP, lakukan langkah-langkah berikut:

  1. Buat pasangan kunci asimetris baru dan konfigurasikan penyedia identitas SAML dengan pasangan kunci tersebut. Awalnya, Anda menandainya sebagai tidak aktif sebelum mengaktifkannya di langkah berikutnya.

  2. Download dokumen XML metadata SAML dari IdP Anda.

  3. Perbarui resource penyedia workforce identity pool dengan dokumen metadata SAML. Jika ada beberapa kunci, Google Cloud akan melakukan iterasi melalui setiap kunci yang belum habis masa berlakunya dan mencoba untuk memenuhi permintaan pertukaran token.

    Untuk memperbarui penyedia workforce identity pool dengan metadata SAML, jalankan perintah berikut.

    gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Ganti kode berikut:

    • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pool
    • WORKFORCE_POOL_ID: ID workforce identity pool
    • SAML_METADATA_FILE_PATH: jalur ke file metadata SAML
  4. Tunggu hingga operasi yang ditampilkan dari langkah sebelumnya selesai (operasi ditandai sebagai selesai), lalu pada IdP SAML, aktifkan kunci penandatanganan baru. Kunci penandatanganan lama ditandai sebagai tidak aktif. Pernyataan yang dikeluarkan oleh IdP Anda ditandatangani menggunakan kunci baru.

Langkah berikut bersifat opsional, tetapi sebaiknya Anda melakukannya untuk hasil terbaik:

  1. Hapus kunci penandatanganan lama yang sekarang tidak aktif dari IdP Anda.
  2. Download dokumen XML metadata SAML dari IdP Anda.
  3. Perbarui resource penyedia workforce identity pool dengan dokumen metadata SAML. Google Cloud menolak pernyataan yang ditandatangani dengan kunci penandatanganan yang sudah habis masa berlakunya. Untuk memperbarui dokumen, jalankan perintah berikut:

    gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Ganti kode berikut:

    • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pool
    • WORKFORCE_POOL_ID: ID workforce identity pool
    • SAML_METADATA_FILE_PATH: jalur metadata SAML

Batasan penghapusan kunci

Google Cloud menolak pernyataan yang ditandatangani dengan kunci yang dihapus.

Merepresentasikan pengguna workforce pool dalam kebijakan IAM

Tabel berikut menunjukkan ID utama yang Anda gunakan untuk memberikan peran kepada pengguna tunggal, sekelompok pengguna, pengguna yang memiliki klaim tertentu, atau semua pengguna dari workforce pool.

Identitas Format ID
Identitas tunggal dalam workforce identity pool principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
Semua identitas workforce dalam grup principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
Semua identitas workforce dengan nilai atribut tertentu principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Semua identitas dalam workforce identity pool principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*

Memberikan peran IAM ke akun utama

Anda dapat memberikan peran ke akun utama, seperti identitas tunggal, sekelompok identitas, atau keseluruhan pool.

Untuk memberikan peran pada project kepada akun utama, jalankan perintah berikut:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="ROLE" \
    --member="PRINCIPAL"

Ganti kode berikut:

  • PROJECT_ID: project ID
  • ROLE: peran yang akan ditetapkan
  • PRINCIPAL: akun utama; lihat ID utama untuk Workforce Identity Federation.

Pada contoh berikut, perintah memberikan peran Storage Admin (roles/storage.admin) ke semua identitas dalam grup GROUP_ID:

gcloud projects add-iam-policy-binding my-project \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Untuk mengetahui informasi selengkapnya tentang format utama, lihat ID utama untuk Workforce Identity Federation.

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