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