方法:アプリケーションにアプリ ロールを追加してトークンで受け取るHow to: Add app roles in your application and receive them in the token

ロールベースのアクセス制御 (RBAC) は、アプリケーションにおいて承認を実施する一般的なメカニズムです。Role-based access control (RBAC) is a popular mechanism to enforce authorization in applications. RBAC を使用するとき、管理者は、個々のユーザーまたはグループではなく、ロールにアクセス許可を付与します。When using RBAC, an administrator grants permissions to roles, and not to individual users or groups. その後、管理者はロールをさまざまなユーザーやグループに割り当てて、コンテンツや機能にだれがアクセスできるかを制御できます。The administrator can then assign roles to different users and groups to control who has access to what content and functionality.

RBAC をアプリケーション ロールおよびロール要求と一緒に使用すると、開発者はほとんど手間をかけずにアプリでの承認を確実に行うことができます。Using RBAC with Application Roles and Role Claims, developers can securely enforce authorization in their apps with little effort on their part.

もう 1 つの方法として、WebApp-GroupClaims-DotNet で説明するように Azure AD グループおよびグループ要求を使用することもできます。Another approach is to use Azure AD Groups and Group Claims, as shown in WebApp-GroupClaims-DotNet. Azure AD グループとアプリケーション ロールは決して相互排他ではありません。一緒に使用することで、さらにきめ細かいアクセス制御を提供することができます。Azure AD Groups and Application Roles are by no means mutually exclusive; they can be used in tandem to provide even finer grained access control.

アプリケーションのロールを宣言するDeclare roles for an application

これらのアプリケーション ロールは Azure portal でアプリケーションの登録マニフェストに定義されます。These application roles are defined in the Azure portal in the application's registration manifest. ユーザーがアプリケーションにサインインすると、Azure AD は、各ロール (ユーザーに個別に付与されたロール、およびグループ メンバーシップを通じて付与されているロール) の roles 要求を生成します。When a user signs into the application, Azure AD emits a roles claim for each role that the user has been granted individually to the user and from their group membership. ユーザーとグループのロールへの割り当ては、ポータルの UI を介して行うか、Microsoft Graph を使用してプログラミングによって行うことができます。Assignment of users and groups to roles can be done through the portal's UI, or programmatically using Microsoft Graph.

Azure portal を使用してアプリ ロールを宣言するDeclare app roles using Azure portal

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. 一番上のバーで、自分のアカウントを選択し、 [ディレクトリの切り替え] を選択します。On the top bar, select your account, and then Switch Directory.

  3. [ディレクトリ + サブスクリプション] ウィンドウが開いたら、 [お気に入り] または [すべてのディレクトリ] リストで、アプリケーションを登録する Active Directory テナントを選択します。Once the Directory + subscription pane opens, choose the Active Directory tenant where you wish to register your application, from the Favorites or All Directories list.

  4. 左側のナビゲーション バーで [すべてのサービス] を選択し、 [Azure Active Directory] を選択します。Select All services in the left-hand nav, and choose Azure Active Directory.

  5. [Azure Active Directory] ウィンドウで、 [アプリの登録] を選択してすべてのアプリケーションを一覧表示します。In the Azure Active Directory pane, select App registrations to view a list of all your applications.

    必要なアプリケーションが表示されていない場合は、 [アプリの登録] リストの一番上にあるさまざまなフィルターを使用して表示内容を制限するか、一覧表示の下までスクロールしてアプリケーションを探します。If you do not see the application you want show up here, use the various filters at the top of the App registrations list to restrict the list or scroll down the list to locate your application.

  6. アプリ ロールを定義するアプリケーションを選択します。Select the application you want to define app roles in.

  7. アプリケーションのブレードで [マニフェスト] を選択します。In the blade for your application, select Manifest.

  8. appRoles 設定を見つけたら、すべてのアプリケーション ロールを追加して、アプリケーション マニフェストを編集します。Edit the app manifest by locating the appRoles setting and adding all your Application Roles.

    注意

    このマニフェストの各アプリ ロール定義には、id プロパティに対して有効な異なる GUID が含まれている必要があります。Each app role definition in this manifest must have a different valid GUID for the id property.

    各アプリ ロール定義の value プロパティは、アプリケーションのコードで使用されている文字列と正確に一致する必要があります。The value property of each app role definition should exactly match the strings that are used in the code in the application. value プロパティにスペースを含めることはできません。The value property can't contain spaces. スペースが含まれていると、マニフェストの保存時にエラーが発生します。If it does, you'll receive an error when you save the manifest.

  9. マニフェストを保存します。Save the manifest.

Examples

次の例では、users に割り当てることができる appRoles を示します。The following example shows the appRoles that you can assign to users.

