Bagikan melalui


Mengonfigurasi aplikasi untuk memercayai penyedia identitas eksternal

Artikel ini menjelaskan cara mengelola kredensial identitas federasi pada aplikasi di ID Microsoft Entra. Informasi masuk identitas gabungan menciptakan hubungan kepercayaan antara aplikasi dan penyedia identitas eksternal (IdP).

Anda kemudian dapat mengonfigurasi beban kerja perangkat lunak eksternal untuk menukar token dari IdP eksternal dengan token akses dari platform identitas Microsoft. Beban kerja eksternal dapat mengakses sumber daya yang dilindungi Microsoft Entra tanpa perlu mengelola rahasia (dalam skenario yang didukung). Untuk mempelajari selengkapnya tentang alur kerja pertukaran token, baca tentang gabungan identitas beban kerja.

Dalam artikel ini, Anda mempelajari cara membuat, mencantumkan, dan menghapus kredensial identitas gabungan pada aplikasi di ID Microsoft Entra.

Pertimbangan dan pembatasan penting

Untuk membuat, memperbarui, atau menghapus kredensial identitas federasi, akun yang melakukan tindakan harus memiliki peran Administrator Aplikasi, Pengembang Aplikasi, Administrator Aplikasi Cloud, atau Pemilik Aplikasi. Izin microsoft.directory/applications/credentials/update diperlukan untuk memperbarui kredensial identitas federasi.

Maksimal 20 kredensial identitas gabungan dapat ditambahkan ke aplikasi atau identitas terkelola yang ditetapkan pengguna.

Saat Anda mengonfigurasi kredensial identitas federasi, ada beberapa informasi penting untuk diberikan:

  • penerbit dan subjek adalah informasi penting yang diperlukan untuk menyiapkan hubungan kepercayaan. Kombinasi issuer dan subject harus unik di aplikasi. Saat beban kerja perangkat lunak eksternal meminta platform identitas Microsoft untuk menukar token eksternal dengan token akses, nilai penerbit dan subjek dari kredensial identitas federasi diperiksa terhadap klaim issuer dan subject yang diberikan dalam token eksternal. Jika pemeriksaan validasi itu lolos, platform identitas Microsoft akan menerbitkan token akses ke beban kerja perangkat lunak eksternal.

  • penerbit adalah URL penyedia identitas eksternal dan harus cocok dengan issuer klaim token eksternal yang ditukarkan. Harus diisi. Jika klaim issuer memiliki spasi di depan atau di belakang nilai, pertukaran token akan diblokir. Bidang ini memiliki batas karakter 600 karakter.

  • subjek adalah pengidentifikasi beban kerja perangkat lunak eksternal dan harus cocok dengan klaim sub (subject) dari token eksternal yang ditukarkan. subjek tidak memiliki format tetap, karena setiap IdP menggunakan formatnya sendiri - terkadang GUID, terkadang pengidentifikasi yang dibatasi titik dua, terkadang string arbitrer. Bidang ini memiliki batas karakter 600 karakter.

    Penting

    Nilai pengaturan subjek harus sama persis dengan konfigurasi pada konfigurasi alur kerja GitHub. Jika tidak, platform identitas Microsoft akan melihat token eksternal yang masuk dan menolak pertukaran untuk token akses. Anda tidak akan mendapatkan kesalahan, pertukaran akan gagal tanpa kesalahan.

    Penting

    Jika Anda tidak sengaja menambahkan informasi beban kerja eksternal yang salah di pengaturan subjek, kredensial identitas gabungan berhasil dibuat tanpa kesalahan. Kesalahan tidak menjadi jelas sampai pertukaran token gagal.

  • audiens mencantumkan audiens yang dapat muncul di token eksternal. Harus diisi. Anda harus menambahkan satu nilai audiens, yang memiliki batas 600 karakter. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange". Menjelaskan apa yang harus diterima oleh platform identitas Microsoft dalam klaim aud di token yang masuk.

  • nama adalah pengidentifikasi unik untuk informasi masuk identitas gabungan. Harus diisi. Bidang ini memiliki batas karakter 3-120 karakter dan harus ramah URL. Karakter alfanumerik, tanda hubung, atau garis bawah didukung, karakter pertama harus alfanumerik saja.  Ini tidak dapat diubah setelah dibuat.

  • deskripsi adalah deskripsi informasi masuk identitas gabungan yang diberikan pengguna. Opsional. Deskripsi tidak divalidasi atau diperiksa oleh ID Microsoft Entra. Bidang ini memiliki batas 600 karakter.

