Microsoft Entra ID でエンタープライズ アプリを管理するカスタム ロールを作成する

この記事では、Microsoft Entra ID でユーザーとグループのエンタープライズ アプリの割り当てを管理するためのアクセス許可を持つカスタム ロールを作成する方法について説明します。 ロールの割り当ての要素と、サブタイプ、アクセス許可、プロパティ セットなどの用語の意味については、「カスタムロールの概要」を参照してください。

前提条件

  • Microsoft Entra ID P1 または P2 ライセンス
  • 特権ロール管理者またはグローバル管理者
  • PowerShell を使用する場合はMicrosoft Graph PowerShell SDKのインストール
  • Microsoft Graph API の Graph エクスプローラーを使用する場合の管理者の同意

詳細については、「PowerShell または Graph エクスプローラーを使用するための前提条件」をご覧ください。

エンタープライズ アプリ ロールのアクセス許可

この記事では、2 つのエンタープライズ アプリのアクセス許可について説明します。 すべての例で更新アクセス許可が使用されます。

  • スコープでユーザーとグループの割り当てを読み取るには、microsoft.directory/servicePrincipals/appRoleAssignedTo/read アクセス許可を付与します
  • スコープでユーザーとグループの割り当てを管理するには、microsoft.directory/servicePrincipals/appRoleAssignedTo/update アクセス許可を付与します

更新アクセス許可を付与すると、担当者はエンタープライズ アプリへのユーザーとグループの割り当てを管理できるようになります。 ユーザーやグループの割り当てのスコープは、単一のアプリケーションに対して付与することも、すべてのアプリケーションに対して付与することもできます。 組織全体のレベルで付与された場合、担当者はすべてのアプリケーションの割り当てを管理できます。 アプリケーション レベルで行われた場合、担当者は、指定されたアプリケーションのみの割り当てを管理できます。

更新アクセス許可の付与は、次の 2 つの手順で行われます。

  1. microsoft.directory/servicePrincipals/appRoleAssignedTo/update アクセス許可を持つカスタム ロールを作成します
  2. エンタープライズ アプリへのユーザーとグループの割り当てを管理するためのアクセス許可を、ユーザーまたはグループに付与します。 これは、スコープを組織全体のレベルまたは単一のアプリケーションに設定できる場合です。

Microsoft Entra 管理センター

新しいカスタム ロールを作成する

ヒント

この記事の手順は、開始するポータルに応じて若干異なる場合があります。

Note

カスタム ロールは組織全体のレベルで作成および管理され、組織の [概要] ページからのみ使用できます。

  1. Microsoft Entra 管理センター特権ロール管理者以上としてサインインします。

  2. [ID] >[役割と管理者]>[役割と管理者] の順に移動します。

  3. [新しいカスタム ロール] を選択します。

    Add a new custom role from the roles list in Microsoft Entra ID

  4. [基本] タブで、ロールの名前として「ユーザーとグループの割り当てを管理する」、ロールの説明として「ユーザーとグループの割り当てを管理するためのアクセス許可を付与する」などと入力して、 [次へ] を選択します。

    Provide a name and description for the custom role

  5. [アクセス許可] タブで、検索ボックスに「microsoft.directory/servicePrincipals/appRoleAssignedTo/update」と入力し、必要なアクセス許可の横にあるチェックボックスをオンにしてから、 [次へ] を選択します。

    Add the permissions to the custom role

  6. [確認と作成] タブでアクセス許可を確認し、 [作成] を選択します。

    Now you can create the custom role

Microsoft Entra 管理センターを使用してユーザーにロールを割り当てる

  1. Microsoft Entra 管理センター特権ロール管理者以上としてサインインします。

  2. [ID] >[役割と管理者]>[役割と管理者] の順に移動します。

  3. [ユーザーとグループの割り当ての管理] ロールを選択します。

    Open Roles and Administrators and search for the custom role

  4. [割り当ての追加] を選択し、目的のユーザーを選びます。その後、 [選択] をクリックして、ユーザーにロールの割り当てを追加します。

    Add an assignment for the custom role to the user

