管理型アイデンティティを使ってオリジンに認証しましょう

適用対象: ✔️ Front Door Standard ✔️ Front Door Premium

Microsoft Entra IDの管理型IDを使用することで、Azure Front Door StandardまたはPremiumインスタンスは、認証情報管理をせずにMicrosoft Entra保護リソース(Azure Blob Storage)などに安全にアクセスできます。 詳細については、「Azure リソースのマネージド ID とは」を参照してください。

Azure Front DoorでマネージドIDを有効にし、元の管理者IDに必要な権限を付与した後、Front Doorは管理IDを使ってMicrosoft Entra IDから指定されたリソースへのアクセストークンを取得します。 トークンを取得した後、Front Doorはベアラー方式を使って Authorization ヘッダーのトークンの値を設定し、リクエストを発信元に転送します。 Front Door は、有効期限が切れるまでトークンをキャッシュします。

Note

この機能は、Front DoorでPrivate Linkを有効にしたOriginsでは現在サポートされていません。

Azure Front Door では、次の 2 種類のマネージド ID がサポートされています:

  • システム割り当て ID: この ID はサービスに関連付けられ、サービスが削除されると削除されます。 それぞれのサービスで、システム割り当て ID を 1 つだけ設定できます。
  • ユーザー割り当てアイデンティティ:このアイデンティティはサービスに割り当てられる独立したAzureリソースです。 それぞれのサービスで、複数のユーザー割り当て ID を設定できます。

マネージド ID は、Azure サブスクリプションがホストされている Microsoft Entra テナントに固有です。 サブスクリプションを別のディレクトリに移動する場合は、アイデンティティを再作成・再設定する必要があります。

Prerequisites

マネージド ID の有効化

  1. 既存の Azure Front Door プロファイルに移動します。 左側のメニューの [セキュリティ] で [ID] を選択します。

  2. システム割り当てマネージド ID またはユーザー割り当てマネージド ID のいずれかを選択します。

    • 割り当てられたシステム:Azure Front Doorプロファイルのライフサイクルに紐づいたマネージドアイデンティティです。

    • ユーザー割り当て:独立したライフサイクルを持つ独立したマネージドアイデンティティリソースです。

    システム割り当て済み

    1. [状態] を [オン] に切り替え、[保存] を選択します。

      システム割り当てマネージド ID 構成ページのスクリーンショット。

    2. プロンプトが表示されたら、[ はい ] を選択して、Front Door プロファイルのシステム マネージド ID の作成を確認します。

    ユーザー割り当て済み

    ユーザー割り当てのマネージデンティティを使うには、すでに作成している必要があります。 新しい ID を作成する手順については、「ユーザー割り当てマネージド ID の作成」を参照してください。

    1. [ ユーザー割り当て ] タブで、[ + 追加 ] を選択して、ユーザー割り当てマネージド ID を追加します。

    2. ユーザー割り当てマネージド ID を検索して選択します。 次に、[ 追加] を選択して Azure Front Door プロファイルにアタッチします。

    3. 選択したユーザー割り当てマネージド ID の名前が Azure Front Door プロファイルに表示されます。

      Front Door プロファイルに追加されたユーザー割り当てマネージド ID のスクリーンショット。

恒等式を原点群に関連付ける

Note

この連想は、以下のすべての条件が成り立つ場合にのみ機能します。

  • オリジングループにはプライベートリンクが有効なオリジンは含まれていません。
  • ヘルスプローブプロトコルは、オリジングループ設定で HTTPS 設定されています。
  • 転送プロトコルはルート設定で HTTPS Only に設定されています。
  • ルールセットでHTTPS Onlyアクションを使う場合、転送プロトコルはRoute configuration overrideに設定されています。

Warnung

Azure Front DoorとAzure Storage間でオリジン認証を使う場合、オリジン認証を有効にする手順の順序が非常に重要です。 適切な順序を守らないと問題が起こるかもしれません。

  • 公開匿名アクセスが有効なストレージアカウントを使用している場合は、以下の手順に従ってください: IDをオリジングループに関連付け 、その後オ リジンリソースでアクセスを提供します。 すべての手順を完了したら、公開匿名アクセスを無効にして、Front Doorからのみストレージアカウントへのアクセスを許可できます。
  • 公開匿名アクセスを無効にしたストレージアカウントを使う場合は、別の順序に従ってください。 まず、 元リソースでアクセスを提供し 、その後元 グループにIDを関連付ける手順を完了します。 前述の手順をすべて完了した後で、Azure Front Door経由でストレージアカウントへのトラフィック送信を始めてください。
  1. 既存のAzure Front Doorプロフィールにアクセスし、originグループを開いてください。

  2. すでにオリジンが設定されている既存のオリジングループを選択します。

  3. [ 認証 ] セクションまで下にスクロールします。

  4. 配信元認証を有効にします。

  5. システム割り当てマネージド ID またはユーザー割り当てマネージド ID を選択します。

  6. [ スコープ ] フィールドに正しい スコープ を入力します。 Scopeフィールドは、Azure Front Doorがアクセストークンを要求するMicrosoft Entraリソース(audience)を指定します。 Microsoft Entra IDが発行するアクセストークンには、その対象リソースに適用される権限が含まれています。 セキュリティ対策として、Azure Front Doorはオリジン認証用のスコープの明示的な許容リストのみをサポートしています。 以下のスコープが対応しています。 他のスコープを指定すると、Azure Front Doorは検証エラーを返し、その設定を拒否します。

    • https://storage.azure.com/.default
    • api://<GUID>/.default(カスタムMicrosoft Entraアプリケーション、一般的なAPI管理やApp Serviceシナリオを含む)
    • https://appconfig.azure.com/.default
    • https://appconfig-staging.azure.com/.default
  7. [更新] を選択します。

    ID を配信元グループに関連付けるスクリーンショット。

