クイック スタート:無制限のアプリの登録を作成するアクセス許可を付与する
このクイック スタート ガイドでは、無制限の数のアプリの登録を作成するアクセス許可があるカスタム ロールを作成した後、そのロールをユーザーに割り当てます。 その後、割り当てられたユーザーは、Microsoft Entra 管理センター、Microsoft Graph PowerShell、または Microsoft Graph API を使用して、アプリケーションの登録を作成できます。 組み込みのアプリケーション開発者ロールとは異なり、このカスタム ロールには、無制限の数のアプリの登録を作成する権限が付与されます。 アプリケーション開発者ロールにもこの権限は付与されますが、ディレクトリ全体のオブジェクトのクォータに達することがないように、作成されるオブジェクトの合計数は 250 に制限されています。 Microsoft Entra カスタム ロールの作成と割り当てに必要な最小限の特権を持つロールは、特権ロール管理者です。
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
前提条件
- Microsoft Entra ID P1 または P2 ライセンス
- 特権ロール管理者
- PowerShell を使用する場合のMicrosoft Graph PowerShell モジュール
- Microsoft Graph API の Graph エクスプローラーを使用する場合の管理者の同意
詳細については、PowerShell または Graph エクスプローラーを使用するための前提条件に関するページを参照してください。
Microsoft Entra 管理センター
カスタム ロールを作成する
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
Microsoft Entra 管理センターに特権ロール管理者以上としてサインインします。
[ID] >[役割と管理者]>[役割と管理者] の順に移動します。
[新しいカスタム ロール] を選択します。
[基本] タブで、ロールの名前として「アプリケーション登録作成者」と入力し、ロールの説明に「無制限の数のアプリケーションの登録を作成できる」と入力して、[次へ] を選びます。
[アクセス許可] タブで、検索ボックスに「microsoft.directory/applications/create」と入力し、必要なアクセス許可の横にあるチェックボックスをオンにした後、[次へ] を選択します。
[確認と作成] タブでアクセス許可を確認し、 [作成] を選択します。
ロールを割り当てる
Microsoft Entra 管理センターに特権ロール管理者以上としてサインインします。
[ID]>[役割と管理者]>[役割と管理者] の順に移動します。
[アプリケーション登録作成者] ロールを選択し、[割り当ての追加] を選択します。
目的のユーザーを選択し、[選択] をクリックして、ユーザーをロールに追加します。
これで完了です。 このクイックスタートでは、無制限の数のアプリの登録を作成するアクセス許可を持つカスタム ロールを作成した後、そのロールをユーザーに割り当てることに成功しました。
ヒント
Microsoft Entra 管理センター を使用してアプリケーションにロールを割り当てるには、[割り当て] ページの [検索] ボックスにアプリケーションの名前を入力します。 既定では、アプリケーションは一覧に表示されませんが、検索結果には返されます。
アプリの登録とアクセス許可
アプリケーションの登録を作成する権限を付与するために使用できるアクセス許可は 2 つあり、それぞれ動作が異なります。
- microsoft.directory/applications/createAsOwner: このアクセス許可を割り当てると、作成者は、作成されたアプリの登録の最初の所有者として追加され、作成されたアプリの登録は、その作成者の 250 という作成オブジェクト クォータのカウント対象になります。
- microsoft.directory/applications/create: このアクセス許可を割り当てると、作成者は、作成されたアプリの登録の最初の所有者としては追加されず、作成されたアプリの登録は、その作成者の 250 という作成オブジェクト クォータのカウント対象になりません。 担当者がディレクトリ レベルのクォータに達するまでアプリの登録を作成できないようにするものはないため、このアクセス許可は慎重に使用してください。 両方のアクセス許可が割り当てられている場合は、このアクセス許可が優先されます。
PowerShell
カスタム ロールを作成する
次の PowerShell スクリプトを実行して、新しいロールを作成します。
# Basic role information
$displayName = "Application Registration Creator"
$description = "Can create an unlimited number of application registrations."
$templateId = (New-Guid).Guid
# Set of permissions to grant
$allowedResourceAction =
@(
"microsoft.directory/applications/create"
"microsoft.directory/applications/createAsOwner"
)
$rolePermissions = @{'allowedResourceActions'= $allowedResourceAction}
# Create new custom admin role
$customRole = New-MgRoleManagementDirectoryRoleDefinition -DisplayName $displayName -Description $description -RolePermissions $rolePermissions -TemplateId $templateId -IsEnabled:$true
ロールを割り当てる
次の PowerShell スクリプトを使用してロールを割り当てます。
# Get the user and role definition you want to link
$user = Get-MgUser -Filter "UserPrincipalName eq 'Adam@contoso.com'"
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Application Registration Creator'"
# Get resource scope for assignment
$resourceScope = '/'
# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $resourceScope -RoleDefinitionId $roleDefinition.Id -PrincipalId $user.Id
Microsoft Graph API
カスタム ロールを作成する
Create unifiedRoleDefinition API を使用して、カスタム ロールを作成します。
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions
Body
{
"description": "Can create an unlimited number of application registrations.",
"displayName": "Application Registration Creator",
"isEnabled": true,
"rolePermissions":
[
{
"allowedResourceActions":
[
"microsoft.directory/applications/create"
"microsoft.directory/applications/createAsOwner"
]
}
],
"templateId": "<PROVIDE NEW GUID HERE>",
"version": "1"
}
ロールを割り当てる
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": "/"
}
次のステップ
- Microsoft Entra 管理ロール フォーラムでお気軽にご意見をお寄せください。
- Microsoft Entra ロールの詳細については、「Microsoft Entra 組み込みロール」を参照してください。
- 既定のユーザー アクセス許可について詳しくは、ゲスト ユーザーとメンバー ユーザーの既定のアクセス許可の比較に関するページを参照してください。