Mengonfigurasi Workforce Identity Federation dengan Microsoft Entra ID dan pengguna yang login

Panduan ini menunjukkan cara mengonfigurasi Workforce Identity Federation dengan Microsoft Entra ID dan mengelola akses ke Google Cloud. Pengguna identitas Microsoft Entra ID kemudian dapat mengakses layanan Google Cloud yang mendukung Workforce Identity Federation.

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. Di Microsoft Entra ID, pastikan Token ID diaktifkan untuk alur implisit. Untuk mengetahui informasi selengkapnya, lihat [Mengaktifkan alur implisit](https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-register-applications#enable-id-token-implicit-grant).
  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 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 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:

  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 aplikasi Microsoft Entra ID

Bagian ini menjelaskan langkah-langkah untuk membuat aplikasi Microsoft Entra ID menggunakan portal admin Microsoft Entra. Untuk detail lainnya, lihat Apa yang dimaksud dengan autentikasi.

Workforce identity pool mendukung federasi menggunakan protokol OIDC dan SAML.

OIDC

Untuk membuat pendaftaran aplikasi Microsoft yang menggunakan protokol OIDC, lakukan langkah-langkah berikut:

  1. Login ke portal administrator Microsoft Entra.
  2. Buka Identity > Applications > App registrations.
  3. Untuk mulai mengonfigurasi pendaftaran aplikasi, lakukan hal berikut:

    1. Klik New registration.
    2. Masukkan nama untuk aplikasi Anda.
    3. Di Jenis akun yang didukung, pilih salah satu opsi.
    4. Di bagian URI Pengalihan, pada menu drop-down Pilih platform, pilih Web. Di kolom teks, masukkan URL pengalihan. 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: azure-ad-oidc-provider. Untuk mengetahui informasi tentang cara memformat ID, lihat bagian Parameter kueri dalam dokumentasi API.
    5. Untuk membuat pendaftaran aplikasi, klik Daftar.

  4. Opsional: Untuk mengonfigurasi klaim grup, lakukan tindakan berikut:

    1. Buka pendaftaran aplikasi Microsoft Entra ID.
    2. Klik Token konfigurasi.
    3. Klik Tambahkan klaim grup. Untuk menggunakan contoh pemetaan atribut yang disediakan nanti dalam panduan ini, Anda harus membuat atribut department kustom.
    4. Pilih jenis grup yang akan ditampilkan. Untuk detail selengkapnya, lihat Mengonfigurasi klaim opsional grup.

SAML

Untuk membuat aplikasi Microsoft yang menggunakan protokol SAML, lakukan langkah-langkah berikut:

  1. Login ke Portal Microsoft Azure.
  2. Buka Azure Active Directory > Aplikasi perusahaan.
  3. Untuk mulai mengonfigurasi aplikasi perusahaan, lakukan hal berikut:

    1. Klik Aplikasi baru > Buat aplikasi Anda sendiri.
    2. Masukkan nama untuk aplikasi Anda.
    3. Klik Create.
    4. Buka Single sign-on > SAML.
    5. Update Konfigurasi Basic SAML sebagai berikut:

      1. Di kolom Identifier (ID Entitas), masukkan nilai berikut:

        https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
        
      2. Di kolom Reply URL (Assertion Consumer Service URL), 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 identitiy pool yang Anda buat sebelumnya dalam panduan ini
        • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pilihan Anda; misalnya: azure-ad-oidc-provider. Untuk mengetahui informasi tentang cara memformat ID, lihat bagian Parameter kueri dalam dokumentasi API.
      3. Jika Anda ingin mengaktifkan login yang dimulai dengan IdP, tetapkan kolom Status Relai ke nilai berikut:

        https://console.cloud.google/
        
      4. Untuk menyimpan konfigurasi aplikasi SAML, klik Simpan.

  4. Untuk mengonfigurasi klaim grup, lakukan hal berikut. Untuk menggunakan contoh pemetaan atribut yang disediakan nanti dalam panduan ini, Anda harus membuat atribut department kustom.

    1. Buka aplikasi Microsoft Entra ID Anda.
    2. Klik Single sign-on.
    3. Di bagian Attributes & Claims, klik Edit.
    4. Klik Tambahkan klaim grup.
    5. Pilih jenis grup yang akan ditampilkan. Untuk detail selengkapnya, baca Menambahkan klaim grup ke token untuk aplikasi SAML menggunakan konfigurasi SSO.

Membuat penyedia workforce identity pool Microsoft Entra ID

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 kumpulan identitas tenaga kerja untuk integrasi aplikasi Microsoft Entra ID, menggunakan protokol OIDC, lakukan hal berikut:

  1. Untuk mendapatkan URI penerbit untuk aplikasi Microsoft Entra ID Anda, lakukan hal berikut:

    1. Buka pendaftaran aplikasi Microsoft Entra ID.
    2. Klik Endpoint.
    3. Buka dokumen metadata OpenID Connect di tab baru.
    4. Di JSON, salin nilai issuer.
  2. Untuk mendapatkan client ID aplikasi Microsoft Entra ID, lakukan hal berikut:

    1. Buka pendaftaran aplikasi Microsoft Entra ID.
    2. Di ID Aplikasi (klien), salin nilainya.
  3. Untuk membuat penyedia workforce identity pool OIDC untuk login berbasis web, lakukan hal berikut:

    Konsol

    Alur kode

    Untuk membuat penyedia OIDC yang menggunakan alur kode otorisasi untuk login berbasis web, lakukan hal berikut:

    1. Untuk mendapatkan rahasia klien Microsoft Entra ID, lakukan hal berikut:

      1. Buka pendaftaran aplikasi Microsoft Entra ID.

      2. Di Sertifikat & rahasia, klik tab Rahasia klien.

      3. Untuk menambahkan rahasia klien, klik + Rahasia klien baru.

      4. Dalam dialog Tambahkan rahasia klien, masukkan informasi sesuai kebutuhan.

      5. Untuk membuat rahasia klien, klik Tambahkan.

      6. Di tab Rahasia klien, temukan rahasia klien baru Anda.

      7. Di kolom Nilai untuk rahasia klien baru Anda, klik Salin.

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

          Untuk Microsoft Entra ID dengan autentikasi OIDC, sebaiknya gunakan pemetaan atribut berikut:

          google.subject=assertion.sub,
          google.groups=assertion.groups,
          google.display_name=assertion.preferred_username
          

          Contoh ini memetakan atribut IdP subject, groups, dan preferred_username ke atribut Google Cloud google.subject, google.groups, dan google.display_name.

        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 Kondisi Atribut, masukkan kondisi dalam format CEL; misalnya, untuk membatasi atribut ipaddr ke rentang IP tertentu yang dapat Anda tetapkan kondisi assertion.ipaddr.startsWith('98.11.12.'). .
      8. Untuk membuat penyedia, klik Kirim.

    Alur implisit

    Untuk membuat penyedia OIDC yang menggunakan alur implisit untuk login berbasis web, 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.

        Untuk Microsoft Entra ID dengan autentikasi OIDC, sebaiknya gunakan pemetaan atribut berikut:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        Contoh ini memetakan atribut IdP subject, groups, dan preferred_username ke atribut Google Cloud google.subject, google.groups, dan google.display_name.

      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 Kondisi Atribut, masukkan kondisi dalam format CEL; misalnya, untuk membatasi atribut ipaddr ke rentang IP tertentu yang dapat Anda tetapkan kondisi assertion.ipaddr.startsWith('98.11.12.'). .

    8. Untuk membuat penyedia, klik Kirim.

    gcloud

    Untuk membuat penyedia yang mendukung protokol OIDC, lakukan hal berikut:

    Alur kode

    Untuk membuat penyedia OIDC yang menggunakan alur kode otorisasi untuk login berbasis web, lakukan hal berikut:

    1. Di aplikasi Microsoft Entra ID, untuk mendapatkan rahasia klien, lakukan hal berikut:

      1. Buka pendaftaran aplikasi Microsoft Entra ID.

      2. Di Sertifikat & rahasia, klik tab Rahasia klien.

      3. Untuk menambahkan rahasia klien, klik + Rahasia klien baru.

      4. Dalam dialog Tambahkan rahasia klien, masukkan informasi sesuai kebutuhan.

      5. Untuk membuat rahasia klien, klik Tambahkan.

      6. Di tab Rahasia klien, temukan rahasia klien baru Anda.

      7. Di kolom Nilai untuk rahasia klien baru Anda, klik Salin.

    2. Di Konsol Google Cloud, untuk membuat penyedia OIDC yang menggunakan alur kode, lakukan hal 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. Untuk Microsoft Entra ID dengan autentikasi OIDC, sebaiknya gunakan pemetaan atribut berikut:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        Contoh ini memetakan atribut IdP subject, groups, dan preferred_username ke atribut Google Cloud google.subject, google.groups, dan google.display_name.

      • ATTRIBUTE_CONDITION: Kondisi atribut; misalnya, untuk membatasi atribut ipaddr ke rentang IP tertentu, Anda dapat menetapkan kondisi assertion.ipaddr.startsWith('98.11.12.') .
      • 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, lakukan hal berikut:

    1. Untuk mengaktifkan token ID di aplikasi Microsoft Entra ID, lakukan hal berikut:

      1. Buka pendaftaran aplikasi Microsoft Entra ID.
      2. Di bagian Autentikasi, centang kotak token ID.
      3. Klik Simpan.
    2. Untuk membuat penyedia, 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. Untuk Microsoft Entra ID dengan autentikasi OIDC, sebaiknya gunakan pemetaan atribut berikut:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        Contoh ini memetakan atribut IdP subject, groups, dan preferred_username ke atribut Google Cloud google.subject, google.groups, dan google.display_name.

      • ATTRIBUTE_CONDITION: Kondisi atribut; misalnya, untuk membatasi atribut ipaddr ke rentang IP tertentu, Anda dapat menetapkan kondisi assertion.ipaddr.startsWith('98.11.12.') .
      • 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.

Membuat penyedia workforce identity 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 menyimpan metadata SAML untuk aplikasi Microsoft Entra ID, lakukan hal berikut:

  1. Buka aplikasi Microsoft Entra ID Anda.
  2. Klik Single sign-on.
  3. Di bagian Sertifikat SAML, download Federation Metadata XML.
  4. Simpan metadata sebagai file XML lokal.

Untuk membuat penyedia workforce identity pool SAML, jalankan perintah 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="XML_METADATA_PATH" \
    --attribute-mapping="ATTRIBUTE_MAPPING" \
    --attribute-condition="ATTRIBUTE_CONDITION" \
    --location=global

Ganti kode berikut:

  • WORKFORCE_PROVIDER_ID: ID penyedia.
  • WORKFORCE_POOL_ID: ID workforce identity pool.
  • DISPLAY_NAME: Nama tampilan.
  • DESCRIPTION: Deskripsi.
  • XML_METADATA_PATH: Jalur ke file metadata berformat XML dengan metadata konfigurasi untuk penyedia identitas 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 opsional. 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.

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

Untuk mengonfigurasi Microsoft Entra ID guna mengenkripsi token SAML, lihat Mengonfigurasi enkripsi token SAML Azure Active Directory.

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:

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 identitas tunggal

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 project
  • WORKFORCE_POOL_ID: ID workforce identity pool
  • SUBJECT_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 project
  • WORKFORCE_POOL_ID: ID workforce identity pool
  • DEPARTMENT_VALUE: nilai attribute.department yang dipetakan

Menggunakan grup yang dipetakan

Untuk memberikan peran Storage Admin (roles/storage.admin) ke semua identitas dalam grup GROUP_ID 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 project
  • WORKFORCE_POOL_ID: ID workforce identity pool
  • GROUP_ID: grup dalam klaim google.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:

  1. Buka halaman login konsol (gabungan).

    Buka konsol (gabungan)

  2. Masukkan nama penyedia, dengan format berikut:
    locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    1. Masukkan kredensial pengguna di Microsoft Entra ID, jika diminta.

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 dengan gcloud 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 dengan gcloud 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 Microsoft Entra ID dengan gcloud CLI, lakukan langkah-langkah berikut:

OIDC

  1. Ikuti langkah-langkah di Mengirim permintaan login. Login akun pengguna ke aplikasi Anda dengan Microsoft Entra ID menggunakan OIDC.

  2. Salin token ID dari parameter id_token URL alihan dan simpan ke file di lokasi yang aman di komputer lokal Anda. Pada langkah berikutnya, tetapkan PATH_TO_OIDC_ID_TOKEN ke jalur pada file ini.

  3. Buat file konfigurasi yang mirip dengan contoh nanti di langkah ini dengan menjalankan 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 pool.
    • WORKFORCE_PROVIDER_ID: ID penyedia kumpulan identitas tenaga kerja.
    • PATH_TO_OIDC_ID_TOKEN: jalur ke lokasi file tempat token IdP disimpan.
    • WORKFORCE_POOL_USER_PROJECT: nomor atau ID project yang digunakan untuk kuota dan penagihan. Akun utama harus memiliki izin serviceusage.services.use di project ini.

    Setelah perintah selesai, file konfigurasi berikut akan dibuat oleh Microsoft Entra ID:

    {
      "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"
      }
    }
    
  4. Buka gcloud CLI dan jalankan perintah berikut:

    gcloud auth login --cred-file=PATH_TO_OIDC_CREDENTIALS
    

    Ganti PATH_TO_OIDC_CREDENTIALS dengan jalur ke file output dari langkah sebelumnya.

    Gcloud CLI secara transparan memposting kredensial Anda ke endpoint Layanan Token Keamanan. Di endpoint, token tersebut ditukar dengan token akses Google Cloud sementara.

    Kini Anda dapat menjalankan perintah gcloud CLI ke Google Cloud.

SAML

  1. Buat pengguna login ke aplikasi Microsoft Entra ID dan dapatkan Respons SAML.

  2. Simpan Respons SAML yang ditampilkan oleh Microsoft Entra ID di lokasi yang aman di komputer lokal Anda, lalu simpan jalurnya sebagai berikut:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. 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:saml2 \
        --credential-source-file=SAML_ASSERTION_PATH  \
        --workforce-pool-user-project=PROJECT_ID  \
        --output-file=config.json
    

    Ganti kode berikut:

    • WORKFORCE_PROVIDER_ID: ID workforce identity pool yang Anda buat sebelumnya dalam panduan ini
    • WORKFORCE_POOL_ID: ID workforce 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"
    }
    
  4. Untuk login ke gcloud menggunakan pertukaran token, jalankan perintah berikut:

    gcloud auth login --cred-file=config.json
    

    gcloud kemudian secara transparan menukar kredensial Microsoft Entra ID 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].
  5. Untuk mencantumkan akun berkredensial dan akun aktif Anda, jalankan perintah berikut:

    gcloud auth list
    

Pengujian 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 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)

Kini Anda dapat menjalankan perintah gcloud CLI ke Google Cloud.

  • Buka 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