Tutorial: Menggunakan autentikasi OIDC/FIC dengan GitHub Actions untuk Microsoft Power Platform

Dalam tutorial ini, Anda menyiapkan GitHub OIDC dan kredensial identitas federasi Microsoft Entra (FIC) sehingga GitHub Actions dapat mengautentikasi ke Power Platform tanpa menyimpan rahasia klien.

Dalam tutorial ini, Anda akan:

  • Mengonfigurasi OIDC pada repositori GitHub Anda
  • Membuat pendaftaran aplikasi Microsoft Entra dan mengonfigurasi FIC
  • Memberikan akses aplikasi di pusat admin Power Platform
  • Membuat alur kerja GitHub untuk menjalankan tindakan Power Platform

Langkah 1: Mengonfigurasi OIDC di repositori GitHub Anda

Konfigurasi OIDC

  1. Di GitHub, buka repositori Anda dan pastikan GitHub Actions diaktifkan.

    Untuk mengaktifkan Tindakan GitHub di repositori, pilihTindakan> lalu di bawah Umum, Anda disajikan dengan opsi untuk mengaktifkan. Jika Anda tidak melihat Tindakan di bawah Pengaturan, Anda tidak memiliki izin keamanan repositori yang diperlukan.

  2. Tinjau pengaturan OIDC dan panduan kustomisasi klaim subjek. Lihat OpenID Connect di GitHub Actions.

  3. Konfigurasikan templat klaim subjek OIDC menjadi repository, workflow dalam tutorial ini, seperti yang ditunjukkan pada gambar di atas. Ini membuat klaim subjek unik untuk setiap alur kerja di repositori Anda, yang kemudian dapat Anda referensikan dalam konfigurasi kredensial federasi Anda di ID Microsoft Entra.

    Format subjek menghasilkan nilai seperti:

    • repo:MyOrg/MyRepo:workflow:MyWorkflow
  4. Simpan konfigurasi OIDC repositori Anda.

Langkah 2: Buat pendaftaran aplikasi Microsoft Entra dan tambahkan FIC

  1. Di Azure portal, buka Microsoft Entra ID>Pendaftaran aplikasi>Pendaftaran baru.

  2. Buat pendaftaran aplikasi dan salin nilai ID Aplikasi (klien) dan ID Direktori (penyewa).

  3. Buka izin API>Tambahkan izin>Dynamics CRM dan berikan izin kepada Dataverse.

  4. Buka Sertifikat & rahasia (atau Kredensial federasi, bergantung pada pengalaman portal), dan pilih Other dalam skenario kredensial Federasi.

Konfigurasi FIC

  1. Gunakan pengidentifikasi subjek eksplisit ini:

    repo:MyOrg/MyRepo:workflow:MyWorkflow

  2. Simpan kredensial terfederasi.

Note

Klaim subjek di GitHub dan pengidentifikasi subjek dalam kredensial federasi Anda harus sama persis.

Langkah 3: Berikan akses aplikasi di pusat admin Power Platform

  1. Pergi ke pusat admin Power Platform.

  2. Tambahkan pendaftaran aplikasi Id Entra sebagai pengguna aplikasi dan tetapkan peran keamanan yang diperlukan di setiap lingkungan target.

  3. Untuk langkah-langkah mendetail, lihat Mengelola pengguna aplikasi di pusat admin Power Platform.

Langkah 4: Membuat alur kerja GitHub untuk menjalankan operasi Power Platform

  1. Di repositori Anda, buat atau perbarui alur kerja di .github/workflows/.

  2. Pastikan alur kerja meminta izin token OIDC untuk pekerjaan yang menjalankan tindakan Power Platform.

  3. Konfigurasikan GitHub Actions Power Platform Anda untuk digunakan:

    • ID Penyewa
    • ID Aplikasi (klien)
    • URL Lingkungan
    • Parameter autentikasi berbasis OIDC/FIC yang didukung oleh tindakan
  4. Tempel YAML alur kerja sampel Anda di bagian ini dan perbarui tempat penampung untuk lingkungan Anda.

# https://docs.github.com/en/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-azure
name: fic-auth

on:
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  who-am-i:

    runs-on: ubuntu-latest
    
    permissions:
      id-token: write # Grant permissions to the OIDC endpoint for federation
      contents: read
      
    steps:
    - name: Install Power Platform Tools
      uses: microsoft/powerplatform-actions/actions-install@v1
      with:
        pac-version-override: 2.4.1

    - name: WhoAmI
      uses: microsoft/powerplatform-actions/who-am-i@v1
      with:
        environment-url: https://MyOrg.crm.dynamics.com/
        app-id: 00000000-0000-0000-0000-000000000000 # Client (application) ID from your app registration
        tenant-id: 00000000-0000-0000-0000-000000000000 # Directory (tenant) ID from your app registration 

Saat alur kerja berjalan, GitHub mengeluarkan token OIDC. Microsoft Entra memverifikasi token tersebut terhadap kredensial federasi Anda, dan tindakan ini mengautentikasi ke Dataverse/Power Platform tanpa kunci rahasia klien.

Baca juga