共用方式為


使用 GitHub Actions 部署自定義原則

這很重要

自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解

GitHub Actions 可讓您直接在 GitHub 存放庫中建立自定義持續整合 (CI) 和持續部署 (CD) 工作流程。 本文說明如何使用 GitHub Actions 將 Azure Active Directory B2C (Azure AD B2C) 自定義原則 的部署自動化。

若要自動化自定義原則部署程式,請使用 GitHub Action 來部署 Azure AD B2C 自定義原則。 此 GitHub Action 是由 Azure AD B2C 社群所開發。

此動作會使用 Microsoft Graph API,將 Azure AD B2C 自定義原則部署至 Azure AD B2C 租使用者。 如果租戶中還不存在該策略,則會創建它。 否則,將會取代它。

這很重要

透過 Azure Pipelines 管理 Azure AD B2C 自訂政策,目前會在 Microsoft Graph API 端點上使用/beta作業。 不支援在生產應用程式中使用這些 API。 如需詳細資訊,請參閱 Microsoft Graph REST API Beta 端點參考

先決條件

選取自定義原則資料夾

您的 GitHub 存放庫可以包含所有 Azure AD B2C 原則檔案和其他資產。 在存放庫的根目錄中,建立或選擇包含您自定義原則的現有資料夾。

例如,選取名為 policies 的資料夾。 將 Azure AD B2C 自定義原則檔案新增至 policies 資料夾。 然後 認可 變更。

請勿 推送 變更。 您稍後會在設定部署工作流程之後執行此動作。

註冊 Microsoft Graph 應用程式

若要允許 GitHub Action 與 Microsoft Graph API 互動,請在 Azure AD B2C 租使用者中建立應用程式註冊。 如果您尚未這麼做, 請註冊 Microsoft Graph 應用程式

若要讓 GitHub Action 存取 Microsoft Graph 中的數據,請授與已註冊 的應用程式相關應用程式許可權。 在應用程式註冊的 API 許可權內,授與 >>Policy.ReadWrite.TrustFramework 許可權。

建立 GitHub 加密機密資訊

GitHub 秘密是您在組織、存放庫或存放庫環境中建立的加密環境變數。 在此步驟中,您會在 註冊 MS Graph 應用程式 步驟中,儲存您稍早註冊之應用程式的應用程式密碼。

部署 Azure AD B2C 自定義原則的 GitHub Action 會使用秘密來取得存取令牌,該令牌可用來與 Microsoft Graph API 互動。 如需詳細資訊,請參閱 建立存放庫的加密密碼

若要建立 GitHub 秘密,請遵循下列步驟:

  1. 在 GitHub 中,流覽至存放庫的主頁面。
  2. 在您的存放庫名稱下,選取 [ 設定]。
  3. 在左側提要欄位中,選取 [ 秘密]。
  4. 選擇 [新增存放庫密碼]
  5. 在 [ 名稱] 中,輸入 ClientSecret
  6. 針對 ,輸入您稍早建立的應用程式秘密。
  7. 選擇 ,新增隱密

建立 GitHub 工作流程

GitHub 工作流程是您新增至存放庫的自動化程式。 工作流程是由一或多個作業所組成,可由事件排程或觸發。 在此步驟中,您會建立工作流程來部署您的自定義原則。

若要建立工作流程,請遵循下列步驟:

  1. 在 GitHub 中,流覽至存放庫的主頁面。

  2. 在存放庫名稱下,選擇 動作

    顯示 [GitHub Actions] 索引標籤的螢幕快照

  3. 如果您之前未設定工作流程,請 自行選取 [設定工作流程]。 否則,請選取 [ 新增工作流程]。

    顯示如何建立新工作流程的螢幕快照

  4. GitHub 提供在main.yml資料夾中建立名為.github/workflows的工作流程檔案。 此檔案包含工作流程的相關信息,包括 Azure AD B2C 環境和要部署的自定義原則。 在 GitHub Web 編輯器中,新增下列 YAML 程式代碼:

    on: push
    
    env:
      clientId: 00001111-aaaa-2222-bbbb-3333cccc4444
      tenant: your-tenant.onmicrosoft.com
    
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v2
    
        - name: 'Upload TrustFrameworkBase Policy'
          uses: azure-ad-b2c/deploy-trustframework-policy@v3
          with:
            folder: "./Policies"
            files: "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml"
            tenant: ${{ env.tenant }}
            clientId: ${{ env.clientId }}
            clientSecret: ${{ secrets.clientSecret }}
    
  5. 更新 YAML 檔案的下列屬性:

    章節 名稱 價值觀
    env clientId 您在註冊 MS Graph 應用程式步驟中註冊的應用程式的應用程式識別碼
    env tenant 您的 Azure AD B2C 租戶名稱 (例如,contoso.onmicrosoft.com)。
    with folder 儲存自訂原則檔案的資料夾,例如 ./Policies
    with files 要部署的原則檔案逗號分隔清單,例如 TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml

    這很重要

    執行代理程式並上傳原則檔案時,請確定它們以正確的順序上傳:

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. 選取 開始提交

  7. 在提交訊息欄位下方,指出要將提交新增至當前分支或新的分支。 選擇 提交新檔案,或 提交新檔案提議 以建立拉取請求。

測試工作流程

若要測試您所建立的工作流程,提交自訂政策的變更。 作業開始執行之後,您可以看到執行進度的可視化圖表,並在 GitHub 上檢視每個步驟的活動。

  1. 在 GitHub 上,流覽至存放庫的主頁面。

  2. 在存放庫名稱下,選擇 動作

  3. 在左側提要欄位中,選取您建立的工作流程。

  4. [工作流程執行] 底下,選取您想要查看的執行名稱。

    顯示如何選取工作流程活動的螢幕快照

  5. [作業 ] 或 [視覺效果圖形] 底下,選取您想要查看的作業。

  6. 檢視每個步驟的結果。 下列螢幕快照示範 上傳自定義原則 步驟記錄。

    上傳自定義原則步驟記錄

選擇性:排程您的工作流程

您所建立的工作流程是由 推送 事件所觸發。 如果您想要的話,您可以選擇另一個事件來觸發工作流程,例如 提取要求

您也可以使用 POSIX cron 語法,排程工作流程在特定 UTC 時間執行。 排程事件可讓您在排程的時間觸發工作流程。 如需詳細資訊,請參閱排定的訊息

下列範例會每天在 5:30 和 17:30 UTC 觸發工作流程:

on:
  schedule:
    # * is a special character in YAML so you have to quote this string
    - cron:  '30 5,17 * * *'

若要編輯您的工作流程:

  1. 在 GitHub 中,流覽至存放庫的主頁面。

  2. 在存放庫名稱下,選擇 動作

  3. 在左側提要欄位中,選取您建立的工作流程。

  4. [工作流程執行] 底下,選取您想要查看的執行名稱。

  5. 從功能表中,選取三個點 ...,然後選取 [檢視工作流程檔案]。

    顯示如何檢視工作流程檔案的螢幕快照

  6. 在 GitHub Web 編輯器中,選取 [編輯]。

  7. 變更 on: push 為上述範例。

  8. 提交 您的變更。

後續步驟