แชร์ผ่าน


บทช่วยสอน: ใช้การรับรองความถูกต้อง OIDC/FIC ด้วยการดําเนินการ GitHub สําหรับ Microsoft Power Platform

ในบทช่วยสอนนี้ คุณตั้งค่า GitHub OIDC และ Microsoft Entra ข้อมูลประจําตัวภายนอก (FIC) เพื่อให้การดําเนินการ GitHub สามารถรับรองความถูกต้องกับ Power Platform โดยไม่ต้องจัดเก็บความลับของไคลเอ็นต์

ในบทช่วยสอนนี้ คุณจะ:

  • กําหนดค่า OIDC ในที่เก็บ GitHub ของคุณ
  • สร้างการลงทะเบียนแอป Microsoft Entra และกําหนดค่า FIC
  • ให้สิทธิ์การเข้าถึงแอปในศูนย์การจัดการ Power Platform
  • สร้างเวิร์กโฟลว์ GitHub เพื่อเรียกใช้การดําเนินการ Power Platform

ขั้นตอนที่ 1: กําหนดค่า OIDC ในที่เก็บ GitHub ของคุณ

OIDC Config

  1. ใน GitHub เปิดที่เก็บข้อมูลของคุณ และตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการดําเนินการ GitHub

    หากต้องการเปิดใช้งาน การดําเนินการ GitHub ใน repo ให้เลือกการดําเนินการ> จากนั้นภายใต้ ทั่วไป คุณจะเห็นตัวเลือกเพื่อเปิดใช้งาน ถ้าคุณไม่เห็น การดําเนินการ ภายใต้ การตั้งค่า คุณไม่มีสิทธิ์การรักษาความปลอดภัยของ repo ที่จําเป็น

  2. ตรวจสอบการตั้งค่า OIDC และคำแนะนำในการปรับแต่งการอ้างสิทธิ์ของผู้ใช้งาน โปรดดูที่ OpenID Connect ใน GitHub Actions

  3. กําหนดค่าเทมเพลตการอ้างสิทธิ์หัวเรื่อง OIDC เป็น repository, workflow สําหรับบทช่วยสอนนี้ ดังที่แสดงในรูปด้านบน ซึ่งจะสร้างการอ้างสิทธิ์หัวเรื่องที่ไม่ซ้ํากันสําหรับแต่ละเวิร์กโฟลว์ในที่เก็บของคุณ ซึ่งคุณสามารถอ้างอิงในการกําหนดค่าข้อมูลประจําตัวภายนอกของคุณใน Microsoft Entra ID

    รูปแบบหัวเรื่องจะถูกแปลงเป็นค่าเช่น:

    • repo:MyOrg/MyRepo:workflow:MyWorkflow
  4. บันทึกการกําหนดค่า OIDC ที่เก็บของคุณ

ขั้นตอนที่ 2: สร้างการลงทะเบียนแอป Microsoft Entra และเพิ่ม FIC

  1. ในพอร์ทัล Azure ไปที่การลงทะเบียน>แอป Microsoft Entra ID>การลงทะเบียนใหม่

  2. สร้างการลงทะเบียนแอปและคัดลอกค่า ID แอปพลิเคชัน (ไคลเอนต์) และ ID ไดเรกทอรี (ผู้เช่า)

  3. สิทธิ์>เปิด APIเพิ่มสิทธิ์>Dynamics CRM และมอบสิทธิ์ Dataverse

  4. เปิดใบรับรองและข้อมูลลับ (หรือข้อมูลประจําตัวแบบรวม ขึ้นอยู่กับหน้าพอร์ทัลที่ใช้งาน) และเลือกOtherในสถานการณ์ข้อมูลประจําตัวแบบรวม

FIC Config

  1. ใช้ตัวระบุหัวข้อที่ชัดเจนนี้:

    repo:MyOrg/MyRepo:workflow:MyWorkflow

  2. บันทึกข้อมูลประจําตัวแบบเฟเดอเรต

Note

การอ้างสิทธิ์เรื่องใน GitHub และตัวระบุหัวเรื่องในข้อมูลประจําตัวภายนอกของคุณต้องตรงกันทั้งหมด

ขั้นตอนที่ 3: ให้สิทธิ์การเข้าถึงแอปในศูนย์การจัดการ Power Platform

  1. ไปที่ ศูนย์การจัดการ Power Platform

  2. เพิ่มการลงทะเบียนแอป Entra ID ในฐานะผู้ใช้แอปพลิเคชันและกําหนดบทบาทความปลอดภัยที่จําเป็นในแต่ละสภาพแวดล้อมเป้าหมาย

  3. สําหรับขั้นตอนโดยละเอียด โปรดดูจัดการผู้ใช้แอปพลิเคชันในศูนย์การจัดการ Power Platform

ขั้นตอนที่ 4: สร้างเวิร์กโฟลว์ GitHub เพื่อเรียกใช้การดําเนินการ Power Platform

  1. ในที่เก็บข้อมูลของคุณ ให้สร้างหรืออัปเดตเวิร์กโฟลว์ใน.github/workflows/

  2. ตรวจสอบให้แน่ใจว่าเวิร์กโฟลว์ร้องขอสิทธิ์โทเค็น OIDC สําหรับงานที่เรียกใช้การดําเนินการ Power Platform

  3. กําหนดค่าการดําเนินการ GitHub ของแพลตฟอร์ม Power ของคุณเพื่อใช้:

    • รหัสผู้เช่า
    • ID แอป (ไคลเอ็นต์)
    • URL ของสภาพแวดล้อม
    • พารามิเตอร์การรับรองความถูกต้องตาม OIDC/FIC ที่ได้รับการสนับสนุนโดยการดําเนินการ
  4. วางเวิร์กโฟลว์ตัวอย่าง YAML ของคุณในส่วนนี้และอัปเดตพื้นที่ที่สํารองไว้สําหรับสภาพแวดล้อมของคุณ

# 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 

เมื่อเวิร์กโฟลว์ทํางาน GitHub จะออกโทเค็น OIDC Microsoft Entra ตรวจสอบว่าโทเค็นเทียบกับข้อมูลประจําตัวภายนอกของคุณ และการดําเนินการจะรับรองความถูกต้องไปยัง Dataverse/Power Platform โดยไม่มีความลับของไคลเอ็นต์

ดูเพิ่มเติม