快速入門:授與建立無限制應用程式註冊的許可權

在本快速入門指南中,您會建立具有許可權的自定義角色,以建立無限制數目的應用程式註冊,然後將該角色指派給使用者。 指派的用戶接著可以使用 Microsoft Entra 系統管理中心、Microsoft Graph PowerShell 或 Microsoft Graph API 來建立應用程式註冊。 不同於內建應用程式開發人員角色,此自定義角色會授與建立無限制數目的應用程式註冊的能力。 應用程式開發人員角色會授與能力,但所建立對象的總數限製為 250,以防止達到 整個目錄的物件配額。 建立和指派 Microsoft Entra 自定義角色所需的最低特殊許可權角色是 Privileged Role 管理員 istrator。

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

必要條件

  • Microsoft Entra ID P1 或 P2 授權
  • 特殊權限角色管理員或全域管理員
  • 使用 PowerShell 時的 Microsoft Graph PowerShell 模組
  • 針對 Microsoft Graph API 使用 Graph 總管時的管理員同意

如需詳細資訊,請參閱 使用PowerShell或 Graph 總管的必要條件。

Microsoft Entra 系統管理中心

建立自訂角色

提示

本文中的步驟可能會根據您從開始的入口網站稍有不同。

  1. 以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心

  2. 流覽至 [身分>識別角色] 和 [系統管理員>角色] 和 [系統管理員]。

  3. 選取 [新增自訂角色]

    Create or edit roles from the Roles and administrators page

  4. 在 [ 基本] 索引 標籤上,提供角色名稱的「應用程式註冊建立者」,並針對角色描述提供「應用程式註冊建立者」,然後選取 [下一步]。

    provide a name and description for a custom role on the Basics tab

  5. 在 [ 許可權] 索引卷標的搜尋方塊中輸入 “microsoft.directory/applications/create”,然後選取所需許可權旁的複選框,然後選取 [下一步]。

    Select the permissions for a custom role on the Permissions tab

  6. 在 [檢閱 + 建立] 索引標籤上檢閱權限,然後選取 [建立]

指派角色

  1. 以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心

  2. 流覽至 [身分>識別角色] 和 [系統管理員>角色] 和 [系統管理員]。

  3. 選取 [應用程式註冊建立者] 角色,然後選取 [ 新增指派]。

  4. 選取所需的使用者,然後按兩下 [ 選取 ] 將使用者新增至角色。

完成! 在本快速入門中,您已成功建立具有許可權的自定義角色,以建立無限制數目的應用程式註冊,然後將該角色指派給使用者。

提示

若要使用 Microsoft Entra 系統管理中心將角色指派給應用程式,請在指派頁面的搜尋方塊中輸入應用程式的名稱。 應用程式預設不會顯示在清單中,而是會在搜尋結果中傳回。

應用程式註冊許可權

有兩種權限可用來授與建立應用程式註冊的能力,兩者各有其不同的行為。

  • 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

建立自訂角色

使用建立 unifiedRoleDefinition API 來建立自定義角色。

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

本文

{
    "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"
}

指派角色

使用建立 unifiedRoleAssignment API 來指派自定義角色。 角色指派結合了安全性主體標識碼(可以是使用者或服務主體)、角色定義(角色)標識碼,以及 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": "/"
}

下一步