ワークロード ID 用の条件付きアクセス

従来、条件付きアクセス ポリシーは、ユーザーが SharePoint Online などのアプリやサービスにアクセスするときにのみ適用されていました。 現在、組織が所有するサービス プリンシパルに適用される条件付きアクセス ポリシーのサポートを拡張しています。 この機能を、ワークロード ID 用の条件付きアクセスと呼びます。

ワークロード ID とは、アプリケーションまたはサービス プリンシパルが (場合によってはユーザーのコンテキストで) リソースにアクセスすることを可能にする ID です。 これらのワークロード ID は、従来のユーザー アカウントとは次のように異なります。

  • 多要素認証を実行できません。
  • 通常、正式なライフサイクル プロセスがありません。
  • 資格情報またはシークレットをどこかに保存する必要があります。

これらの違いによって、ワークロード ID の管理が難しくなり、侵害リスクが高くなります。

重要

サービス プリンシパルを対象とする条件付きアクセス ポリシーを作成または変更するには、Workload Identities Premium ライセンスが必要です。 適切なライセンスのないディレクトリでは、ワークロード ID の既存の条件付きアクセス ポリシーは引き続き機能しますが、変更することはできません。 詳細については、「Microsoft Entra ワークロード ID」を参照してください。  

Note

ポリシーは、お使いのテナントに登録されているシングル テナント サービス プリンシパルに適用できます。 サード パーティの SaaS およびマルチテナント アプリは、対象外です。 マネージド ID は、ポリシーの対象にはなりません。

ワークロード ID の条件付きアクセスを使用すると、信頼されたパブリック IP 範囲外から、Microsoft Entra ID Protection によって検出されたリスクに基づいて、または、認証コンテキストとの組み合わせでサービス プリンシパルをブロックできます。

実装

場所ベースの条件付きアクセス ポリシーを作成する

サービス プリンシパルに適用される、場所ベースの条件付きアクセス ポリシーを作成します。

  1. 条件付きアクセス管理者以上として Microsoft Entra 管理センターにサインインします。
  2. 保護>条件付きアクセス を参照します。
  3. [新しいポリシーの作成] を選択します。
  4. ポリシーに名前を付けます。 ポリシーの名前に対する意味のある標準を組織で作成することをお勧めします。
  5. [割り当て] で、 [ユーザーまたはワークロード ID] を選択します。
    1. [このポリシーは何に適用されますか?] で、[ワークロード ID] を選択します。
    2. [含める] で、 [サービス プリンシパルの選択] を選択し、一覧から適切なサービス プリンシパルを選択します。
  6. [ターゲット リソース]>[クラウド アプリ]>[対象] で、[すべてのクラウド アプリ] を選択します。 このポリシーは、サービス プリンシパルがトークンを要求した場合にのみ適用されます。
  7. [条件]>[場所] で、 [すべての場所] を含め、アクセスを許可する [選択された場所] を除外します。
  8. [許可] で使用可能な唯一のオプションは [アクセスをブロックする] です。 トークン要求が許容範囲外から行われた場合、アクセスはブロックされます。
  9. ポリシーをレポート専用モードで保存し、管理者が影響を見積もることができるようにするか、ポリシーを有効にしてポリシーを適用することができます。
  10. [作成] を選択してポリシーを完成させます。

リスクベースの条件付きアクセス ポリシーを作成する

サービス プリンシパルに適用される、場所ベースの条件付きアクセス ポリシーを作成します。

ワークロード ID とリスクを条件として使用した条件付きアクセス ポリシーの作成。

  1. 条件付きアクセス管理者以上として Microsoft Entra 管理センターにサインインします。
  2. 保護>条件付きアクセス を参照します。
  3. [新しいポリシーの作成] を選択します。
  4. ポリシーに名前を付けます。 ポリシーの名前に対する意味のある標準を組織で作成することをお勧めします。
  5. [割り当て] で、 [ユーザーまたはワークロード ID] を選択します。
    1. [このポリシーは何に適用されますか?] で、[ワークロード ID] を選択します。
    2. [含める] で、 [サービス プリンシパルの選択] を選択し、一覧から適切なサービス プリンシパルを選択します。
  6. [ターゲット リソース]>[クラウド アプリ]>[対象] で、[すべてのクラウド アプリ] を選択します。 このポリシーは、サービス プリンシパルがトークンを要求した場合にのみ適用されます。
  7. [条件]>[サービス プリンシパル リスク] の下で次のようにします
    1. [Configure] (構成) トグルを [Yes] (はい) に設定します。
    2. このポリシーをトリガーするリスクのレベルを選択します。
    3. [完了] を選択します。
  8. [許可] で使用可能な唯一のオプションは [アクセスをブロックする] です。 指定したリスク レベルが表示されると、アクセスはブロックされます。
  9. ポリシーをレポート専用モードで保存し、管理者が影響を見積もることができるようにするか、ポリシーを有効にしてポリシーを適用することができます。
  10. [作成] を選択してポリシーを完成させます。

ロールバック

この機能をロールバックする場合は、作成したポリシーを削除または無効にすることができます。

サインイン ログ

サインイン ログを使用して、サービス プリンシパルに対してポリシーがどのように適用されているか、またはレポート専用モードを使用している場合には予想されるポリシーの影響を確認できます。

  1. ID>監視と正常性>サインイン ログ>サービスプリンシパルサインイン を参照します。
  2. ログ エントリを選択し、 [条件付きアクセス] タブを選択して評価情報を表示します。

条件付きアクセスによってサービス プリンシパルがブロックされた場合のエラーの理由: 条件付きアクセス ポリシーのため、アクセスがブロックされました。

レポート専用モード

場所ベースのポリシーの結果を表示するには、サインイン レポートでイベントの [レポート専用] タブを参照するか、[条件付きアクセスの分析情報とレポート] ブックを使用します。

リスクベースのポリシーの結果を表示するには、サインイン レポートでイベントの [レポート専用] タブを参照します。

リファレンス

ObjectID の検索

サービス プリンシパルの objectID は Microsoft Entra エンタープライズ アプリケーションから取得できます。 Microsoft Entra アプリの登録のオブジェクト ID は使うことができません。 この識別子は、サービス プリンシパルではなく、アプリの登録のオブジェクト ID です。

  1. ID>アプリケーション>エンタープライズ アプリケーション に移動し、登録したアプリケーションを見つけます。
  2. [概要] タブから、アプリケーションの [オブジェクト ID] をコピーします。 この識別子はサービス プリンシパルに固有のもので、呼び出し元のアプリを検索するために条件付きアクセス ポリシーによって使用されます。

Microsoft Graph

Microsoft Graph ベータ版エンドポイントを使用した場所ベースの構成用のサンプル JSON。

{
  "displayName": "Name",
  "state": "enabled OR disabled OR enabledForReportingButNotEnforced",
  "conditions": {
    "applications": {
      "includeApplications": [
        "All"
      ]
    },
    "clientApplications": {
      "includeServicePrincipals": [
        "[Service principal Object ID] OR ServicePrincipalsInMyTenant"
      ],
      "excludeServicePrincipals": [
        "[Service principal Object ID]"
      ]
    },
    "locations": {
      "includeLocations": [
        "All"
      ],
      "excludeLocations": [
        "[Named location ID] OR AllTrusted"
      ]
    }
  },
  "grantControls": {
    "operator": "and",
    "builtInControls": [
      "block"
    ]
  }
}

次のステップ