Karakter kartubebas tidak didukung dalam nilai properti kredensial identitas gabungan apa pun.

Untuk mempelajari selengkapnya tentang wilayah yang didukung, saatnya untuk menyebarluaskan pembaruan kredensial federasi, penerbit yang didukung, dan lainnya, baca Pertimbangan dan pembatasan penting untuk kredensial identitas gabungan.

Prasyarat

Buat pendaftaran aplikasi di ID Microsoft Entra. Berikan akses aplikasi Anda ke sumber daya Azure yang ditargetkan oleh beban kerja perangkat lunak eksternal Anda.

Temukan ID objek aplikasi (bukan ID aplikasi (klien)), yang Anda perlukan dalam langkah-langkah berikut. Anda dapat menemukan ID objek aplikasi di pusat admin Microsoft Entra. Buka daftar pendaftaran aplikasi dan pilih pendaftaran aplikasi Anda. Di Gambaran umum->Penting, temukan ID Objek.

Dapatkan informasi subjek dan pengeluar sertifikat untuk IdP eksternal dan beban kerja perangkat lunak, yang Anda perlukan dalam langkah-langkah berikut.

Mengonfigurasi info masuk identitas gabungan pada aplikasi

GitHub Actions

Untuk menambahkan identitas federasi untuk tindakan GitHub, ikuti langkah-langkah berikut:

  1. Temukan pendaftaran aplikasi Anda di pengalaman pendaftaran aplikasi pusat admin Microsoft Entra. Pilih Sertifikat & rahasia di panel navigasi kiri, pilih tab Kredensial federasi, dan pilih Tambahkan kredensial.

  2. Di kotak drop-down Skenario informasi masuk gabungan, pilih Tindakan GitHub yang menyebarkan sumber daya Azure.

  3. Tentukan Organisasi dan Repositori untuk alur kerja Tindakan GitHub Anda.

  4. Untuk Jenis entitas, pilih Lingkungan, Cabang, Permintaan pull, atau Tag dan tentukan nilainya. Nilai harus sama persis dengan konfigurasi di alur kerja GitHub. Pencocokan pola tidak didukung untuk cabang dan tag. Tentukan lingkungan jika alur kerja pendorongan Anda berjalan terhadap banyak cabang atau tag. Untuk info selengkapnya, baca contoh ini.

  5. Tambahkan Nama untuk kredensial gabungan.

  6. Bidang Pengeluar sertifikat, Audiens, dan Pengidentifikasi subjek terisi otomatis berdasarkan nilai yang Anda masukkan.

  7. Pilih Tambahkan untuk mengonfigurasi kredensial federasi.

    Screenshot of the Add a credential window, showing sample values.

Gunakan nilai berikut dari pendaftaran aplikasi Microsoft Entra Anda untuk alur kerja GitHub Anda:

  • AZURE_CLIENT_IDID Aplikasi (klien)

  • AZURE_TENANT_IDID Direktori (penyewa)

    Cuplikan layar berikut menunjukkan cara menyalin ID aplikasi dan ID penyewa.

    Screenshot that demonstrates how to copy the application ID and tenant ID from Microsoft Entra admin center.

  • AZURE_SUBSCRIPTION_ID ID langganan Anda. Untuk mendapatkan ID langganan, buka Langganan di portal Azure dan temukan langganan Anda. Kemudian, salin ID Langganan.

Contoh jenis entitas

Contoh cabang

Untuk alur kerja yang dipicu oleh peristiwa permintaan push atau pull di cabang utama:

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

Tentukan Jenis entitasCabang dan nama cabang GitHub "utama".

Contoh lingkungan

Untuk Pekerjaan yang terikat dengan lingkungan bernama "produksi":

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

Tentukan Jenis entitasLingkungan dan nama lingkungan GitHub "produksi".

Contoh tag

Misalnya, untuk alur kerja yang dipicu oleh pendorongan ke tag bernama "v2":

