Federasi identitas beban kerja

Artikel ini memberikan gambaran umum tentang federasi identitas beban kerja untuk beban kerja perangkat lunak. Menggunakan federasi identitas beban kerja memungkinkan Anda mengakses sumber daya yang dilindungi Microsoft Entra tanpa perlu mengelola rahasia (untuk skenario yang didukung).

Anda dapat menggunakan federasi identitas beban kerja dalam skenario seperti GitHub Actions, beban kerja yang berjalan di Kubernetes, atau beban kerja yang berjalan di platform komputasi di luar Azure.

Mengapa menggunakan federasi identitas beban kerja?

Tonton video ini untuk mempelajari mengapa Anda akan menggunakan federasi identitas beban kerja.

Biasanya, beban kerja perangkat lunak (seperti aplikasi, layanan, skrip, atau aplikasi berbasis kontainer) membutuhkan identitas untuk mengautentikasi dan mengakses sumber daya atau berkomunikasi dengan layanan lain. Saat beban kerja ini berjalan di Azure, Anda dapat menggunakan identitas terkelola dan platform Azure mengelola kredensial untuk Anda. Namun, Anda hanya dapat menggunakan identitas terkelola untuk beban kerja perangkat lunak yang berjalan di Azure. Untuk beban kerja perangkat lunak yang berjalan di luar Azure, Anda perlu menggunakan kredensial aplikasi (rahasia atau sertifikat) untuk mengakses sumber daya yang dilindungi Microsoft Entra (seperti Azure, Microsoft Graph, Microsoft 365, atau sumber daya pihak ketiga). Informasi masuk ini menimbulkan risiko keamanan dan harus disimpan dengan aman dan diputar secara teratur. Anda juga menjalankan risiko downtime layanan jika informasi masuk kedaluwarsa.

Anda menggunakan federasi identitas beban kerja untuk mengonfigurasi identitas terkelola atau pendaftaran aplikasi yang ditetapkan pengguna di ID Microsoft Entra untuk mempercayai token dari Penyedia Identitas Eksternal (IdP), seperti GitHub atau Google. Identitas terkelola atau pendaftaran aplikasi yang ditetapkan pengguna di ID Microsoft Entra menjadi identitas untuk beban kerja perangkat lunak yang berjalan, misalnya, dalam alur kerja Kubernetes atau GitHub Actions lokal. Setelah hubungan kepercayaan tersebut dibuat, beban kerja perangkat lunak eksternal Anda bertukar token tepercaya dari IdP eksternal untuk token akses dari platform identitas Microsoft. Beban kerja perangkat lunak Anda menggunakan token akses tersebut untuk mengakses sumber daya yang dilindungi Microsoft Entra tempat beban kerja telah diberikan akses. Anda menghilangkan beban pemeliharaan mengelola kredensial secara manual dan menghilangkan risiko kebocoran rahasia atau memiliki sertifikat kedaluwarsa.

Skenario yang didukung

Skenario berikut didukung untuk mengakses sumber daya yang dilindungi Microsoft Entra menggunakan federasi identitas beban kerja:

  • Beban kerja yang berjalan pada kluster Kubernetes apa pun (Azure Kubernetes Service (AKS), Amazon Web Services EKS, Google Kubernetes Engine (GKE), atau lokal). Buat hubungan kepercayaan antara identitas atau aplikasi terkelola yang ditetapkan pengguna di ID Microsoft Entra dan beban kerja Kubernetes (dijelaskan dalam gambaran umum identitas beban kerja).
  • GitHub Actions. Pertama, konfigurasikan hubungan kepercayaan antara identitas atau aplikasi terkelola yang ditetapkan pengguna di ID Microsoft Entra dan repositori GitHub di pusat admin Microsoft Entra atau menggunakan Microsoft Graph. Lalu Konfigurasikan alur kerja tindakan GitHub untuk mendapatkan token akses dari penyedia identitas Microsoft dan mengakses sumber daya Azure.
  • Google Cloud. Pertama, konfigurasikan hubungan kepercayaan antara identitas atau aplikasi terkelola yang ditetapkan pengguna di ID Microsoft Entra dan identitas di Google Cloud. Kemudian konfigurasikan beban kerja perangkat lunak Anda yang berjalan di Google Cloud untuk mendapatkan token akses dari penyedia identitas Microsoft dan mengakses sumber daya yang dilindungi Microsoft Entra. Lihat Mengakses sumber daya yang dilindungi Microsoft Entra dari aplikasi di Google Cloud.
  • Beban kerja yang berjalan di Amazon Web Services (AWS). Pertama, konfigurasikan hubungan kepercayaan antara identitas atau aplikasi terkelola yang ditetapkan pengguna di ID Microsoft Entra dan identitas di Amazon Cognito. Kemudian konfigurasikan beban kerja perangkat lunak Anda yang berjalan di AWS untuk mendapatkan token akses dari penyedia identitas Microsoft dan mengakses sumber daya yang dilindungi Microsoft Entra. Lihat Federasi identitas beban kerja dengan AWS.
  • Beban kerja lain yang berjalan di platform komputasi di luar Azure. Konfigurasikan hubungan kepercayaan antara identitas atau aplikasi terkelola yang ditetapkan pengguna Anda di ID Microsoft Entra dan IdP eksternal untuk platform komputasi Anda. Anda dapat menggunakan token yang dikeluarkan oleh platform tersebut untuk mengautentikasi dengan platform identitas Microsoft dan memanggil API di ekosistem Microsoft. Gunakan aliran informasi masuk klien untuk mendapatkan token akses dari platform identitas Microsoft, melewati JWT penyedia identitas alih-alih membuatnya sendiri menggunakan sertifikat yang disimpan.
  • SPIFFE dan SPIRE adalah serangkaian standar agnostik platform dan sumber terbuka untuk menyediakan identitas untuk beban kerja perangkat lunak Anda yang disebarkan di seluruh platform dan vendor cloud. Pertama, konfigurasikan hubungan kepercayaan antara identitas atau aplikasi terkelola yang ditetapkan pengguna Anda di ID Microsoft Entra dan ID SPIFFE untuk beban kerja eksternal. Kemudian konfigurasikan beban kerja perangkat lunak eksternal Anda untuk mendapatkan token akses dari penyedia identitas Microsoft dan mengakses sumber daya yang dilindungi Microsoft Entra. Lihat Federasi identitas beban kerja dengan SPIFFE dan SPIRE.
  • Buat koneksi layanan baru di Azure Pipelines (pratinjau). Buat koneksi layanan Azure Resource Manager menggunakan federasi identitas beban kerja.

