次の方法で共有


GitHub Actions を使用してカスタム ポリシーをデプロイする

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

GitHub Actions を使用すると、GitHub リポジトリにカスタムの継続的インテグレーション (CI) ワークフローと継続的デプロイ (CD) ワークフローを直接作成できます。 この記事では、GitHub Actions を使用して Azure Active Directory B2C (Azure AD B2C) カスタム ポリシーのデプロイを自動化する 方法について説明します。

カスタム ポリシーのデプロイ プロセスを自動化するには、 GitHub アクションを使用して Azure AD B2C カスタム ポリシーをデプロイします。 この GitHub アクションは、 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 ベータ エンドポイント リファレンスを参照してください

[前提条件]

カスタム ポリシー フォルダーを選択する

GitHub リポジトリには、すべての Azure AD B2C ポリシー ファイルとその他の資産を含めることができます。 リポジトリのルート ディレクトリで、カスタム ポリシーを含む既存のフォルダーを作成または選択します。

たとえば、ポリシーという名前のフォルダー を選択します。 Azure AD B2C カスタム ポリシー ファイルを policies フォルダーに追加します。 次に、変更を コミット します。

変更を プッシュ しないでください。 これは、デプロイ ワークフローを設定した後で行います。

Microsoft Graph アプリケーションを登録する

GitHub アクションが Microsoft Graph API と対話できるようにするには、Azure AD B2C テナントにアプリケーション登録を作成します。 まだ行っていない場合は、 Microsoft Graph アプリケーションを登録します。

GitHub アクションで Microsoft Graph のデータにアクセスするには、登録されているアプリケーションに関連する アプリケーションのアクセス許可を付与します。 アプリ登録の API アクセス許可内で、>>Policy.ReadWrite.TrustFramework アクセス許可を付与します。

GitHub で暗号化されたシークレットを作成する

GitHub シークレットは、組織、リポジトリ、またはリポジトリ環境で作成する暗号化された環境変数です。 この手順では、 MS Graph アプリケーションの登録手順で先ほど登録したアプリケーションのアプリケーション シークレットを格納します。

Azure AD B2C カスタム ポリシーをデプロイするための GitHub アクションでは、シークレットを使用して、Microsoft Graph API との対話に使用されるアクセス トークンを取得します。 詳細については、 リポジトリの暗号化されたシークレットの作成を参照してください。

GitHub シークレットを作成するには、次の手順に従います。

  1. GitHub で、リポジトリのメイン ページに移動します。
  2. リポジトリ名の下にある [設定] を選択します。
  3. 左側のサイドバーで、[シークレット] を選択 します
  4. 新しいリポジトリ シークレット を選択してください。
  5. [名前] に「ClientSecret」と入力します。
  6. [値] には、前に作成したアプリケーション シークレットを入力します。
  7. [Add secret](シークレットの追加) を選択します。

GitHub ワークフローを作成する

GitHub ワークフローは、リポジトリに追加する自動化された手順です。 ワークフローは 1 つ以上のジョブで構成され、イベントによってスケジュールまたはトリガーできます。 この手順では、カスタム ポリシーをデプロイするワークフローを作成します。

ワークフローを作成するには、次の手順に従います。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [ アクション] を選択します。

    [GitHub Actions]\(GitHub アクション\) タブを示すスクリーンショット

  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 アプリケーションの登録手順で登録したアプリケーションのアプリケーション (クライアント) ID
    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. コミット メッセージ フィールドの下に、コミットを現在のブランチに追加するか、新しいブランチに追加するかを指定します。 [ 新しいファイルのコミット] または [新しいファイルの提案 ] を選択して pull request を作成します。

ワークフローのテスト

作成したワークフローをテストするには、カスタム ポリシーの変更を プッシュ します。 ジョブの実行が開始されると、実行の進行状況の視覚化グラフが表示され、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. メニューから 3 つのドット ...を選択し、[ ワークフロー ファイルの表示] を選択します。

    ワークフロー ファイルを表示する方法を示すスクリーンショット

  6. GitHub Web エディターで、[編集] を選択 します

  7. on: pushを上記の例に変更します。

  8. 変更をコミットします。

次のステップ