Microsoft Entra ID でのロールベースのアクセス制御の概要

この記事では、Microsoft Entra のロールベースのアクセス制御について説明します。 Microsoft Entra ロールを使用すると、最小限の特権の原則に従って、管理者に詳細なアクセス許可を付与できます。 Microsoft Entra の組み込みロールとカスタム ロールは、Azure リソースのロールベースのアクセス制御システム (Azure ロール) と同様の概念で動作します。 [この 2 つのロールベースのアクセス制御システムの違い](../../role-based-access-control/rbac-and-directory-admin-roles.md)は次のとおりです。

  • Microsoft Entra ロールでは、Microsoft Graph API を使用して、ユーザー、グループ、アプリケーションなどの Microsoft Entra リソースへのアクセスを制御します
  • Azure ロールでは、Azure Resource Management を使用して、仮想マシンやストレージなどの Azure リソースへのアクセスを制御します

どちらのシステムにも、同様に使用されるロールの定義とロールの割り当ての概念が含まれています。 ただし、Microsoft Entra ロールのアクセス許可を Azure カスタム ロールで使用することはできません。その逆も同様です。

Microsoft Entra のロールベースのアクセス制御を理解する

Microsoft Entra ID では、2 種類のロールの定義がサポートされています。

組み込みロールは、一連のアクセス許可が固定された、すぐに使えるロールです。 これらのロールの定義は変更できません。 Microsoft Entra ID では多数の組み込みロールがサポートされており、その数は増え続けています。 柔軟性を高め、高度な要件を満たすために、Microsoft Entra ID ではカスタム ロールもサポートされています。 カスタム Microsoft Entra ロールを使用したアクセス許可の付与は、カスタム ロール定義の作成と、ロールの割り当てを使用した割り当てという 2 ステップのプロセスです。 カスタム ロールの定義は、プリセットの一覧から追加するアクセス許可のコレクションです。 これらのアクセス許可は、組み込みロールで使用されるものと同じアクセス許可です。

カスタム ロールの定義を作成したら (または組み込みロールを使用する場合)、ロールの割り当てを作成することによって、ユーザーに割り当てることができます。 ロールの割り当てにより、指定したスコープでロール定義に含まれるアクセス許可がユーザーに付与されます。 この 2 ステップのプロセスにより、1 つのロール定義を作成し、異なるスコープで何度もそれを割り当てることができます。 スコープでは、ロール メンバーがアクセスできる Microsoft Entra リソースのセットを定義します。 最も一般的なスコープは、組織全体 (org-wide) のスコープです。 カスタム ロールは、組織全体のスコープで割り当てることができます。つまり、ロール メンバーには組織内のすべてのリソースに対してロールのアクセス許可が付与されます。 カスタム ロールは、オブジェクトのスコープで割り当てることもできます。 オブジェクト スコープの例は単一のアプリケーションです。 同じロールを、あるユーザーに対しては組織内のすべてのアプリケーションについて割り当て、別のユーザーに対しては Contoso Expense Reports アプリだけのスコープで割り当てる、といったことができます。

ユーザーがリソースへのアクセス権を持っているどうかを Microsoft Entra ID が特定する方法

管理リソースへのアクセス権をユーザーが持っているかどうかを判断するために Microsoft Entra ID が使用する手順の概要を次に示します。 この情報を使用して、アクセスに関する問題のトラブルシューティングを行います。

  1. ユーザー (またはサービス プリンシパル) が、Microsoft Graph エンドポイントへのトークンを取得します。
  2. ユーザーは、発行されたトークンを使用して Microsoft Graph 経由で Microsoft Entra ID に対する API 呼び出しを行います。
  3. 状況に応じて、Microsoft Entra ID は次のいずれかのアクションを実行します。
    • ユーザーのアクセス トークン内の [wids 要求](../develop/access-tokens.md)に基づいて、ユーザーのロール メンバーシップを評価します。
    • アクションが実行されるリソースに対して直接またはグループ メンバーシップを介してユーザーに適用されるすべてのロールの割り当てを取得します。
  4. Microsoft Entra ID は、API 呼び出しでのアクションが、このリソースに対してユーザーが持っているロールに含まれるかどうかを判別します。
  5. 要求されたスコープでのアクションを含むロールをユーザーが持っていない場合、アクセスは許可されません。 それ以外の場合、アクセスは許可されます。

ロール割り当て

