適用対象:
外部テナント (詳細)
ロールベースのアクセス制御 (RBAC) は、アプリケーションにおいて承認を実施する一般的なメカニズムです。 組織で RBAC を使用する場合、アプリケーション開発者はアプリケーションのロールを定義します。 その後、管理者はさまざまなユーザーやグループにロールを割り当てて、誰がアプリケーションのコンテンツと機能にアクセスできるかを制御できます。
アプリケーションでは通常、セキュリティ トークン内の要求としてユーザー ロール情報を受け取ります。 開発者は、ロール要求をアプリケーションのアクセス許可としてどう解釈するかについて、独自の実装を柔軟に提供できます。 このアクセス許可の解釈では、アプリケーションまたは関連するライブラリのプラットフォームによって提供されるミドルウェアやその他のオプションを使用できます。
アプリ ロール
Microsoft Entra 外部 ID を使用すると、アプリケーションのアプリケーション ロールを定義し、それらのロールをユーザーとグループに割り当てることができます。 ユーザーまたはグループに割り当てたロールによって、アプリケーション内のリソースと操作へのアクセスのレベルが定義されます。
認証されたユーザーに対してMicrosoft Entra 外部 ID からアクセス トークンが発行されると、セキュリティ トークンのロール要求に、ユーザーまたはグループを割り当てたロールの名前が含まれます。 要求でそのセキュリティ トークンを受け取るアプリケーションは、ロール要求内の値に基づいて認可の決定を行うことができます。
グループ
また開発者は、アプリケーションに RBAC を実装するためにセキュリティ グループも使用できます。この場合、特定グループ内でのユーザーのメンバーシップが、ロール メンバーシップとして解釈されます。 組織でセキュリティ グループを使用すると、グループ要求がトークンに組み込まれます。 グループ要求では、現在の外部テナント内でユーザーが割り当てられる先のすべてのグループの ID が指定されます。
アプリ ロールとグループ
承認にはアプリ ロールまたはグループを使用できますが、両者の間の重要な違いは、実際のシナリオでどちらを使用するかの決定に影響する可能性があります。
| アプリ ロール | グループ |
|---|---|
| アプリケーションに固有のものであり、アプリの登録で定義されます。 | これらはアプリではなく、外部テナントに固有のものです。 |
| アプリケーション間で共有することはできません。 | 複数のアプリケーションで使用できます。 |
| アプリ ロールは、アプリの登録が削除されると削除されます。 | アプリが削除されても、グループはそのまま残ります。 |
roles 要求で提供されます。 |
groups 要求で提供されます。 |
セキュリティ グループの作成
セキュリティ グループは、共有リソースに対するユーザーとコンピューターのアクセスを管理します。 セキュリティ グループを作成して、グループの全メンバーに同じセキュリティ アクセス許可セットが付与されるようにすることができます。
セキュリティ グループを作成するには、次の手順に従います:
- Microsoft Entra 管理センターに、少なくともグループ管理者としてサインインします。
- 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコン
を使用して、[ ディレクトリ + サブスクリプション ] メニューから外部テナントに切り替えます。 - Entra ID>Groups>All groups に移動します。
- [ 新しいグループ] を選択します。
- [ グループの種類 ] ドロップダウンで、[セキュリティ] を選択 します。
- Contoso_App_Administratorsなど、セキュリティ グループのグループ 名 を入力 します。
- Contoso app Security Administrator など、セキュリティ グループのグループの説明を入力します。
- 作成 を選択します。
新しいセキュリティ グループが [すべてのグループ ] 一覧に表示されます。 すぐに表示されない場合は、ページを最新の情報に更新します。
Microsoft Entra 外部 ID では、アプリケーション内で利用するためのトークンにユーザーのグループ メンバーシップ情報を含めることができます。 グループ要求をトークンに追加する方法については、「 ユーザーとグループをロールに割り当てる 」セクションを参照してください。
アプリケーションのロールを宣言する
Microsoft Entra 管理センターに、少なくとも特権ロール管理者としてサインインします。
複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコン
を使用して、[ ディレクトリ + サブスクリプション ] メニューから外部テナントに切り替えます。Entra ID>アプリ登録 に移動します。
アプリ ロールを定義するアプリケーションを選択します。
[ アプリ ロール] を選択し、[ アプリ ロールの作成] を選択します。
[ アプリ ロールの作成 ] ウィンドウで、ロールの設定を入力します。 次の表に、各設定とそのパラメーターを示します。
フィールド 説明 例 表示名 アプリの割り当て時に表示されるアプリのロールの表示名です。 この値にはスペースを含めることができます。 Orders manager許可されるメンバー型 このアプリのロールをユーザー、アプリケーション、またはその両方に割り当てることができるかどうかを指定します。 Users/Groups価値 アプリケーション側でトークンに想定するロール要求の値を指定します。 この値は、アプリケーションのコードで参照される文字列と正確に一致する必要があります。 値にスペースを含めることはできません。 Orders.Manager説明 管理者のアプリの割り当て時に表示されるアプリのロールの詳細な説明です。 Manage online orders.このアプリ ロールを有効にしますか? アプリ ロールを有効にするかどうかを指定します。 アプリのロールを削除するには、このチェックボックスをオフにして、変更を適用してから削除操作を試行してください。 チェック [ 適用] を選択して、アプリケーション ロールを作成します。
ロールにユーザーとグループを割り当てる
アプリケーションにアプリ ロールを追加したら、管理者はそれらのロールにユーザーとグループを割り当てることができます。 ユーザーとグループをロールに割り当てるには、管理センターを使用するか、 Microsoft Graph を使用してプログラムを使用します。 さまざまなアプリのロールに割り当てられたユーザーがアプリケーションにサインインすると、roles 要求で割り当てられたロールがトークンに付与されます。
Azure portal を使用してユーザーとグループをアプリケーション ロールに割り当てるには:
- Microsoft Entra 管理センターに、少なくとも特権ロール管理者としてサインインします。
- 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコン
を使用して、[ ディレクトリ + サブスクリプション ] メニューから外部テナントに切り替えます。 - Entra ID>エンタープライズアプリケーションに移動します。
- [すべてのアプリケーション] を選択して、すべてのアプリケーションの一覧を表示します。 アプリケーションが一覧に表示されない場合は、[ すべてのアプリケーション ] リストの上部にあるフィルターを使用して一覧を制限するか、一覧を下にスクロールしてアプリケーションを見つけます。
- ユーザーまたはグループをロールに割り当てるアプリケーションを選択します。
- [ 管理] で、[ ユーザーとグループ] を選択します。
- [ ユーザー/グループの追加] を選択して 、[割り当ての追加] ウィンドウを開きます。
- [ 割り当ての追加 ] ウィンドウで、[ ユーザーとグループ] の下にあるリンクを選択します。 ユーザーとセキュリティ グループの一覧が表示されます。 一覧の複数のユーザーとグループを選択することができます。
- ユーザーとグループを選択したら、[選択] を 選択します。
- [ 割り当ての追加 ] ウィンドウで、[ロールの選択] の下にあるリンク を選択します。 アプリケーションに対して定義したすべてのロールが表示されます。
- ロールを選択し、選択 をクリックします。
- [ 割り当て] を選択して、アプリへのユーザーとグループの割り当てを完了します。
- 追加したユーザーとグループが [ ユーザーとグループ ] の一覧に表示されることを確認します。
アプリケーションをテストするには、サインアウトし、ロールを割り当てたユーザーでもう一度サインインします。 セキュリティ トークンを調べて、ユーザーのロールが含まれていることを確認します。
セキュリティ トークンにグループ要求を追加する
セキュリティ トークンでグループ メンバーシップ要求を出力するには、次の手順に従います。
- Microsoft Entra 管理センターに、少なくともアプリケーション管理者としてサインインします。
- 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコン
を使用して、[ ディレクトリ + サブスクリプション ] メニューから外部テナントに切り替えます。 - Entra ID>アプリ登録 に移動します。
- グループ要求を追加するアプリケーションを選択します。
- [ 管理] で、[ トークンの構成] を選択します。
- [ グループ要求の追加] を選択します。
- セキュリティ トークンに含めるグループの種類を選択します。
- [ 種類別にトークンのプロパティをカスタマイズする] で、[ グループ ID] を選択します。
- [ 追加] を選択して、グループ要求を追加します。
グループへのメンバーの追加
アプリケーションにアプリ グループ要求を追加したので、セキュリティ グループにユーザーを追加します。 セキュリティ グループがない場合は、 作成します。
- Microsoft Entra 管理センターに、少なくともグループ管理者としてサインインします。
- 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコン
を使用して、[ ディレクトリ + サブスクリプション ] メニューから外部テナントに切り替えます。 - Entra ID>Groups>All groups に移動します。
- 管理するグループを選択します。
- [メンバー] を選択します。
- [ + メンバーの追加] を選択します。
- リストをスクロールするか、検索ボックスに名前を入力します。 複数の名前を選択できます。 準備ができたら、[選択] を 選択します。
- [グループの概要] ページが更新され、グループに追加されたメンバーの数が表示されます。
アプリケーションをテストするには、サインアウトしてから、セキュリティ グループに追加したユーザーでもう一度サインインします。 セキュリティ トークンを調べて、ユーザーのグループ メンバーシップが含まれていることを確認します。
グループとアプリケーション ロールのサポート
外部テナントは、Microsoft Entra のユーザーおよびグループ管理モデルとアプリケーションの割り当てに従います。 Microsoft Entra のコア機能の多くは、外部テナントに段階的に移行されています。
次の表には、現在使用できる機能が示されています。
| 特徴 | 現在利用できますか? |
|---|---|
| リソースのアプリケーション ロールを作成する | はい (アプリケーション マニフェストを変更する) |
| アプリケーション ロールをユーザーに割り当てる | はい |
| アプリケーション ロールをグループに割り当てる | はい (Microsoft Graph 経由のみ) |
| アプリケーションロールをアプリケーションに割り当てる | はい (アプリケーションのアクセス許可を使用) |
| ユーザーをアプリケーション ロールに割り当てる | はい |
| アプリケーションをアプリケーション ロールに割り当てる (アプリケーションのアクセス許可) | はい |
| アプリケーション/サービス プリンシパルにグループを追加する (グループ要求) | はい (Microsoft Graph 経由のみ) |
| Microsoft Entra 管理センターを使用して顧客 (ローカル ユーザー) を作成、更新、削除する | はい |
| Microsoft Entra 管理センターを使用して顧客 (ローカル ユーザー) のパスワードをリセットする | はい |
| Microsoft Graph を使用して顧客 (ローカル ユーザー) を作成、更新、削除する | はい |
| Microsoft Graph を使用して顧客 (ローカル ユーザー) のパスワードをリセットする | はい (サービス プリンシパルがグローバル管理者ロールに追加されている場合のみ) |
| Microsoft Entra 管理センターを使用してセキュリティ グループを作成、更新、削除する | はい |
| Microsoft Graph API を使用してセキュリティ グループを作成、更新、削除する | はい |
| Microsoft Entra 管理センターを使用してセキュリティ グループのメンバーを変更する | はい |
| Microsoft Graph API を使用してセキュリティ グループのメンバーを変更する | はい |
| 50,000 人のユーザーと 50,000 グループにスケールアップ | 現在、利用できません |
| 少なくとも 2 つのグループに 50,000 人のユーザーを追加する | 現在、利用できません |
次の手順
- Web アプリケーションでロールベースのアクセス制御を使用する方法について説明します。