この記事では、Microsoft Entra ID でユーザーとグループのエンタープライズ アプリの割り当てを管理するためのアクセス許可を持つカスタム ロールを作成する方法について説明します。 ロールの割り当ての要素と、サブタイプ、アクセス許可、プロパティ セットなどの用語の意味については、 カスタム ロールの概要を参照してください。
前提条件
- Microsoft Entra ID P1 または P2 ライセンス
- 特権ロール管理者
-
PowerShell を使用する場合の Microsoft Graph PowerShell モジュール
- Microsoft Graph API の Graph エクスプローラーを使用する場合の管理者の同意
詳細については、「powerShell または Graph Explorerを使用するための 前提条件」を参照してください。
エンタープライズ アプリ ロールのアクセス許可
この記事では、2 つのエンタープライズ アプリのアクセス許可について説明します。 すべての例で更新アクセス許可が使用されます。
- スコープでユーザーとグループの割り当てを読み取るには、
microsoft.directory/servicePrincipals/appRoleAssignedTo/read
アクセス許可を付与します
- スコープでユーザーとグループの割り当てを管理するには、
microsoft.directory/servicePrincipals/appRoleAssignedTo/update
アクセス許可を付与します
更新アクセス許可を付与すると、担当者はエンタープライズ アプリへのユーザーとグループの割り当てを管理できるようになります。 ユーザーやグループの割り当てのスコープは、単一のアプリケーションに対して付与することも、すべてのアプリケーションに対して付与することもできます。 組織全体のレベルで付与された場合、担当者はすべてのアプリケーションの割り当てを管理できます。 アプリケーション レベルで行われた場合、担当者は、指定されたアプリケーションのみの割り当てを管理できます。
更新アクセス許可の付与は、次の 2 つの手順で行われます。
-
microsoft.directory/servicePrincipals/appRoleAssignedTo/update
アクセス許可を持つカスタム ロールを作成します
- エンタープライズ アプリへのユーザーとグループの割り当てを管理するためのアクセス許可を、ユーザーまたはグループに付与します。 これは、スコープを組織全体のレベルまたは単一のアプリケーションに設定できる場合です。
新しいカスタム ロールを作成する
Microsoft Entra 管理センターでは、エンタープライズ アプリのアクセスとアクセス許可を制御するカスタム ロールを作成および管理できます。
注
カスタム ロールは組織全体のレベルで作成および管理され、組織の [概要] ページからのみ使用できます。
Microsoft Entra 管理センターに、少なくとも特権ロール管理者としてサインインします。
Entra ID役割 & 管理者に移動します。
[ 新しいカスタム ロール] を選択します。
[ 基本 ] タブで、ロールの名前に [ユーザーとグループの割り当ての管理] を指定し、ロールの説明に [ユーザーとグループの割り当てを管理するためのアクセス許可を付与する] を指定し、[ 次へ] を選択します。
[ アクセス許可 ] タブで、検索ボックスに「microsoft.directory/servicePrincipals/appRoleAssignedTo/update」と入力し、目的のアクセス許可の横にあるチェックボックスをオンにして、[ 次へ] を選択します。
[ 確認と作成 ] タブで、アクセス許可を確認し、[ 作成] を選択します。
Microsoft Entra 管理センターを使用してユーザーにロールを割り当てる
Microsoft Entra 管理センターに、少なくとも特権ロール管理者としてサインインします。
Entra ID役割 & 管理者に移動します。
[ ユーザーとグループの割り当ての管理 ] ロールを選択します。
[ 割り当ての追加] を選択し、目的のユーザーを選択し、[ 選択 ] をクリックしてロールの割り当てをユーザーに追加します。
割り当てのヒント
組織全体のすべてのエンタープライズ アプリのユーザーとグループ アクセスを管理するためのアクセス許可を担当者に付与するには、組織の Microsoft Entra ID の [概要] ページにある組織全体のロールと管理者の一覧から開始します。
特定のエンタープライズ アプリのユーザーとグループ アクセスを管理するためのアクセス許可を担当者に付与するには、Microsoft Entra ID でそのアプリに移動し、そのアプリの ロールと管理者 の一覧で開きます。 新しいカスタム ロールを選択し、ユーザーまたはグループの割り当てを完了します。 担当者は、特定のアプリのユーザーとグループのアクセスのみを管理できます。
カスタム ロールの割り当てをテストするには、担当者としてサインインし、アプリケーションの [ユーザーとグループ ] ページを開き、[ ユーザーの追加] オプションが有効になっていることを確認します。
詳細については、「 Microsoft Entra ID でカスタム ロールを作成 する」および「 Microsoft Entra ロールを割り当てる」を参照してください。
カスタム ロールを作成する
次の 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
Create unifiedRoleDefinition API を使用してカスタム ロールを作成します。 詳細については、「 Microsoft Entra ID でカスタム ロールを作成 し、 Microsoft Entra ロールを割り当てる」を参照してください。
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": "/"
}
次のステップ