Skip to main content
このワークフローを実行するには、以下を用意してください。
ACUL の本番デプロイワークフローでは、ACUL の画面をビルドしてデプロイし、それらを使用するようにテナントを設定します。このワークフローでは GitHub Actions を使用して、次のことを行います。
  • 画面アセットのバンドルをビルドする
    • ワークフローは、どの画面がデプロイ対象として指定されているかを判断するために、config/deploy_config.yml ファイルを読み取ります。
    • デプロイ対象が見つかると、ワークフローは Vite を使用して ACUL アセットをビルドし、コードを /dist ディレクトリにコンパイルします。
    • アセットを AWS S3 にアップロードする
      • ワークフローは、OpenID Connect (OIDC) を使用して AWS に安全に認証します。
      • /dist ディレクトリの内容を S3 バケットにアップロードします。
    • Auth0 テナントを設定する
      • ワークフローは、M2M アプリケーションと Auth0 CLI を使用して、テナント内の画面を設定します。
      • config/screen-to-prompt-mapping.js ファイルを使って、各画面を対応する Auth0 画面にマッピングします。
      • CloudFront CDN 上のアセットを参照するように、Auth0 の画面カスタマイズ設定を更新します。
設定が完了すると、プロジェクトの main ブランチに git push すると GitHub ワークフローが開始されます。
ACUL の本番デプロイワークフローの完全な例については、GitHub の ACUL GITHUB ACTIONS を参照してください。

1. Auth0 の設定

GitHub のワークフローにテナント設定を更新するための権限を付与するには、Machine-to-Machine アプリケーションを作成します。
  1. Auth0 Dashboard > アプリケーション に移動します。
  2. Create Application を選択します。
  3. Machine to Machine Applications を選択します。
  4. Name に、たとえば GitHub ACUL Deployment のようなわかりやすい名前を入力します。
  5. Create を選択します。
  6. Authorize Machine to Machine Application で、Auth0 Management API を選択します。
  7. 以下の権限を選択します。
    • read:branding
    • update:branding
    • read:prompts
    • update:prompts
    • read:custom_domains
  8. Authorize を選択します。
  9. 設定 タブに移動し、次の値を控えておきます。
    • Domain
    • Client ID
    • Client Secret

2. Amazon Web Services でアセットをアップロードして配信する

アセットをアップロードして配信するには、AWS S3 バケットを用意し、CDN として CloudFront を設定する必要があります。
  • AWS S3 バケットを作成する。このバケットを非公開にするため、すべてのパブリックアクセスをブロックします。この非公開バケットにアセットを保存します。
  • CloudFront ディストリビューションを設定する。この CDN がアセットを安全に配信します。Origin Access Control (OAC) を使用して、S3 バケットを Origin として利用するように設定する必要があります。

3. GitHub Action 用の AWS IAM ロールを作成する

AWS で IAM ロール を作成し、GitHub Actions が AWS S3 にファイルをアップロードできるようにします。
  • この IAM ロールは Web Identity (OIDC) を使用し、token.actions.githubusercontent.com を信頼先として設定する必要があります。
  • このロールには、S3 バケットに対する s3:PutObjects3:DeleteObjects3:ListBucket の権限を付与するポリシーが必要です。

4. GitHub リポジトリを設定する

GitHub リポジトリを設定するには、次の手順に従います。
  1. GitHub > 設定 に移動します。
  2. Secrets and Variables を選択し、次に Actions を選択します。
  3. New repository secret を選択します。
次のリポジトリ secrets を追加します。
  • AWS_S3_ARN: 作成した IAM ロール の ARN。
    • S3_BUCKET_NAME: S3 バケットの名前。
    • AWS_REGION: S3 バケットが配置されているリージョン。たとえば us-east-1
    • S3_CDN_URL: CloudFront ディストリビューションのドメイン名です。末尾にスラッシュを追加しないでください。たとえば https://d1234abcdef.cloudfront.net
    • AUTH0_DOMAIN: Auth0 テナントのドメイン。
    • AUTH0_CLIENT_ID: M2M アプリケーションの Client ID。
    • AUTH0_CLIENT_SECRET: M2M アプリケーションの Client Secret。

5. デプロイを設定する

.github/config/ ディレクトリにある設定ファイルを編集して、どの画面をデプロイするかを指定できます。
  • config/deploy_config.yml: メインのコントロールパネルです。デプロイする画面は true、スキップする画面は false に設定します。
  • config/screen-to-prompt-mapping.js: 内部で使用する画面のディレクトリ名をマッピングします。例: mfa-sms-challenge を公式の Auth0 prompt 名 mfa-sms にマッピングします。
  • config/context-configuration.js: Auth0 のコンテキストデータを定義します。例: ブランディング設定をカスタム画面で利用できるようにします。