原産地のリソースでアクセスを提供します

  1. オリジンリソースの管理ページに行ってください。 たとえば、配信元が Azure Blob Storage の場合は、そのストレージ アカウント管理ページに移動します。

    Note

    次の手順では、配信元が Azure Blob Storage であることを前提としています。 別のリソースの種類を使用している場合は、ロールの割り当て時に適切な ジョブ機能ロール を選択してください。 それ以外の場合、ほとんどのリソースの種類に関する手順は同じです。

  2. Access Control(IAM)セクションに行き、「追加」を選択してください。 ドロップダウン メニューから [ ロールの割り当ての追加] を選択します。

    アクセス制御設定のスクリーンショット。

  3. [ロール] タブの [職務権限] で、一覧から適切なロール (例: ストレージ BLOB データ閲覧者) を選択し、[次へ] を選択します。

    [ロールの割り当ての追加] の [ロール] タブのスクリーンショット。

    Important

    マネージド ID を含む任意の ID にサービスへのアクセス許可を付与する場合は、必要なアクションを実行するために必要な最小限のアクセス許可を常に付与します。 例えば、管理型アイデンティティを使ってストレージアカウントからデータを読み取る場合、そのID権限を付与してストレージアカウントにデータを書き込む必要はありません。 管理されたアイデンティティをストレージアカウントの寄与者にするなど、不要な権限を付与することで、Azure Front Door経由で来るリクエストを書き込み・削除操作に対応できるようになります。

  4. メンバータブの「アクセス割り当て」セクションで「管理されたアイデンティティ」を選択し、「メンバー選択」を選択してください。

    [ロールの割り当ての追加] の [メンバー] タブのスクリーンショット。

  5. [ マネージド ID の選択] ウィンドウが開きます。 Front Doorの所在地でサブスクリプションを選択してください。 管理される識別のドロップダウンから、フロントドアとCDNプロファイルを選択してください。 [ 選択 ] ドロップダウンで、Front Door 用に作成されたマネージド ID を選択します。 下部の 「選択 」ボタンを選択してください。

  6. [ 確認して割り当てる ] を選択し、検証が完了した後に [ 確認と割り当て ] をもう一度選択します。

発信元認証の管理とトラブルシューティング

設定エラーのトラブルシューティング

オリジングループ設定中にエラーが発生した場合は、以下を確認してください:

  • ヘルスプローブプロトコルはHTTPSに設定されています。
  • ルートおよび任意のルート設定オーバーライドの転送プロトコルは HTTPSのみに設定されています。
  • オリジングループにはPrivate Linkを使うオリジンは含まれていません。

もしオリジンがアクセス拒否応答を返した場合、管理IDがオリジンリソース上で必要な役割を持っているか確認してください。

SASトークンからの移行

Azure Storageを共有アクセス署名(SAS)トークンから移行する際のダウンタイムを避けるために:

  1. Azure Front Door プロファイルの管理されるアイデンティティを有効にしてください。
  2. マネージドアイデンティティをオリジングループに関連付けてください。
  3. SASトークンの使用をやめましょう。

発信元認証を無効にする

発信元へのアクセスを妨げずに発信元認証を無効にするには:

  1. 管理型アイデンティティ認証を使わないリクエストを受信するように、発信元のAccess Control(IAM)を設定してください。
  2. 発信元グループで発元認証を無効にしてください。
  3. 設定変更が伝播するのを待ちましょう。
  4. 管理されたアイデンティティを無効化または削除してください。

その他の考慮事項

  • Azure Front Door既存のAuthorizationヘッダーをその発元認証トークンで上書きします。 クライアントトークンを保持するには、 {http_req_header_Authorization} サーバー変数を使って別のヘッダーでトークンを送信するルールを設定してください。

    別のヘッダーを介してクライアント トークンを配信元に送信するルールのスクリーンショット。

  • Azure Front Door、ヘルスプローブやエンドユーザーのトラフィックリクエストのAuthorizationヘッダーにアクセストークンが含まれています。

  • Azure Key Vaultへのオリジン認証とAzure Front Doorアクセスには別々のマネージドアイデンティティを使いましょう。