Microsoft Entra ID でのロールベースのアクセス制御の概要
この記事では、Microsoft Entra のロールベースのアクセス制御を理解する方法について説明します。 Microsoft Entra ロールを使用すると、最小特権の原則に従って、管理者に詳細なアクセス許可を付与できます。 Microsoft Entra の組み込みロールとカスタム ロールは、Azure リソース (Azure ロール) のロールベースのアクセス制御システム
- 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 はカスタム ロール
カスタム ロール定義を作成 (または組み込みロールを使用) したら、ロールの割り当てを作成してユーザーに割り当てることができます。 ロールの割り当てにより、指定したスコープのロール定義のアクセス許可がユーザーに付与されます。 この 2 段階のプロセスでは、1 つのロール定義を作成し、異なるスコープで何度も割り当てることができます。 スコープは、ロール メンバーがアクセスできる Microsoft Entra リソースのセットを定義します。 最も一般的なスコープは、組織全体のスコープです。 カスタム ロールは組織全体のスコープで割り当てることができます。つまり、ロール メンバーは組織内のすべてのリソースに対するロールのアクセス許可を持ちます。 カスタム ロールは、オブジェクト スコープで割り当てることもできます。 オブジェクト スコープの例として、1 つのアプリケーションがあります。 同じロールを組織内のすべてのアプリケーションの 1 人のユーザーに割り当て、次に Contoso Expense Reports アプリのみのスコープを持つ別のユーザーに割り当てることができます。
ユーザーがリソースにアクセスできるかどうかを Microsoft Entra ID が判断する方法
管理リソースにアクセスできるかどうかを判断するために Microsoft Entra ID が使用する大まかな手順を次に示します。 この情報を使用して、アクセスの問題のトラブルシューティングを行います。
- ユーザー (またはサービス プリンシパル) が Microsoft Graph エンドポイントへのトークンを取得します。
- ユーザーは、発行されたトークンを使用して、Microsoft Graph 経由で Microsoft Entra ID への API 呼び出しを行います。
- 状況に応じて、Microsoft Entra ID は次のいずれかのアクションを実行します。
- ユーザーのアクセス トークン内の wids 要求 に基づいて、ユーザーのロール メンバーシップを評価します。
- ユーザーに適用されるすべてのロールの割り当てを、直接またはグループ メンバーシップを使用して、アクションが実行されているリソースに対して取得します。
- Microsoft Entra ID は、API 呼び出しのアクションがこのリソースに対してユーザーが持っているロールに含まれているかどうかを決定します。
- ユーザーが要求されたスコープでアクションを持つロールを持っていない場合、アクセス権は付与されません。 それ以外の場合は、アクセス権が付与されます。
ロールの割り当て
ロールの割り当ては、Microsoft Entra リソースへのアクセスを許可するために、特定の "スコープ" で "セキュリティ プリンシパル" に "ロールの定義" を関連付ける Microsoft Entra リソースです。 アクセス権はロールの割り当てを作成することによって付与され、アクセスはロールの割り当てを削除することで取り消されます。 その中核となるロールの割り当ては、次の 3 つの要素で構成されます。
- セキュリティ プリンシパル - アクセス許可を取得する ID。 ユーザー、グループ、またはサービス プリンシパルを指定できます。
- ロール定義 - 権限のコレクション。
- スコープ - これらのアクセス許可が適用される場所を制限する方法。
ロールの割り当ての作成とロールの割り当ての一覧表示は、Microsoft Entra 管理センター、Microsoft Graph PowerShell、または Microsoft Graph API を使用して行うことができます。 Azure CLI は、Microsoft Entra ロールの割り当てではサポートされていません。
次の図は、ロールの割り当ての例を示しています。 この例では、Chris に Contoso Widget Builder アプリ登録のスコープでアプリ登録管理者のカスタム ロールが割り当てられています。 この割り当てにより、この特定のアプリ登録に対してのみ、アプリ登録管理者ロールのアクセス許可が Chris に付与されます。
セキュリティ プリンシパル
セキュリティ プリンシパルは、Microsoft Entra リソースへのアクセスが割り当てられているユーザー、グループ、またはサービス プリンシパルを表します。 ユーザーとは、Microsoft Entra ID のユーザー プロファイルを持つ個人です。 グループは、ロール割り当て可能なグループとして設定された新しい Microsoft 365 またはセキュリティ グループです。 サービス プリンシパルは、アプリケーション、ホステッド サービス、および Microsoft Entra リソースにアクセスするための自動化ツールで使用するために作成された ID です。
ロールの定義
ロール定義またはロールは、アクセス許可のコレクションです。 ロール定義には、作成、読み取り、更新、削除など、Microsoft Entra リソースで実行できる操作が一覧表示されます。 Microsoft Entra ID には、次の 2 種類のロールがあります。
- 変更できない Microsoft によって作成された組み込みロール。
- 組織によって作成および管理されるカスタム ロール。
スコープ
スコープは、ロールの割り当ての一部として、許可されるアクションを特定のリソース セットに制限する方法です。 たとえば、開発者にカスタム ロールを割り当てるが、特定のアプリケーション登録のみを管理する場合は、ロールの割り当てに特定のアプリケーション登録をスコープとして含めることができます。
ロールを割り当てるときは、次のいずれかの種類のスコープを指定します。
- テナント
- 管理単位
- Microsoft Entra リソース
スコープとして 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 アクセスを提供できます。 この機能を使用すると、永続的なアクセス権を付与するのではなく、ロールを必要とするユーザーに時間制限付きアクセス権を付与できます。 また、詳細なレポート機能と監査機能も提供します。 詳細については、「Microsoft Entra の役割を Privileged Identity Managementに割り当てる
」を参照してください。
ライセンス要件
Microsoft Entra ID での組み込みロールの使用は無料です。 カスタム ロールを使用するには、カスタム ロールの割り当てを持つすべてのユーザーに対して Microsoft Entra ID P1 ライセンスが必要です。 要件に適したライセンスを見つけるには、「Free エディションと Premium エディションの一般提供機能の比較」を参照してください。