on:
  push:
    # Sequence of patterns matched against refs/heads
    branches:
      - main
      - 'mona/octocat'
      - 'releases/**'
    # Sequence of patterns matched against refs/tags
    tags:
      - v2
      - v1.*

Tentukan Jenis entitasTag dan nama tag GitHub "v2".

Contoh permintaan pull

Untuk alur kerja yang dipicu oleh peristiwa permintaan pull, tentukan Jenis entitas dari Permintaan pull

Kubernetes

Temukan pendaftaran aplikasi Anda di pengalaman pendaftaran aplikasi pusat admin Microsoft Entra. Pilih Sertifikat & rahasia di panel navigasi kiri, pilih tab Kredensial federasi, dan pilih Tambahkan kredensial.

Pilih skenario Kubernetes mengakses sumber daya Azure dari menu dropdown.

Isi bidang URL pengeluar sertifikat kluster, Namespace, Nama akun layanan, dan Nama:

  • URL pengeluar sertifikat kluster adalah URL pengeluar sertifikat OIDC untuk kluster terkelola atau URL Pengeluar Sertifikat OIDC untuk kluster yang dikelola sendiri.
  • Nama akun layanan adalah nama akun layanan Kubernetes, yang memberikan identitas untuk proses yang berjalan dalam Pod.
  • Namespace adalah namespace akun layanan.
  • Nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.

Penyedia identitas lainnya

Temukan pendaftaran aplikasi Anda di pengalaman pendaftaran aplikasi pusat admin Microsoft Entra. Pilih Sertifikat & rahasia di panel navigasi kiri, pilih tab Kredensial federasi, dan pilih Tambahkan kredensial.

Pilih skenario Pengeluar sertifikat lain dari menu dropdown.

Tentukan bidang berikut (menggunakan beban kerja perangkat lunak yang berjalan di Google Cloud sebagai contoh):

  • Nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.
  • Pengidentifikasi subjek: harus cocok dengan klaim sub dalam token yang dikeluarkan oleh IdP eksternal. Dalam contoh ini menggunakan Google Cloud, subjek adalah ID Unik dari akun layanan yang Anda rencanakan untuk digunakan.
  • Pengeluar sertifikat: harus cocok dengan klaim iss dalam token yang dikeluarkan oleh IdP eksternal. URL yang mematuhi spesifikasi Penemuan OIDC. ID Microsoft Entra menggunakan URL pengeluar sertifikat ini untuk mengambil kunci yang diperlukan untuk memvalidasi token. Untuk Google Cloud, pengeluar sertifikat adalah "https://accounts.google.com".

Daftar kredensial identitas gabungan di aplikasi

Temukan pendaftaran aplikasi Anda di pengalaman pendaftaran aplikasi pusat admin Microsoft Entra. Pilih Sertifikat & rahasia di panel navigasi kiri dan pilih tab Kredensial federasi. Kredensial federasi yang dikonfigurasi di aplikasi Anda tercantum.

Hapus informasi masuk identitas gabungan dari aplikasi

Temukan pendaftaran aplikasi Anda di pengalaman pendaftaran aplikasi pusat admin Microsoft Entra. Pilih Sertifikat & rahasia di panel navigasi kiri dan pilih tab Kredensial federasi. Kredensial federasi yang dikonfigurasi di aplikasi Anda tercantum.

Untuk menghapus info masuk identitas gabungan, pilih ikon Hapus untuk info masuk.

Prasyarat

  • Buat pendaftaran aplikasi di ID Microsoft Entra. Berikan akses aplikasi Anda ke sumber daya Azure yang ditargetkan oleh beban kerja perangkat lunak eksternal Anda.
  • Temukan ID objek, ID aplikasi (klien), atau URI pengenal aplikasi, yang Anda perlukan dalam langkah-langkah berikut. Anda dapat menemukan nilai-nilai ini di pusat admin Microsoft Entra. Buka daftar aplikasi terdaftar dan pilih pendaftaran aplikasi Anda. Di Gambaran umum->Essentials, dapatkan ID Objek, ID Aplikasi (klien), atau ID Aplikasi URI , yang Anda butuhkan dalam langkah-langkah berikut.
  • Dapatkan informasi subjek dan pengeluar sertifikat untuk IdP eksternal dan beban kerja perangkat lunak, yang Anda perlukan dalam langkah-langkah berikut.