Catatan

Token yang dikeluarkan ID Microsoft Entra mungkin tidak digunakan untuk alur identitas gabungan. Alur kredensial identitas federasi tidak mendukung token yang dikeluarkan oleh ID Microsoft Entra.

Cara kerjanya

Buat hubungan kepercayaan antara IdP eksternal dan identitas atau aplikasi terkelola yang ditetapkan pengguna di ID Microsoft Entra. Kredensial identitas gabungan digunakan untuk menunjukkan token mana dari IdP eksternal yang harus dipercaya oleh aplikasi atau identitas terkelola Anda. Anda mengonfigurasi identitas federasi:

  • Pada identitas terkelola yang ditetapkan pengguna melalui pusat admin Microsoft Entra, Azure CLI, Azure PowerShell, Azure SDK, dan templat Azure Resource Manager (ARM). Beban kerja eksternal menggunakan token akses untuk mengakses sumber daya yang dilindungi Microsoft Entra tanpa perlu mengelola rahasia (dalam skenario yang didukung). Langkah-langkah untuk mengonfigurasi hubungan kepercayaan berbeda, tergantung pada skenario dan IdP eksternal.
  • Pada pendaftaran aplikasi di pusat admin Microsoft Entra atau melalui Microsoft Graph. Konfigurasi ini memungkinkan Anda mendapatkan token akses untuk aplikasi Anda tanpa perlu mengelola rahasia di luar Azure. Untuk informasi selengkapnya, pelajari cara mengonfigurasi aplikasi untuk mempercayai penyedia identitas eksternal.

Alur kerja untuk bertukar token eksternal untuk token akses adalah sama, namun, untuk semua skenario. Diagram berikut menunjukkan alur kerja umum beban kerja yang bertukar token eksternal untuk token akses lalu mengakses sumber daya yang dilindungi Microsoft Entra.

Diagram memperlihatkan token eksternal yang ditukar dengan token akses dan mengakses Azure

  1. Beban kerja eksternal (seperti alur kerja tindakan GitHub) meminta token dari IdP eksternal (seperti GitHub).
  2. IdP eksternal mengeluarkan token ke beban kerja eksternal.
  3. Beban kerja eksternal (tindakan masuk dalam alur kerja GitHub, misalnya) mengirim token ke platform identitas Microsoft dan meminta token akses.
  4. platform identitas Microsoft memeriksa hubungan kepercayaan pada identitas terkelola atau pendaftaran aplikasi yang ditetapkan pengguna dan memvalidasi token eksternal terhadap URL penerbit OpenID Koneksi (OIDC) pada IdP eksternal.
  5. Ketika cek terpenuhi, platform identitas Microsoft mengeluarkan token akses ke beban kerja eksternal.
  6. Beban kerja eksternal mengakses sumber daya yang dilindungi Microsoft Entra menggunakan token akses dari platform identitas Microsoft. Alur kerja tindakan GitHub, misalnya, menggunakan token akses untuk menerbitkan aplikasi web ke Azure App Service.

platform identitas Microsoft hanya menyimpan 100 kunci penandatanganan pertama saat diunduh dari titik akhir OIDC IdP eksternal. Jika IdP eksternal mengekspos lebih dari 100 kunci penandatanganan, Anda mungkin mengalami kesalahan saat menggunakan federasi identitas beban kerja.

Langkah berikutnya

Pelajari selengkapnya tentang cara kerja federasi identitas beban kerja:

  • Cara membuat, menghapus, mendapatkan, atau memperbarui kredensial identitas gabungan pada identitas terkelola yang ditetapkan pengguna.
  • Cara membuat, menghapus, mendapatkan, atau memperbarui kredensial identitas federasi pada pendaftaran aplikasi.
  • Baca ringkasan identitas beban kerja untuk mempelajari cara mengonfigurasi beban kerja Kubernetes untuk mendapatkan token akses dari penyedia identitas Microsoft dan mengakses sumber daya yang dilindungi Microsoft Entra.
  • Baca dokumentasi GitHub Actions untuk mempelajari selengkapnya tentang mengonfigurasi alur kerja GitHub Actions Anda untuk mendapatkan token akses dari penyedia identitas Microsoft dan mengakses sumber daya yang dilindungi Microsoft Entra.
  • Bagaimana MICROSOFT Entra ID menggunakan pemberian kredensial klien OAuth 2.0 dan pernyataan klien yang dikeluarkan oleh IdP lain untuk mendapatkan token.
  • Untuk informasi tentang format JWT yang diperlukan yang dibuat oleh penyedia identitas eksternal, baca tentang format pernyataan.