Criar funções personalizadas para gerenciar aplicativos empresariais no Microsoft Entra ID

Este artigo explica como criar uma função personalizada com permissões para gerenciar atribuições de aplicativo empresarial para usuários e grupos no Microsoft Entra ID. Para os elementos das atribuições de função e o significado de termos como subtipo, permissão e conjunto de propriedades, consulte a visão geral das funções personalizadas.

Pré-requisitos

  • Licença P1 ou P2 do Microsoft Entra ID
  • Administrador de função com privilégios ou Administrador global
  • SDK do PowerShell do Microsoft Graph instalado ao usar o PowerShell
  • Consentimento do administrador ao usar o Explorador do Graph para a API do Microsoft Graph

Para mais informações, confira Pré-requisitos para usar o PowerShell ou o Explorador do Graph.

Permissões função de aplicativo empresarial

Há duas permissões de aplicativo empresarial discutidas neste artigo. Todos os exemplos usam a permissão de atualização.

  • Para ler as atribuições de usuário e de grupo no escopo, conceda a permissão microsoft.directory/servicePrincipals/appRoleAssignedTo/read
  • Para gerenciar as atribuições de usuário e de grupo no escopo, conceda a permissão microsoft.directory/servicePrincipals/appRoleAssignedTo/update

A concessão da permissão de atualização faz com que o destinatário seja capaz de gerenciar atribuições de usuários e grupos a aplicativos empresariais. O escopo de atribuições de usuário e/ou grupo pode ser concedido para um único aplicativo ou concedido para todos os aplicativos. Se concedida em toda a organização, o destinatário poderá gerenciar atribuições para todos os aplicativos. Se isso for feito no nível de aplicativo, o destinatário poderá gerenciar atribuições somente para o aplicativo especificado.

A concessão da permissão de atualização é feita em duas etapas:

  1. Crie uma função personalizada com a permissão microsoft.directory/servicePrincipals/appRoleAssignedTo/update
  2. Conceda permissões a usuários ou grupos para gerenciar atribuições de usuário e de grupo para aplicativos empresariais. Isso ocorre quando você pode definir o escopo para toda a organização ou para um único aplicativo.

Centro de administração Microsoft Entra

Criar uma função personalizada

Dica

As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.

Observação

As funções personalizadas são criadas e gerenciadas em um nível de toda a organização e estão disponíveis somente na página de visão geral da organização.

  1. Entre no Centro de administração do Microsoft Entra como, no mínimo, um Administrador de funções com privilégios.

  2. Navegue até Identidade>Funções e administradores>Funções e administradores.

  3. Selecione Nova função personalizada.

    Add a new custom role from the roles list in Microsoft Entra ID

  4. Na guia Básico, forneça "Gerenciar atribuições de usuário e grupo" para o nome da função e "Conceder permissões para gerenciar atribuições de usuário e de grupo" para a descrição da função e, em seguida, selecione Avançar.

    Provide a name and description for the custom role

  5. Na guia Permissões, digite "microsoft.directory/servicePrincipals/appRoleAssignedTo/update" na caixa de pesquisa e, em seguida, marque as caixas de seleção ao lado das permissões desejadas e selecione Avançar.

    Add the permissions to the custom role

  6. Na guia Examinar + criar, examine as permissões e selecione Criar.

    Now you can create the custom role

Atribuir a função a um usuário usando o centro de administração do Microsoft Entra

  1. Entre no Centro de administração do Microsoft Entra como, no mínimo, um Administrador de funções com privilégios.

  2. Navegue até Identidade>Funções e administradores>Funções e administradores.

  3. Selecione a função Gerenciar atribuições de usuários e grupos.

    Open Roles and Administrators and search for the custom role

  4. Selecione Adicionar atribuição, selecione o usuário desejado e, em seguida, clique em Selecionar para adicionar a atribuição de função ao usuário.

    Add an assignment for the custom role to the user

Dicas de atribuição

  • Para conceder permissões para destinatários gerenciarem acesso de usuários e grupo a todos os aplicativos empresariais, inicie na lista de Funções e Administradores de toda a organização na página de Visão geral do Microsoft Entra ID da sua organização.

  • Para conceder permissões a destinatários para gerenciarem o acesso de usuários e de grupo a um aplicativo empresarial específico, acesse o aplicativo no Microsoft Entra ID e abra na lista Funções e Administradores do aplicativo. Selecione a nova função personalizada e conclua a atribuição de usuário ou grupo. Os destinatários podem gerenciar acesso de usuários e de grupo somente para o aplicativo específico.

  • Para testar a atribuição de função personalizada, entre como o destinatário e abra a página Usuários e grupos de um aplicativo para verificar se a opção Adicionar usuário está habilitada.

    Verify the user permissions

PowerShell

Para obter mais detalhes, confira Criar e atribuir uma função personalizada no Microsoft Entra ID e Atribuir funções personalizadas com o escopo do recurso usando o PowerShell.

Criar uma função personalizada

Crie uma função usando o seguinte script do 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

Atribuir a função personalizada

Atribua a função usando esse script do 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

API do Microsoft Graph

Use a API Criar unifiedRoleDefinition para criar uma função personalizada. Para obter mais informações, consulte Criar e atribuir uma função personalizada no Microsoft Entra ID e Atribuir funções de administrador personalizadas usando a API do Microsoft Graph.

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

Atribuir a função personalizada usando a API do Microsoft Graph

Use a API Criar unifiedRoleAssignment para atribuir a função personalizada. A atribuição de função combina uma ID de entidade de segurança (que pode ser um usuário ou uma entidade de serviço), uma ID de definição de função e um escopo de recurso do Microsoft Entra. Para obter mais informações sobre os elementos de uma atribuição de função, consulte a visão geral de funções personalizadas

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": "/"
}

Próximas etapas