Microsoft Entra ロールを割り当てる
[アーティクル] 01/23/2025
11 人の共同作成者
フィードバック
この記事の内容
この記事では、Microsoft Entra 管理センター、Microsoft Graph PowerShell、または Microsoft Graph API を使用して、ユーザーとグループに Microsoft Entra ロールを割り当てる方法について説明します。 また、テナント、アプリケーションの登録、管理単位のスコープなど、さまざまなスコープでロールを割り当てる方法についても説明します。
直接ロールと間接ロールの両方の割り当てをユーザーに割り当てることができます。 ユーザーにグループ メンバーシップによってロールが割り当てられている場合は、そのユーザーをグループに追加してロールの割り当てを追加します。 詳細については、「Microsoft Entra グループを使用してロールの割り当てを管理する を参照してください。
Microsoft Entra ID では、通常、ロールはテナント全体に適用されるように割り当てられます。 ただし、アプリケーションの登録や管理単位など、さまざまなリソースに Microsoft Entra ロールを割り当てることもできます。 たとえば、ヘルプデスク管理者ロールを割り当てて、テナント全体ではなく特定の管理単位にのみ適用されるようにすることができます。 ロールの割り当てが適用されるリソースは、スコープとも呼ばれます。 ロールの割り当てのスコープの制限は、組み込みロールとカスタム ロールでサポートされています。 スコープの詳細については、「Microsoft Entra ID のロールベースのアクセス制御 (RBAC) の概要」を参照してください。
PIM における Microsoft Entra のロール
Microsoft Entra ID P2 ライセンスと Privileged Identity Management (PIM) がある場合は、ロールを割り当てるときに、ユーザーにロールの割り当ての資格を与えたり、ロールの割り当ての開始時刻と終了時刻を定義したりするなどの追加機能があります。 PIM で Microsoft Entra ロールを割り当てる方法については、次の記事を参照してください。
前提 条件
詳細については、「powerShell または Graph Explorerを使用するための 前提条件」を参照してください。
テナント スコープを使用してロールを割り当てる
このセクションでは、テナント スコープでロールを割り当てる方法について説明します。
PowerShell を使用して Microsoft Entra ロールを割り当てるには、次の手順に従います。
PowerShell ウィンドウを開きます。 必要に応じて、Install-Module を使用して Microsoft Graph PowerShell をインストールします。 詳細については、「powerShell または Graph Explorerを使用するための 前提条件」を参照してください。
Install-Module Microsoft.Graph -Scope CurrentUser
PowerShell ウィンドウで、Connect-MgGraph を使用してテナントにサインインします。
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"
Get-MgUser を使用して、ユーザーを取得します。
$user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
Get-MgGroup を使用して、ロール割り当て可能なグループを取得します。
$group = Get-MgGroup -Filter "DisplayName eq 'Contoso Helpdesk'"
Get-MgRoleManagementDirectoryRoleDefinition を使用して割り当てるロールを取得します。
すべての組み込みロールのロール定義 ID の一覧については、Microsoft Entra 組み込みロール を参照してください。
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Billing Administrator'"
テナントをロールの割り当てのスコープとして設定します。
$directoryScope = '/'
New-MgRoleManagementDirectoryRoleAssignment を使用してロールを割り当てます。
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment `
-DirectoryScopeId $directoryScope -PrincipalId $user.Id `
-RoleDefinitionId $roleDefinition.Id
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment `
-DirectoryScopeId $directoryScope -PrincipalId $group.Id `
-RoleDefinitionId $roleDefinition.Id
ロールを割り当てる別の方法を次に示します。
$params = @{
"directoryScopeId" = "/"
"principalId" = $group.Id
"roleDefinitionId" = $roleDefinition.Id
}
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -BodyParameter $params
次の手順に従って、Graph Explorer で Microsoft Graph API を使用してロールを割り当てます。
Graph Explorer にサインインします。
List users API を使用してユーザーを取得します。
GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
リスト グループ API を使用して、ロール割り当て可能なグループを取得します。
GET https://graph.microsoft.com/v1.0/groups?$filter=displayName eq 'Contoso Helpdesk'
List unifiedRoleDefinitions API を使用して、割り当てるロールを取得します。
すべての組み込みロールのロール定義 ID の一覧については、Microsoft Entra 組み込みロール を参照してください。
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": "<Object ID of user or group>",
"roleDefinitionId": "<ID of role definition>",
"directoryScopeId": "/"
}
応答
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignments/$entity",
"id": "<Role assignment ID>",
"roleDefinitionId": "<ID of role definition>",
"principalId": "<Object ID of user or group>",
"directoryScopeId": "/"
}
プリンシパルまたはロールの定義が存在しない場合、応答は見つかりません。
応答
HTTP/1.1 404 Not Found
アプリ登録スコープでロールを割り当てる
組み込みロールとカスタム ロールは、組織内のすべてのアプリ登録に対するアクセス許可を付与するために、テナント スコープで既定で割り当てられます。 さらに、カスタム ロールと関連する組み込みロール (Microsoft Entra リソースの種類に応じて) を、1 つの Microsoft Entra リソースのスコープで割り当てることもできます。 これにより、2 つ目のカスタム ロールを作成しなくても、1 つのアプリの資格情報と基本プロパティを更新するアクセス許可をユーザーに付与できます。
このセクションでは、アプリケーション登録スコープでロールを割り当てる方法について説明します。
少なくとも アプリケーション開発者 として、Microsoft Entra 管理センター にサインインします。
[ID] >[アプリケーション] >[アプリの登録] に移動します。
アプリケーションを選択します。 検索ボックスを使用して、目的のアプリを見つけることができます。
テナント内のアプリ登録の完全な一覧を表示するには、[すべてのアプリケーション を選択する必要がある場合があります。
左側のナビゲーション メニューから [ロールと管理者 を選択して、アプリの登録で割り当てることができるすべてのロールの一覧を表示します。
目的のロールを選択します。
ヒント
Microsoft Entra の組み込みロールまたはカスタム ロールの一覧はここには表示されません。 これは想定されています。 アプリの登録の管理にのみ関連するアクセス許可を持つロールが表示されます。
割り当ての追加 を選択し、このロールを割り当てるユーザーまたはグループを選択します。
[追加] を選択して、アプリの登録にスコープ設定したロールを割り当てます。
PowerShell を使用してアプリケーション スコープで Microsoft Entra ロールを割り当てるには、次の手順に従います。
PowerShell ウィンドウを開きます。 必要に応じて、Install-Module を使用して Microsoft Graph PowerShell をインストールします。 詳細については、「powerShell または Graph Explorerを使用するための 前提条件」を参照してください。
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-MgServicePrincipal コマンドを使用します。
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
次の手順に従って、Graph Explorer で Microsoft Graph API を使用してアプリケーション スコープでロールを割り当てます。
Graph Explorer にサインインします。
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 アプリケーション 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": "<Object ID of user>",
"roleDefinitionId": "<ID of role definition>",
"directoryScopeId": "/<Object ID of app registration>"
}
応答
HTTP/1.1 201 Created
手記
この例では、管理単位セクションとは異なり、directoryScopeId
は /<ID>
として指定されています。 これは意図的な設計です。 /<ID>
のスコープは、プリンシパルがその Microsoft Entra オブジェクトを管理できることを意味します。 スコープ /administrativeUnits/<ID>
は、プリンシパルが管理単位自体ではなく、(プリンシパルが割り当てられているロールに基づいて) 管理単位のメンバーを管理できることを意味します。
管理単位スコープでロールを割り当てる
Microsoft Entra ID では、より詳細な管理制御のために、1 つ以上の 管理単位 に制限されたスコープを持つ Microsoft Entra ロールを割り当てることができます。 管理単位のスコープで Microsoft Entra ロールが割り当てられている場合、役割のアクセス許可は管理単位自体のメンバーを管理する場合にのみ適用され、テナント全体の設定や構成には適用されません。
たとえば、管理単位のスコープでグループ管理者ロールが割り当てられている管理者は、管理単位のメンバーであるグループを管理できますが、テナント内の他のグループを管理することはできません。 また、有効期限やグループの名前付けポリシーなど、グループに関連するテナント レベルの設定を管理することもできません。
このセクションでは、管理単位スコープで Microsoft Entra ロールを割り当てる方法について説明します。
前提 条件
各管理単位管理者の Microsoft Entra ID P1 または P2 ライセンス
管理単位メンバー向けの Microsoft Entra ID 無料ライセンス
特権ロール管理者
PowerShell を使用する場合の Microsoft Graph PowerShell モジュール
Microsoft Graph API 用 Graph エクスプローラーを使用する場合の管理者の同意
詳細については、「powerShell または Graph Explorerを使用するための 前提条件」を参照してください。
管理単位スコープで割り当てることができるロール
次の Microsoft Entra ロールは、管理単位スコープで割り当てることができます。 さらに、カスタム ロールのアクセス許可にユーザー、グループ、またはデバイスに関連するアクセス許可が少なくとも 1 つ含まれている限り、カスタム ロール を管理単位スコープで割り当てることができます。
役割
説明
認証管理者
割り当てられた管理単位でのみ、管理者以外のユーザーの認証方法情報を表示、設定、リセットするためのアクセス権を持ちます。
クラウド デバイス管理者
Microsoft Entra ID でデバイスを管理するための制限付きアクセス。
グループ管理者
割り当てられた管理単位内のグループのすべての側面のみを管理できます。
ヘルプデスク管理者
割り当てられた管理単位でのみ、管理者以外のパスワードをリセットできます。
ライセンス管理者
管理単位内でのみ、ライセンスの割り当てを割り当て、削除、および更新できます。
パスワード管理者
割り当てられた管理単位内の管理者以外のパスワードのみをリセットできます。
プリンター管理者
プリンターとプリンター コネクタを管理できます。 詳細については、「ユニバーサル印刷 でプリンターの管理を委任する」を参照してください。
特権認証管理者
任意のユーザー (管理者または管理者以外) の認証方法の情報を表示、設定、リセットするためにアクセスできます。
SharePoint 管理者
割り当てられた管理単位でのみ、Microsoft 365 グループを管理できます。 管理単位の Microsoft 365 グループに関連付けられている SharePoint サイトの場合、Microsoft 365 管理センターを使用してサイトのプロパティ (サイト名、URL、外部共有ポリシー) を更新することもできます。 SharePoint 管理センターまたは SharePoint API を使用してサイトを管理することはできません。
Teams 管理者
割り当てられた管理単位でのみ、Microsoft 365 グループを管理できます。 割り当てられた管理単位内のグループに関連付けられているチームの Microsoft 365 管理センターでチーム メンバーを管理できます。 Teams 管理センターを使用できません。
Teams デバイス管理者
Teams 認定デバイスで管理関連のタスクを実行できます。
ユーザー管理者
割り当てられた管理単位内の制限付き管理者のパスワードのリセットなど、ユーザーとグループのすべての側面を管理できます。 現在、ユーザーのプロフィール写真を管理することはできません。
<カスタム ロール>
カスタム ロールの定義に従って、ユーザー、グループ、またはデバイスに適用されるアクションを実行できます。
特定のロールのアクセス許可は、管理単位のスコープで割り当てられている場合、管理者以外のユーザーにのみ適用されます。 言い換えると、管理単位に属する ヘルプデスク管理者は、管理者ロールを持たない場合に限り、管理単位内のユーザーのパスワードをリセットできます。 アクションのターゲットが別の管理者である場合、次のアクセス許可の一覧が制限されます。
ユーザー認証方法の読み取りと変更、またはユーザー パスワードのリセット
電話番号、連絡用メール アドレス、Open Authorization (OAuth) 秘密鍵などの機密性の高いユーザー プロパティを変更する
ユーザー アカウントを削除または復元する
管理単位スコープで割り当てることができるセキュリティ プリンシパル
次のセキュリティ プリンシパルは、管理単位スコープを持つロールに割り当てることができます。
ユーザー
Microsoft Entra の [ロールを割り当て可能] グループ
サービス プリンシパル
サービス プリンシパルとゲスト ユーザー
サービス プリンシパルとゲスト ユーザーは、オブジェクトの読み取りに対応するアクセス許可も割り当てられない限り、管理単位をスコープとしたロールの割り当てを使用できません。 これは、サービス プリンシパルとゲスト ユーザーは、管理アクションを実行するために必要なディレクトリ読み取りアクセス許可を既定で受け取らないためです。 サービス プリンシパルまたはゲスト ユーザーが管理単位をスコープとするロールの割り当てを使用できるようにするには、テナント スコープで ディレクトリ閲覧者 ロール (または読み取りアクセス許可を含む別のロール) を割り当てる必要があります。
現在、管理単位をスコープにしたディレクトリ読み取りアクセス許可を割り当てることはできません。 ユーザーの既定のアクセス許可の詳細については、「既定のユーザーアクセス許可 」を参照してください。
管理単位スコープでロールを割り当てる
このセクションでは、管理単位スコープでロールを割り当てる方法について説明します。
Microsoft Entra 管理センター に特権ロール管理者 以上としてサインインします。
[ID] >[役割と管理者] >[管理単位] 。
管理単位を選択します。
左側のナビゲーション メニューから [ロールと管理者] を選択すると、管理単位で割り当てることができるすべてのロールの一覧が表示されます。
目的のロールを選択します。
ヒント
Microsoft Entra の組み込みロールまたはカスタム ロールの一覧はここには表示されません。 これは想定されています。 管理単位内でサポートされているオブジェクトに関連するアクセス許可を持つロールを示します。 管理単位内でサポートされているオブジェクトの一覧については、「Microsoft Entra IDの管理単位 参照してください。
割り当ての追加 を選択し、このロールを割り当てるユーザーまたはグループを選択します。
[ の追加] を選択して、管理単位にスコープされたロールを割り当てます。
PowerShell を使用して管理単位スコープで Microsoft Entra ロールを割り当てるには、次の手順に従います。
PowerShell ウィンドウを開きます。 必要に応じて、Install-Module を使用して Microsoft Graph PowerShell をインストールします。 詳細については、「powerShell または Graph Explorerを使用するための 前提条件」を参照してください。
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
次の手順に従って、Graph Explorer の Microsoft Graph API を使用して、管理単位スコープでロールを割り当てます。
Create unifiedRoleAssignment API を使用してロールを割り当てる
Graph Explorer にサインインします。
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": "<Object ID of user>",
"roleDefinitionId": "<ID of role definition>",
"directoryScopeId": "/administrativeUnits/<Object ID of administrative unit>"
}
応答
HTTP/1.1 201 Created
ロールがサポートされていない場合、応答は不適切な要求です。
HTTP/1.1 400 Bad Request
{
"odata.error":
{
"code":"Request_BadRequest",
"message":
{
"message":"The given built-in role is not supported to be assigned to a single resource scope."
}
}
}
手記
この例では、directoryScopeId
は /<ID>
ではなく /administrativeUnits/<ID>
として指定されています。 これは仕様です。 スコープ /administrativeUnits/<ID>
は、プリンシパルが管理単位自体ではなく、(プリンシパルが割り当てられているロールに基づいて) 管理単位のメンバーを管理できることを意味します。 /<ID>
のスコープは、プリンシパルがその Microsoft Entra オブジェクト自体を管理できることを意味します。 アプリ登録セクションでは、アプリの登録をスコープとするロールによってオブジェクト自体を管理する権限が付与されるため、スコープが /<ID>
されていることがわかります。
[scopedRoleMember API の追加] を使用してロールを割り当てる
または、Add a scopedRoleMember API を使用して、管理単位スコープを持つロールを割り当てることができます。
依頼
POST /directory/administrativeUnits/{admin-unit-id}/scopedRoleMembers
本体
{
"roleId": "roleId-value",
"roleMemberInfo": {
"id": "id-value"
}
}
次の手順