ロールの割り当ては、Microsoft Entra リソースへのアクセスを許可するために、特定の "スコープ" で "セキュリティ プリンシパル" に "ロールの定義" を関連付ける Microsoft Entra リソースです。 アクセスは、ロールの割り当てを作成することによって許可され、ロールの割り当てを削除することによって取り消されます。 ロールの割り当ての核心は、次の 3 つの要素で構成されます。

  • セキュリティ プリンシパル - アクセス許可を取得する ID。 ユーザー、グループ、またはサービス プリンシパルを指定できます。
  • ロールの定義 - アクセス許可のコレクション。
  • スコープ - アクセス許可を適用できる場所を制限する方法。

ロールの割り当ての作成ロールの割り当ての一覧表示は、Microsoft Entra 管理センター、Microsoft Graph PowerShell、または Microsoft Graph API を使用して行うことができます。 Azure CLI は Microsoft Entra のロールの割り当てに対してはサポートされていません。

次の図では、ロールの割り当ての例を示します。 この例では、Contoso Widget Builder アプリ登録のスコープで、Chris にアプリ登録管理者のカスタム役割が割り当てられています。 割り当てにより、Chris には、この特定のアプリ登録に対してのみ、アプリ登録管理者の役割のアクセス許可が付与されます。

Role assignment is how permissions are enforced and has three parts.

セキュリティ プリンシパル

セキュリティ プリンシパルは、Microsoft Entra リソースへのアクセスを割り当てられるユーザー、グループ、またはサービス プリンシパルを表します。 ユーザーは、Microsoft Entra ID 内にプロファイルを持つ個人です。 グループは、ロール割り当て可能なグループとして設定されている新しい Microsoft 365 またはセキュリティ グループです。 サービス プリンシパルは、アプリケーション、ホステッド サービス、自動ツールを使用して Microsoft Entra リソースにアクセスするために作成された ID です。

ロール定義

ロール定義またはロールは、アクセス許可のコレクションです。 ロール定義には、Microsoft Entra リソースに対して実行できる操作 (作成、読み取り、更新、削除など) が列記されています。 Microsoft Entra ID には 2 種類のロールがあります。

  • Microsoft によって作成されて変更できない組み込みロール。
  • 組織によって作成および管理されるカスタム ロール。

Scope

スコープは、ロールの割り当ての一部として、許可されたアクションを特定のリソースのセットに制限する方法です。 たとえば、開発者にカスタム役割を割り当て、特定のアプリケーション登録の管理だけを許可する必要がある場合は、ロールの割り当てでスコープとして特定のアプリケーション登録を含めることができます。

ロールを割り当てるときには、次の種類のスコープのいずれかを指定します。

  • Tenant
  • [管理単位](administrative-units.md)
  • Microsoft Entra リソース

スコープとして Microsoft Entra リソースを指定する場合は、次のいずれかを使用できます。

  • Microsoft Entra グループ
  • エンタープライズ アプリケーション
  • アプリケーションの登録

詳細については、「Microsoft Entra ロールを異なるスコープで割り当てる」を参照してください。

ロールの割り当てオプション

Microsoft Entra ID には、ロールを割り当てるための複数のオプションが用意されています。

  • ロールをユーザーに直接割り当てることができます。これは、ロールを割り当てる既定の方法です。 アクセス要件に基づいて、組み込みとカスタムの Microsoft Entra ロールの両方をユーザーに割り当てることができます。 詳細については、「ユーザーに Microsoft Entra ロールを割り当てる」を参照してください。
  • Microsoft Entra ID P1 では、ロールを割り当て可能なグループを作成して、それらのグループにロールを割り当てることができます。 個人ではなくグループにロールを割り当てると、ロールに対してユーザーを簡単に追加または削除でき、グループのすべてのメンバーに対して一貫したアクセス許可が作成されます。 詳細については、「グループに Microsoft Entra ロールを割り当てる」を参照してください。
  • Microsoft Entra ID P2 では、Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) を使用して、ロールに Just-In-Time アクセスを指定できます。 この機能を使用すると、永続的なアクセス権を付与するのではなく、ロールを必要とするユーザーに期限付きのアクセス権を付与できます。 また、詳細なレポート機能と監査機能も提供されます。 詳細については、「Privileged Identity Management で Microsoft Entra ロールを割り当てる」を参照してください。

ライセンス要件

Microsoft Entra ID では組み込みロールを無料で使用できます。 カスタム ロールを使用するには、カスタム ロールの割り当てを持つすべてのユーザーに対して Microsoft Entra ID P1 ライセンスが必要です。 ご自分の要件に対して適切なライセンスを探すには、一般公開されている Free および Premium エディションの機能比較に関するページをご覧ください。

次のステップ