注意

id は一意の GUID であることが必要です。The id must be a unique GUID.

"appId": "8763f1c4-f988-489c-a51e-158e9ef97d6a",
"appRoles": [
    {
      "allowedMemberTypes": [
        "User"
      ],
      "displayName": "Writer",
      "id": "d1c2ade8-98f8-45fd-aa4a-6d06b947c66f",
      "isEnabled": true,
      "description": "Writers Have the ability to create tasks.",
      "value": "Writer"
    }
  ],
"availableToOtherTenants": false,

注意

displayName にスペースを含めることはできません。The displayName cannot contain spaces.

users または applications (あるいは両方) を対象とするアプリ ロールを定義できます。You can define app roles to target users, applications, or both. applications で使用可能な場合、アプリ ロールはアプリケーションのアクセス許可として [必要なアクセス許可] ブレードに表示されます。When available to applications, app roles appear as application permissions in the Required Permissions blade. 次の例では、Application を対象とするアプリ ロールを示します。The following example shows an app role targeted towards an Application.

"appId": "8763f1c4-f988-489c-a51e-158e9ef97d6a",
"appRoles": [
    {
      "allowedMemberTypes": [
        "Application"
      ],
      "displayName": "ConsumerApps",
      "id": "47fbb575-859a-4941-89c9-0f7a6c30beac",
      "isEnabled": true,
      "description": "Consumer apps have access to the consumer data.",
      "value": "Consumer"
    }
  ],
"availableToOtherTenants": false,

定義するロールの数は、アプリケーション マニフェストの制限に影響します。The number of roles defined affects the limits that the application manifest has. 詳しい説明については、マニフェストの制限に関するページを参照してください。They have been discussed in detail on the manifest limits page.

ロールにユーザーとグループを割り当てるAssign users and groups to roles

アプリケーションにアプリ ロールを追加したら、それらのロールにユーザーとグループを割り当てることができます。Once you've added app roles in your application, you can assign users and groups to these roles.

  1. [Azure Active Directory] ウィンドウで、 [Azure Active Directory] の左側のナビゲーション メニューから [エンタープライズ アプリケーション] をクリックします。In the Azure Active Directory pane, select Enterprise applications from the Azure Active Directory left-hand navigation menu.

  2. [すべてのアプリケーション] を選択して、すべてのアプリケーションの一覧を表示します。Select All applications to view a list of all your applications.

    必要なアプリケーションが表示されていない場合は、 [すべてのアプリケーション] リストの一番上にあるさまざまなフィルターを使用して表示内容を制限するか、一覧表示の下までスクロールしてアプリケーションを探します。If you do not see the application you want show up here, use the various filters at the top of the All applications list to restrict the list or scroll down the list to locate your application.

  3. ユーザーまたはグループをロールに割り当てるアプリケーションを選択します。Select the application in which you want to assign users or security group to roles.

  4. アプリケーションの左側のナビゲーション メニューで、 [ユーザーとグループ] ウィンドウを選択します。Select the Users and groups pane in the application’s left-hand navigation menu.

  5. [ユーザーとグループ] 一覧の上部にある [ユーザーの追加] ボタンをクリックして、 [割り当ての追加] ウィンドウを開きます。At the top of the Users and groups list, select the Add user button to open the Add Assignment pane.

  6. [割り当ての追加] ウィンドウから [ユーザーとグループ] セレクターを選択します。Select the Users and groups selector from the Add Assignment pane.

    ユーザーとセキュリティ グループの一覧と一緒に、特定のユーザーまたはグループを検索して探すためのテキスト ボックスが表示されます。A list of users and security groups will be shown along with a textbox to search and locate a certain user or group. この画面では、一度に複数のユーザーとグループを選択できます。This screen allows you to select multiple users and groups in one go.

  7. ユーザーとグループの選択が終了したら、一番下の [選択] ボタンをクリックして次の段階に進みます。Once you are done selecting the users and groups, press the Select button on bottom to move to the next part.

  8. [割り当ての追加] ウィンドウで [ロールの選択] セレクターを選択します。Choose the Select Role selector from the Add assignment pane. アプリケーション マニフェストで前に宣言したすべてのロールが表示されます。All the roles declared earlier in the app manifest will show up.

  9. ロールを選択して、 [選択] ボタンをクリックします。Choose a role and press the Select button.

  10. 一番下の [割り当て] ボタンをクリックすると、ユーザーとグループのアプリへの割り当てが完了します。Press the Assign button on the bottom to finish the assignments of users and groups to the app.

  11. 追加したユーザーとグループが、更新された [ユーザーとグループ] のリストに表示されていることを確認します。Confirm that the users and groups you added are showing up in the updated Users and groups list.

詳細情報More information