さまざまなスコープで Microsoft Entra ロールを割り当てる
Microsoft Entra ID では、通常、割り当てられたロールはテナント全体に適用されます。 ただし、管理単位やアプリケーションの登録など、さまざまなリソースに対して Microsoft Entra ロールを割り当てることもできます。 たとえば、ヘルプデスク管理者ロールを、テナント全体ではなく、特定の管理単位にのみ適用されるよう割り当てることができます。 ロールの割り当てが適用されるリソースは、スコープとも呼ばれます。 この記事では、テナント、管理単位、アプリケーションの登録のスコープで、Microsoft Entra ロールを割り当てる方法について説明します。 スコープの詳細については、Microsoft Entra ID でのロールベースのアクセス制御 (RBAC) の概要に関する記事を参照してください。
前提条件
- 特権ロール管理者。
- PowerShell を使用する場合にインストールされた Microsoft Graph PowerShell SDK。
- 管理者の同意 (Microsoft Graph API の Graph エクスプローラーを使用する場合)。
詳細については、PowerShell または Graph エクスプローラーを使用するための前提条件に関するページを参照してください。
テナントにスコープ設定されたロールを割り当てる
このセクションでは、テナント スコープでロールを割り当てる方法について説明します。
Microsoft Entra 管理センター
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
Microsoft Entra 管理センターに特権ロール管理者以上としてサインインします。
[Identity] (ID)>[役割と管理者]>[役割と管理者] の順に移動します。
ロールを選択して、その割り当てを表示します。 必要なロールをすばやく見つけるには、 [フィルターの追加] を使用してロールをフィルター処理します。
[割り当ての追加] を選択し、このロールに割り当てるユーザーを選択します。
[追加] を選択してロールを割り当てます。
PowerShell
PowerShell を使用して Microsoft Entra ロールを割り当てるには、次の手順を実行します。
PowerShell ウィンドウを開きます。 必要に応じて、[Install-Module] を使用して Microsoft Graph PowerShell をインストールします。 詳細については、PowerShell または Graph エクスプローラーを使用するための前提条件に関するページを参照してください。
Install-Module Microsoft.Graph -Scope CurrentUser
PowerShell ウィンドウで、Connect-MgGraph を使用して、自分のテナントにサインインします。
Connect-MgGraph -Scopes "RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
[Get-MgUser] を使用してユーザーを取得します。
$user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
Get-MgRoleManagementDirectoryRoleDefinition を使用して、割り当てるロールを取得します。
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Billing Administrator'"
ロールの割り当てのスコープとしてテナントを設定します。
$directoryScope = '/'
New-MgRoleManagementDirectoryRoleAssignment を使用して、ロールを割り当てます。
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment ` -DirectoryScopeId $directoryScope -PrincipalId $user.Id ` -RoleDefinitionId $roleDefinition.Id
Microsoft Graph API
Graph エクスプローラーの Microsoft Graph API を使用してロールを割り当てるには、これらの手順に従います。
Graph エクスプローラーにサインインします。
List users API を使用してユーザーを取得します。
GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
List unifiedRoleDefinitions API を使用して、割り当てるロールを取得します。
GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'Billing Administrator'
Create unifiedRoleAssignment API を使用してロールを割り当てます。
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments { "@odata.type": "#microsoft.graph.unifiedRoleAssignment", "principalId": "<provide objectId of the user obtained above>", "roleDefinitionId": "<provide templateId of the role obtained above>", "directoryScopeId": "/" }
管理単位にスコープされたロールの割り当て
このセクションでは、管理単位のスコープでロールを割り当てる方法について説明します。
Microsoft Entra 管理センター
Microsoft Entra 管理センターに特権ロール管理者以上としてサインインします。
[ID]>[役割と管理者]>[管理単位] に移動します。
管理単位を選択します。
左側のナビゲーション メニューから [ロールと管理者] を選ぶと、管理単位に対して割り当てることができるすべてのロールの一覧が表示されます。
目的のロールを選択します。
[割り当ての追加] を選択してから、このロールに割り当てるユーザーまたはグループを選択します。
[追加] を選択して、管理単位にスコープ設定したヘルプデスク管理者ロールを割り当てます。
Note
Microsoft Entra の組み込みまたはカスタムのロール全体の一覧はここに表示されません。 これは予期されることです。 ここには、管理単位でサポートされているオブジェクトに関連するアクセス許可を持つロールが表示されます。 管理単位内でサポートされているオブジェクトの一覧については、「Microsoft Entra ID の管理単位」を参照してください。
PowerShell
PowerShell を使って管理単位スコープで Microsoft Entra ロールを割り当てるには、以下の手順を実行します。
PowerShell ウィンドウを開きます。 必要に応じて、[Install-Module] を使用して Microsoft Graph PowerShell をインストールします。 詳細については、PowerShell または Graph エクスプローラーを使用するための前提条件に関するページを参照してください。
Install-Module Microsoft.Graph -Scope CurrentUser
PowerShell ウィンドウで、Connect-MgGraph を使用して、自分のテナントにサインインします。
Connect-MgGraph -Scopes "Directory.Read.All","RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
[Get-MgUser] を使用してユーザーを取得します。
$user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
Get-MgRoleManagementDirectoryRoleDefinition を使用して、割り当てるロールを取得します。
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition ` -Filter "displayName eq 'User Administrator'"
Get-MgDirectoryAdministrativeUnit を使用して、役割の割り当てのスコープを設定する管理単位を取得します。
$adminUnit = Get-MgDirectoryAdministrativeUnit -Filter "displayName eq 'Seattle Admin Unit'" $directoryScope = '/administrativeUnits/' + $adminUnit.Id
New-MgRoleManagementDirectoryRoleAssignment を使用して、ロールを割り当てます。
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment ` -DirectoryScopeId $directoryScope -PrincipalId $user.Id ` -RoleDefinitionId $roleDefinition.Id
Microsoft Graph API
Graph エクスプローラーの Microsoft Graph API を使用して管理単位スコープでロールを割り当てるには、これらの手順に従います。
Graph エクスプローラーにサインインします。
List users API を使用してユーザーを取得します。
GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
List unifiedRoleDefinitions API を使用して、割り当てるロールを取得します。
GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'User Administrator'
List administrativeUnits API を使用して、ロールの割り当てのスコープを設定する管理単位を取得します。
GET https://graph.microsoft.com/v1.0/directory/administrativeUnits?$filter=displayName eq 'Seattle Admin Unit'
Create unifiedRoleAssignment API を使用してロールを割り当てます。
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments { "@odata.type": "#microsoft.graph.unifiedRoleAssignment", "principalId": "<provide objectId of the user obtained above>", "roleDefinitionId": "<provide templateId of the role obtained above>", "directoryScopeId": "/administrativeUnits/<provide objectId of the admin unit obtained above>" }
注意
ここでは、directhoryScopeId は /foo ではなく /administrativeUnits/foo として指定されています。 これは仕様です。 /administrativeUnits/foo というスコープは、プリンシパルが管理単位のメンバーを (割り当てられたロールに基づいて) 管理できることを意味し、管理単位自体を管理できるわけではありません。 /foo というスコープは、そのプリンシパルが Microsoft Entra オブジェクト自体を管理できることを意味します。 後続のセクションでは、アプリの登録にスコープ設定したロールによってオブジェクト自体を管理するアクセス許可が付与されるので、スコープが /foo であることがわかります。
アプリの登録にスコープ設定したロールの割り当て
このセクションでは、アプリケーションの登録のスコープでロールを割り当てる方法について説明します。
Microsoft Entra 管理センター
Microsoft Entra 管理センターに特権ロール管理者以上としてサインインします。
[ID]>[アプリケーション]>[アプリの登録] に移動します。
アプリケーションを選択します。 検索ボックスを使用すれば、目的のアプリを探すことができます。
左側のナビゲーション メニューから [ロールと管理者] を選ぶと、アプリの登録に対して割り当てることができるすべてのロールの一覧が表示されます。
目的のロールを選択します。
[割り当ての追加] を選択してから、このロールに割り当てるユーザーまたはグループを選択します。
[追加] を選択して、アプリの登録にスコープ設定したロールを割り当てます。
Note
Microsoft Entra の組み込みまたはカスタムのロール全体の一覧はここに表示されません。 これは予期されることです。 アプリの登録の管理に関連するアクセス許可を持つロールのみが表示されます。
PowerShell
PowerShell を使ってアプリケーションのスコープで Microsoft Entra ロールを割り当てるには、以下の手順を実行します。
PowerShell ウィンドウを開きます。 必要に応じて、[Install-Module] を使用して Microsoft Graph PowerShell をインストールします。 詳細については、PowerShell または Graph エクスプローラーを使用するための前提条件に関するページを参照してください。
Install-Module Microsoft.Graph -Scope CurrentUser
PowerShell ウィンドウで、Connect-MgGraph を使用して、自分のテナントにサインインします。
Connect-MgGraph -Scopes "Application.Read.All","RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
[Get-MgUser] を使用してユーザーを取得します。
$user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
Get-MgRoleManagementDirectoryRoleDefinition を使用して、割り当てるロールを取得します。
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition ` -Filter "displayName eq 'Application Administrator'"
Get-MgApplication を使用して、役割の割り当てのスコープを設定するアプリの登録を取得します。
$appRegistration = Get-MgApplication -Filter "displayName eq 'f/128 Filter Photos'" $directoryScope = '/' + $appRegistration.Id
New-MgRoleManagementDirectoryRoleAssignment を使用して、ロールを割り当てます。
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment ` -DirectoryScopeId $directoryScope -PrincipalId $user.Id ` -RoleDefinitionId $roleDefinition.Id
Microsoft Graph API
Graph エクスプローラーの Microsoft Graph API を使用してアプリケーションのスコープでロールを割り当てるには、これらの手順に従います。
Graph エクスプローラーにサインインします。
List users API を使用してユーザーを取得します。
GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
List unifiedRoleDefinitions API を使用して、割り当てるロールを取得します。
GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'Application Administrator'
List applications API を使用して、ロールの割り当てのスコープを設定する管理単位を取得します。
GET https://graph.microsoft.com/v1.0/applications?$filter=displayName eq 'f/128 Filter Photos'
Create unifiedRoleAssignment API を使用してロールを割り当てます。
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments { "@odata.type": "#microsoft.graph.unifiedRoleAssignment", "principalId": "<provide objectId of the user obtained above>", "roleDefinitionId": "<provide templateId of the role obtained above>", "directoryScopeId": "/<provide objectId of the app registration obtained above>" }
注意
ここでは、上記のセクションとは異なり、directoryScopeId は /foo として指定されています。 これは仕様です。 /foo というスコープは、そのプリンシパルが Microsoft Entra オブジェクトを管理できることを意味します。 /administrativeUnits/foo というスコープは、プリンシパルが管理単位のメンバーを (割り当てられたロールに基づいて) 管理できることを意味し、管理単位自体を管理できるわけではありません。