Mengonfigurasi info masuk identitas gabungan pada aplikasi

Jalankan perintah az ad app federated-credential create untuk membuat informasi masuk identitas gabungan baru di aplikasi Anda.

Parameter id menentukan URI pengidentifikasi, ID aplikasi, atau ID objek aplikasi. Parameter parameters menentukan parameter, dalam format JSON, untuk membuat kredensial identitas federasi.

Contoh Tindakan GitHub

Nama menentukan nama informasi masuk identitas gabungan Anda.

Pengeluar sertifikat mengidentifikasi jalur ke penyedia GitHub OIDC: https://token.actions.githubusercontent.com/. Pengeluar sertifikat ini akan dipercaya oleh aplikasi Azure Anda.

subjek mengidentifikasi organisasi, repo, dan lingkungan GitHub untuk alur kerja Tindakan GitHub Anda. Saat alur kerja GitHub Actions meminta platform identitas Microsoft untuk menukar token GitHub dengan token akses, nilai dalam kredensial identitas federasi diperiksa terhadap token GitHub yang disediakan. Sebelum Azure akan memberikan token akses, permintaan harus sesuai dengan ketentuan yang ditentukan di sini.

  • Untuk Pekerjaan yang terikat dengan lingkungan: repo:< Organization/Repository >:environment:< Name >
  • Untuk Pekerjaan yang tidak terikat dengan lingkungan, sertakan jalur referensi untuk cabang/tag berdasarkan jalur referensi yang digunakan untuk memicu alur kerja: repo:< Organization/Repository >:ref:< ref path>. Misalnya, repo:n-username/ node_express:ref:refs/heads/my-branch atau repo:n-username/ node_express:ref:refs/tags/my-tag.
  • Untuk alur kerja yang dipicu oleh peristiwa permintaan tarik: repo:< Organization/Repository >:pull-request.
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
    "name": "Testing",
    "issuer": "https://token.actions.githubusercontent.com",
    "subject": "repo:octo-org/octo-repo:environment:Production",
    "description": "Testing",
    "audiences": [
        "api://AzureADTokenExchange"
    ]
}

Contoh Kubernetes

pengeluar sertifikat adalah URL pengeluar sertifikat akun layanan Anda (URL pengeluar sertifikat OIDC untuk kluster terkelola atau URL Pengeluar Sertifikat OIDC untuk kluster yang dikelola sendiri).

subjek adalah nama subjek dalam token yang diterbitkan ke akun layanan. Kubernetes menggunakan format berikut untuk nama subjek: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.

nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.

audiens mencantumkan audiens yang dapat muncul di token eksternal. Bidang ini wajib diisi. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange".

az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
    "name": "Kubernetes-federated-credential",
    "issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
    "subject": "system:serviceaccount:erp8asle:pod-identity-sa",
    "description": "Kubernetes service account federated credential",
    "audiences": [
        "api://AzureADTokenExchange"
    ]
}

Contoh IdP lainnya

Anda dapat mengonfigurasi informasi masuk identitas gabungan pada aplikasi dan membuat hubungan kepercayaan dengan penyedia identitas eksternal lainnya. Contoh berikut menggunakan beban kerja perangkat lunak yang berjalan di Google Cloud sebagai contoh:

nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.

id: ID objek, ID aplikasi (klien), atau URI pengidentifikasi aplikasi.

subjek: harus cocok dengan klaim sub dalam token yang dikeluarkan oleh IdP eksternal. Dalam contoh ini menggunakan Google Cloud, subjek adalah ID Unik dari akun layanan yang Anda rencanakan untuk digunakan.

pengeluar sertifikat: harus cocok dengan klaim iss dalam token yang dikeluarkan oleh IdP eksternal. URL yang mematuhi spesifikasi Penemuan OIDC. ID Microsoft Entra menggunakan URL pengeluar sertifikat ini untuk mengambil kunci yang diperlukan untuk memvalidasi token. Untuk Google Cloud, pengeluar sertifikat adalah "https://accounts.google.com".

audiens: mencantumkan audiens yang dapat muncul di token eksternal. Bidang ini wajib diisi. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange".

