次の方法で共有


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

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

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

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

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

重要

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

ポリシーは、テナントに登録されている単一のテナント サービス プリンシパルに適用できます。 サード パーティの SaaS およびマルチテナント アプリは、対象外です。 マネージド ID は、ポリシーの対象にはなりません。 代わりに、マネージド ID を アクセス レビュー に含めることができました。

ワークロード ID の条件付きアクセスにより、ブロック サービス プリンシパルが次の条件で有効になります。

  • 既知のパブリック IP 範囲の外部から。
  • Microsoft Entra ID 保護によって検出されたリスクに基づいて。
  • 認証コンテキストと組み合わせて。

実装

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

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

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

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

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

ワークロード ID とリスクを条件として持つ条件付きアクセス ポリシーを作成する。

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

ロールバック

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

サインイン ログ

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

  1. Entra ID>モニタリングと健康>サインインログ>サービス プリンシパルのサインインに移動します。
  2. ログ エントリを選択し、[ 条件付きアクセス ] タブを選択して評価情報を表示します。

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

レポート専用モード

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

リスクベースのポリシーの結果を表示するには、サインイン レポートのイベントの [レポートのみ] タブを参照してください。

リファレンス

ObjectID の検索

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

  1. Entra ID>Enterprise アプリに移動し、登録したアプリケーションを見つけます。
  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"
    ]
  }
}

次のステップ