割り当てのヒント

  • すべてのエンタープライズ アプリの組織全体のユーザーとグループのアクセスを管理するためのアクセス許可を担当者に付与するには、組織の Microsoft Entra ID の [概要] ページにある組織全体の [ロールと管理者] 一覧から開始します。

  • 特定のエンタープライズ アプリのユーザーとグループのアクセスを管理するためのアクセス許可を担当者に付与するには、Microsoft Entra ID でそのアプリに移動し、そのアプリの [ロールと管理者] 一覧で開きます。 新しいカスタム ロールを選択し、ユーザーまたはグループの割り当てを完了します。 担当者は、特定のアプリのユーザーとグループのアクセスのみを管理できます。

  • カスタム ロールの割り当てをテストするには、担当者としてサインインし、アプリケーションの [ユーザーとグループ] ページを開いて [ユーザーの追加] オプションが有効になっていることを確認します。

    Verify the user permissions

PowerShell

詳細については、「Microsoft Entra ID でカスタム ロールの作成と割り当て」および「PowerShell を使用するリソース スコープでのカスタム ロールの割り当て」を参照してください。

カスタム ロールを作成する

次の PowerShell スクリプトを実行して、新しいロールを作成します。

# Basic role information
$description = "Can manage user and group assignments for Applications"
$displayName = "Manage user and group assignments"
$templateId = (New-Guid).Guid

# Set of permissions to grant
$allowedResourceAction = @("microsoft.directory/servicePrincipals/appRoleAssignedTo/update")
$rolePermission = @{'allowedResourceActions'= $allowedResourceAction}
$rolePermissions = $rolePermission

# Create new custom admin role
$customRole = New-MgRoleManagementDirectoryRoleDefinition -Description $description `
   -DisplayName $displayName -RolePermissions $rolePermissions -TemplateId $templateId -IsEnabled

カスタム ロールを割り当てる

この PowerShell スクリプトを使用して、ロールを割り当てます。

# Get the user and role definition you want to link
$user =  Get-MgUser -Filter "userPrincipalName eq 'chandra@example.com'"
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Manage user and group assignments'"

# Get app registration and construct scope for assignment.
$appRegistration = Get-MgApplication -Filter "displayName eq 'My Filter Photos'"
$directoryScope = '/' + $appRegistration.Id

# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope `
   -PrincipalId $user.Id -RoleDefinitionId $roleDefinition.Id

Microsoft Graph API

Create unifiedRoleDefinition API を使用して、カスタム ロールを作成します。 詳細については、「Microsoft Entra ID でカスタム ロールの作成と割り当て」および「Microsoft Graph API を使用したカスタム ロールの割り当て」を参照してください。

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions

{
    "description": "Can manage user and group assignments for Applications.",
    "displayName": "Manage user and group assignments",
    "isEnabled": true,
    "rolePermissions":
    [
        {
            "allowedResourceActions":
            [
                "microsoft.directory/servicePrincipals/appRoleAssignedTo/update"
            ]
        }
    ],
    "templateId": "<PROVIDE NEW GUID HERE>",
    "version": "1"
}

Microsoft Graph API を使用してカスタム ロールを割り当てる

Create unifiedRoleAssignment API を使用して、カスタム ロールを割り当てます。 ロールの割り当てでは、セキュリティ プリンシパル ID (ユーザーでもサービス プリンシパルでも可)、ロール定義 ID、および Microsoft Entra リソース スコープを組み合わせます。 ロールの割り当ての要素について詳しくは、「カスタム ロールの概要」を参照してください

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments

{
    "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
    "principalId": "<PROVIDE OBJECTID OF USER TO ASSIGN HERE>",
    "roleDefinitionId": "<PROVIDE OBJECTID OF ROLE DEFINITION HERE>",
    "directoryScopeId": "/"
}

次のステップ