az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
    "name": "GcpFederation",
    "issuer": "https://accounts.google.com",
    "subject": "112633961854638529490",
    "description": "Test GCP federation",
    "audiences": [
        "api://AzureADTokenExchange"
    ]
}

Daftar kredensial identitas gabungan di aplikasi

Jalankan perintah az ad app federated-credential list untuk mencantumkan informasi masuk identitas gabungan pada aplikasi Anda.

Parameter id menentukan URI pengidentifikasi, ID aplikasi, atau ID objek aplikasi.

az ad app federated-credential list --id 00001111-aaaa-2222-bbbb-3333cccc4444

Mendapatkan informasi masuk identitas gabungan di aplikasi

Jalankan perintah az ad app federated-credential show untuk mendapatkan informasi masuk identitas gabungan di aplikasi Anda.

Parameter id menentukan URI pengidentifikasi, ID aplikasi, atau ID objek aplikasi.

federasi-kredensial-id menentukan ID atau nama informasi masuk identitas gabungan.

az ad app federated-credential show --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb

Hapus informasi masuk identitas gabungan dari aplikasi

Jalankan perintah az ad app federated-credential delete untuk menghapus informasi masuk identitas gabungan dari aplikasi Anda.

Parameter id menentukan URI pengidentifikasi, ID aplikasi, atau ID objek aplikasi.

federasi-kredensial-id menentukan ID atau nama informasi masuk identitas gabungan.

az ad app federated-credential delete --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb

Prasyarat

  • Untuk menjalankan contoh skrip, Anda memiliki dua opsi:
    • Gunakan Azure Cloud Shell, yang dapat Anda buka menggunakan tombol Coba di sudut kanan atas blok kode.
    • Jalankan skrip secara lokal dengan Azure PowerShell, seperti yang dijelaskan di bagian berikutnya.
  • Buat pendaftaran aplikasi di ID Microsoft Entra. Berikan akses aplikasi Anda ke sumber daya Azure yang ditargetkan oleh beban kerja perangkat lunak eksternal Anda.
  • Temukan ID objek aplikasi (bukan ID aplikasi (klien)), yang Anda perlukan dalam langkah-langkah berikut. Anda dapat menemukan ID objek aplikasi di pusat admin Microsoft Entra. Buka daftar aplikasi terdaftar dan pilih pendaftaran aplikasi Anda. Di Gambaran umum->Penting, temukan ID Objek.
  • Dapatkan informasi subjek dan pengeluar sertifikat untuk IdP eksternal dan beban kerja perangkat lunak, yang Anda perlukan dalam langkah-langkah berikut.

Mengonfigurasi Azure PowerShell secara lokal

Untuk menggunakan Azure PowerShell secara lokal untuk artikel ini daripada menggunakan Cloud Shell:

  1. Instal versi terbaru Azure PowerShell jika Anda belum melakukannya.

  2. Masuk ke Azure.

    Connect-AzAccount
    
  3. Instal versi terbaru dari PowerShellGet.

    Install-Module -Name PowerShellGet -AllowPrerelease
    

    Anda mungkin perlu Exit dari sesi PowerShell saat ini setelah menjalankan perintah ini untuk langkah berikutnya.

  4. Instal versi prarilis modul Az.Resources untuk melakukan operasi informasi masuk identitas gabungan dalam artikel ini.

    Install-Module -Name Az.Resources -AllowPrerelease
    

Mengonfigurasi info masuk identitas gabungan pada aplikasi

Jalankan cmdlet New-AzADAppFederatedCredential untuk membuat informasi masuk identitas gabungan baru pada aplikasi.

Contoh Tindakan GitHub

  • ApplicationObjectId: ID objek aplikasi (bukan ID aplikasi (klien) yang sebelumnya Anda daftarkan di ID Microsoft Entra.
  • Pengeluar sertifikat mengidentifikasi GitHub sebagai pengeluar sertifikat token eksternal.
  • Subjek mengidentifikasi organisasi, repositori, dan lingkungan GitHub untuk alur kerja Tindakan GitHub Anda. Saat alur kerja GitHub Actions meminta platform identitas Microsoft untuk menukar token GitHub dengan token akses, nilai dalam kredensial identitas federasi diperiksa terhadap token GitHub yang disediakan.
    • Untuk Pekerjaan yang terikat dengan lingkungan: repo:< Organization/Repository >:environment:< Name >
    • Untuk Pekerjaan yang tidak terikat dengan lingkungan, sertakan jalur referensi untuk cabang/tag berdasarkan jalur referensi yang digunakan untuk memicu alur kerja: repo:< Organization/Repository >:ref:< ref path>. Misalnya, repo:n-username/ node_express:ref:refs/heads/my-branch atau repo:n-username/ node_express:ref:refs/tags/my-tag.
    • Untuk alur kerja yang dipicu oleh peristiwa permintaan tarik: repo:< Organization/Repository >:pull-request.
  • Nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.
  • Audiens mencantumkan audiens yang dapat muncul di token eksternal. Bidang ini wajib diisi. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange".
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://token.actions.githubusercontent.com/' -Name 'GitHub-Actions-Test' -Subject 'repo:octo-org/octo-repo:environment:Production'

Contoh Kubernetes

  • ApplicationObjectId: ID objek aplikasi (bukan ID aplikasi (klien) yang sebelumnya Anda daftarkan di ID Microsoft Entra.
  • Pengeluar sertifikat adalah URL pengeluar sertifikat akun layanan Anda (URL pengeluar sertifikat OIDC untuk kluster terkelola atau URL Pengeluar sertifikat OIDC untuk kluster yang dikelola sendiri).
  • Subjek adalah nama subjek dalam token yang dikeluarkan untuk akun layanan. Kubernetes menggunakan format berikut untuk nama subjek: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.
  • Nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.
  • Audiens mencantumkan audiens yang dapat muncul di aud klaim token eksternal.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/' -Name 'Kubernetes-federated-credential' -Subject 'system:serviceaccount:erp8asle:pod-identity-sa'

Contoh IdP lainnya

Tentukan parameter berikut (menggunakan beban kerja perangkat lunak yang berjalan di Google Cloud sebagai contoh):

  • ObjectID: ID objek aplikasi (bukan ID aplikasi (klien) yang sebelumnya Anda daftarkan di ID Microsoft Entra.
  • Nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.
  • Subjek: harus cocok dengan klaim sub dalam token yang dikeluarkan oleh penyedia identitas eksternal. Dalam contoh ini menggunakan Google Cloud, subjek adalah ID Unik dari akun layanan yang Anda rencanakan untuk digunakan.
  • Pengeluar sertifikat: harus cocok dengan klaim iss dalam token yang dikeluarkan oleh IdP eksternal. URL yang mematuhi spesifikasi Penemuan OIDC. ID Microsoft Entra menggunakan URL pengeluar sertifikat ini untuk mengambil kunci yang diperlukan untuk memvalidasi token. Untuk Google Cloud, pengeluar sertifikat adalah "https://accounts.google.com".
  • Audiens: harus cocok dengan klaim aud di token eksternal. Untuk alasan keamanan, Anda harus memilih nilai yang unik untuk token yang dimaksudkan untuk ID Microsoft Entra. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange".
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://accounts.google.com' -Name 'GcpFederation' -Subject '112633961854638529490'

Daftar kredensial identitas gabungan di aplikasi

Jalankan cmdlet Get-AzADAppFederatedCredential untuk mencantumkan informasi masuk identitas gabungan untuk suatu aplikasi.

Get-AzADApplication -ObjectId $app | Get-AzADAppFederatedCredential

Mendapatkan informasi masuk identitas gabungan di aplikasi

Jalankan cmdlet Get-AzADAppFederatedCredential untuk mendapatkan informasi masuk identitas gabungan menurut ID dari suatu aplikasi.

Get-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId

Hapus informasi masuk identitas gabungan dari aplikasi

Jalankan cmdlet Remove-AzADAppFederatedCredential untuk menghapus informasi masuk identitas gabungan dari aplikasi.

Remove-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId

Prasyarat

Buat pendaftaran aplikasi di ID Microsoft Entra. Berikan akses aplikasi Anda ke sumber daya Azure yang ditargetkan oleh beban kerja perangkat lunak eksternal Anda.

Temukan ID objek aplikasi (bukan ID aplikasi (klien)), yang Anda perlukan dalam langkah-langkah berikut. Anda dapat menemukan ID objek aplikasi di pusat admin Microsoft Entra. Buka daftar aplikasi terdaftar dan pilih pendaftaran aplikasi Anda. Di Gambaran umum->Penting, temukan ID Objek.

Dapatkan informasi subjek dan pengeluar sertifikat untuk IdP eksternal dan beban kerja perangkat lunak, yang Anda perlukan dalam langkah-langkah berikut.

Titik akhir Microsoft Graph (https://graph.microsoft.com) memaparkan REST API untuk membuat, memperbarui, menghapus federatedIdentityCredentials pada aplikasi. Luncurkan Azure Cloud Shell dan masuk ke penyewa Anda untuk menjalankan perintah Microsoft Graph dari AZ CLI.

Mengonfigurasi info masuk identitas gabungan pada aplikasi

GitHub Actions

Jalankan metode berikut untuk membuat informasi masuk identitas gabungan baru di aplikasi Anda (ditentukan oleh ID objek aplikasi). Pengeluar sertifikat mengidentifikasi GitHub sebagai penerbit token eksternal. subjek mengidentifikasi organisasi, repo, dan lingkungan GitHub untuk alur kerja Tindakan GitHub Anda. Saat alur kerja GitHub Actions meminta platform identitas Microsoft untuk menukar token GitHub dengan token akses, nilai dalam kredensial identitas federasi diperiksa terhadap token GitHub yang disediakan.

az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Testing","issuer":"https://token.actions.githubusercontent.com","subject":"repo:octo-org/octo-repo:environment:Production","description":"Testing","audiences":["api://AzureADTokenExchange"]}'

Lalu, Anda akan mendapatkan responsnya:

{
  "@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
  "audiences": [
    "api://AzureADTokenExchange"
  ],
  "description": "Testing",
  "id": "1aa3e6a7-464c-4cd2-88d3-90db98132755",
  "issuer": "https://token.actions.githubusercontent.com",
  "name": "Testing",
  "subject": "repo:octo-org/octo-repo:environment:Production"
}

nama: Nama aplikasi Azure Anda.

pengeluar sertifikat: Jalur ke penyedia GitHub OIDC: https://token.actions.githubusercontent.com. Pengeluar sertifikat ini akan dipercaya oleh aplikasi Azure Anda.

subjek: Sebelum Azure akan memberikan token akses, permintaan harus sesuai dengan ketentuan yang ditentukan di sini.

  • Untuk Pekerjaan yang terikat dengan lingkungan: repo:< Organization/Repository >:environment:< Name >
  • Untuk Pekerjaan yang tidak terikat dengan lingkungan, sertakan jalur referensi untuk cabang/tag berdasarkan jalur referensi yang digunakan untuk memicu alur kerja: repo:< Organization/Repository >:ref:< ref path>. Misalnya, repo:n-username/ node_express:ref:refs/heads/my-branch atau repo:n-username/ node_express:ref:refs/tags/my-tag.
  • Untuk alur kerja yang dipicu oleh peristiwa permintaan tarik: repo:< Organization/Repository >:pull-request.

audiens mencantumkan audiens yang dapat muncul di token eksternal. Bidang ini wajib diisi. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange".

Contoh Kubernetes

Jalankan metode berikut untuk mengonfigurasi informasi masuk identitas gabungan pada aplikasi dan membuat hubungan kepercayaan dengan akun layanan Kubernetes. Tentukan parameter berikut:

  • pengeluar sertifikat adalah URL pengeluar sertifikat akun layanan Anda (URL pengeluar sertifikat OIDC untuk kluster terkelola atau URL Pengeluar Sertifikat OIDC untuk kluster yang dikelola sendiri).
  • subjek adalah nama subjek dalam token yang diterbitkan ke akun layanan. Kubernetes menggunakan format berikut untuk nama subjek: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>.
  • nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.
  • audiens mencantumkan audiens yang dapat muncul di token eksternal. Bidang ini wajib diisi. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Kubernetes-federated-credential","issuer":"https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/","subject":"system:serviceaccount:erp8asle:pod-identity-sa","description":"Kubernetes service account federated credential","audiences":["api://AzureADTokenExchange"]}'

Lalu, Anda akan mendapatkan responsnya:

{
  "@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
  "audiences": [
    "api://AzureADTokenExchange"
  ],
  "description": "Kubernetes service account federated credential",
  "id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
  "issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
  "name": "Kubernetes-federated-credential",
  "subject": "system:serviceaccount:erp8asle:pod-identity-sa"
}

Contoh IdP lainnya

Jalankan metode berikut untuk mengonfigurasi informasi masuk identitas gabungan pada aplikasi dan membuat hubungan kepercayaan dengan penyedia identitas eksternal. Tentukan parameter berikut (menggunakan beban kerja perangkat lunak yang berjalan di Google Cloud sebagai contoh):

  • nama adalah nama informasi masuk gabungan, yang tidak dapat diubah nanti.
  • ObjectID: ID objek aplikasi (bukan ID aplikasi (klien) yang sebelumnya Anda daftarkan di ID Microsoft Entra.
  • subjek: harus cocok dengan klaim sub dalam token yang dikeluarkan oleh IdP eksternal. Dalam contoh ini menggunakan Google Cloud, subjek adalah ID Unik dari akun layanan yang Anda rencanakan untuk digunakan.
  • pengeluar sertifikat: harus cocok dengan klaim iss dalam token yang dikeluarkan oleh IdP eksternal. URL yang mematuhi spesifikasi Penemuan OIDC. ID Microsoft Entra menggunakan URL pengeluar sertifikat ini untuk mengambil kunci yang diperlukan untuk memvalidasi token. Untuk Google Cloud, pengeluar sertifikat adalah "https://accounts.google.com".
  • audiens mencantumkan audiens yang dapat muncul di token eksternal. Bidang ini wajib diisi. Nilai yang direkomendasikan adalah "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/<ObjectID>/federatedIdentityCredentials' --body '{"name":"GcpFederation","issuer":"https://accounts.google.com","subject":"112633961854638529490","description":"Testing","audiences":["api://AzureADTokenExchange"]}'

Lalu, Anda akan mendapatkan responsnya:

{
  "@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
  "audiences": [
    "api://AzureADTokenExchange"
  ],
  "description": "Testing",
  "id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
  "issuer": "https://accounts.google.com"",
  "name": "GcpFederation",
  "subject": "112633961854638529490"
}

Daftar kredensial identitas gabungan di aplikasi

Jalankan metode berikut untuk mencantumkan informasi masuk identitas gabungan untuk aplikasi (ditentukan oleh ID objek aplikasi):

az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'

Lalu, Anda akan mendapatkan respons yang serupa dengan:

{
  "@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
  "value": [
    {
      "audiences": [
        "api://AzureADTokenExchange"
      ],
      "description": "Testing",
      "id": "1aa3e6a7-464c-4cd2-88d3-90db98132755",
      "issuer": "https://token.actions.githubusercontent.com/",
      "name": "Testing",
      "subject": "repo:octo-org/octo-repo:environment:Production"
    }
  ]
}

Mendapatkan informasi masuk identitas gabungan di aplikasi

Jalankan metode berikut untuk mendapatkan informasi masuk identitas gabungan untuk aplikasi (ditentukan oleh ID objek aplikasi):

az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444//federatedIdentityCredentials/1aa3e6a7-464c-4cd2-88d3-90db98132755'

Lalu, Anda akan mendapatkan respons yang serupa dengan:

{
  "@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
  "value": {
      "@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
      "@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials('00001111-aaaa-2222-bbbb-3333cccc4444')/00001111-aaaa-2222-bbbb-3333cccc4444",
    "audiences": [
        "api://AzureADTokenExchange"
      ],
      "description": "Testing",
      "id": "1aa3e6a7-464c-4cd2-88d3-90db98132755",
      "issuer": "https://token.actions.githubusercontent.com/",
      "name": "Testing",
      "subject": "repo:octo-org/octo-repo:environment:Production"
    }
}

Hapus informasi masuk identitas gabungan dari aplikasi

Jalankan metode berikut untuk menghapus informasi masuk identitas gabungan dari aplikasi (ditentukan oleh ID objek aplikasi):

az rest -m DELETE  -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials/1aa3e6a7-464c-4cd2-88d3-90db98132755'

Langkah berikutnya