Gerenciar as políticas de consentimento do aplicativo

As políticas de consentimento do aplicativo são uma forma de gerenciar as permissões que os aplicativos têm para acessar dados em sua organização. Elas são usadas para controlar com quais aplicativos os usuários podem consentir e para garantir que os aplicativos atendam a determinados critérios antes de poderem acessar dados. Essas políticas ajudam as organizações a manter o controle sobre seus dados e a garantir que elas concedam acesso apenas a aplicativos confiáveis.

Neste artigo, você aprenderá a gerenciar políticas internas e personalizadas de consentimento do aplicativo para controlar quando o consentimento pode ser concedido.

Com o Microsoft Graph e o Microsoft Graph PowerShell, você pode visualizar e gerenciar políticas de consentimento do aplicativo.

Uma política de consentimento do aplicativo consiste em um ou mais conjuntos de condições "inclui" e zero ou mais conjuntos de condições "exclui". Para que um evento seja considerado em uma política de consentimento do aplicativo, ele deve corresponder a pelo menos um conjunto de condições "inclui" e não deve corresponder a nenhum conjunto de condições de "exclui".

Cada conjunto de condições consiste em várias condições. Para que um evento corresponder a um conjunto de condições, todas as condições no conjunto de condições devem ser atendidas.

As políticas de consentimento do aplicativo em que a ID começa com "microsoft-" são políticas internas. Algumas dessas políticas internas são usadas em funções de diretório internos existentes. Por exemplo, a política de consentimento do aplicativo microsoft-application-admin descreve as condições sob as quais as funções Administrador de Aplicativos e Administrador de Aplicativos de Nuvem têm permissão para conceder consentimento de administrador em todo o locatário. As políticas internas podem ser usadas em funções de diretório personalizadas e para definir configurações de consentimento do usuário, mas não podem ser editadas ou excluídas.

Pré-requisitos

Para gerenciar políticas de consentimento do aplicativo para aplicativos com o Microsoft Graph PowerShell, conecte-se ao Microsoft Graph PowerShell.

Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

É uma boa ideia começar familiarizando-se com as políticas de consentimento do aplicativo existentes em sua organização:

  1. Listar todas as políticas de consentimento do aplicativo:

    Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
    
  2. Exibir os conjuntos de condições "inclui" de uma política:

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    
  3. Exibir os conjuntos de condições "exclui":

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    

Siga estas etapas para criar uma política de consentimento de aplicativo personalizada:

  1. Crie uma nova política de consentimento de aplicativo vazia.

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-policy" `
        -DisplayName "My first custom consent policy" `
        -Description "This is a sample custom app consent policy."
    
  2. Adicione conjuntos de condições "inclui".

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -PermissionClassification "low" `
        -ClientApplicationsFromVerifiedPublisherOnly
    

    Repita essa etapa para adicionar mais conjuntos de condições "include".

  3. Opcionalmente, adicione os conjuntos de condição "exclui".

    # Retrieve the service principal for the Azure Management API
    $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')"
    
    # Exclude delegated permissions for the Azure Management API
    New-MgPolicyPermissionGrantPolicyExclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

    Repita essa etapa para adicionar mais conjuntos de condições "exclude".

Depois de criar a política de consentimento do aplicativo, você precisa atribuí-la a uma função personalizada no Microsoft Entra ID. Em seguida, você precisa atribuir usuários a essa função personalizada, que está anexada à política de consentimento do aplicativo que você criou. Para obter mais informações sobre como atribuir a política de consentimento do aplicativo a uma função personalizada, consulte permissões de consentimento do aplicativo para funções personalizadas.

O cmdlet a seguir é mostrado como você pode excluir uma política de consentimento de aplicativo personalizada.

   Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"

Para gerenciar as políticas de consentimento de aplicativo, entre no Explorador do Graph com uma das funções listadas na seção de pré-requisitos.

Você precisa consentir com a permissão Policy.ReadWrite.PermissionGrant.

É uma boa ideia começar familiarizando-se com as políticas de consentimento do aplicativo existentes em sua organização:

  1. Listar todas as políticas de consentimento do aplicativo:

    GET /policies/permissionGrantPolicies?$select=id,displayName,description
    
  2. Exibir os conjuntos de condições "inclui" de uma política:

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
    
  3. Exibir os conjuntos de condições "exclui":

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
    

Siga estas etapas para criar uma política de consentimento de aplicativo personalizada:

  1. Crie uma nova política de consentimento de aplicativo vazia.

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies
    Content-Type: application/json
    
    {
      "id": "my-custom-policy",
      "displayName": "My first custom consent policy",
      "description": "This is a sample custom app consent policy"
    }
    
  2. Adicione conjuntos de condições "inclui".

    Incluir permissões delegadas classificadas como “baixas” para aplicativos de editores verificados

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "PermissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

    Repita essa etapa para adicionar mais conjuntos de condições "include".

  3. Opcionalmente, adicione os conjuntos de condição "exclui". Excluir permissões delegadas da API de Gerenciamento do Azure (appId 00001111-aaaa-2222-bbbb-3333cccc4444)

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/my-custom-policy /excludes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 "
    }
    

    Repita essa etapa para adicionar mais conjuntos de condições "exclude".

Depois de criar a política de consentimento do aplicativo, você precisa atribuí-la a uma função personalizada no Microsoft Entra ID. Em seguida, você precisa atribuir usuários a essa função personalizada, que está anexada à política de consentimento do aplicativo que você criou. Para obter mais informações sobre como atribuir a política de consentimento do aplicativo a uma função personalizada, consulte permissões de consentimento do aplicativo para funções personalizadas.

  1. A seguir é mostrado como você pode excluir uma política de consentimento de aplicativo personalizada.

    DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
    

Aviso

As políticas de consentimento de aplicativo excluídas não podem ser restauradas. Se você excluir acidentalmente uma política de consentimento de aplicativo personalizada, será necessário recriar a política.

Condições com suporte

A tabela a seguir fornece a lista de condições com suporte para políticas de consentimento do aplicativo.

Condição Descrição
PermissionClassification A classificação de permissão para a permissão que está sendo concedida ou "all" para corresponder a qualquer classificação de permissão (incluindo permissões que não são classificadas). O padrão é "todos."
PermissionType O tipo de permissão da permissão que está sendo concedida. Use "application" para permissões de aplicativo (por exemplo, funções de aplicativo) ou "delegated" para permissões delegadas.

Observação: o valor "delegatedUserConsentable" indica permissões delegadas que não são configuradas pelo editor de API para exigir o consentimento do administrador. Esse valor pode ser usado em políticas internas de concessão de permissão, mas não pode ser usado em políticas de concessão de permissão personalizadas. Obrigatório.
ResourceApplication A AppID do aplicativo de recurso (por exemplo, a API) para o qual uma permissão está sendo concedida ou "any" para corresponder a qualquer aplicativo de recurso ou API. O padrão é "qualquer."
Permissões A lista de IDs de permissão para as permissões específicas a serem correspondidas ou uma lista com o valor único "all" para corresponder a qualquer permissão. O padrão é o valor único "todos."
As IDs de permissão delegadas podem ser encontradas na propriedade OAuth2Permissions do objeto ServicePrincipal da API.
– As IDs de permissão do aplicativo podem ser encontradas na propriedade AppRoles do objeto ServicePrincipal da API.
ClientApplicationIds Uma lista de valores AppId para os aplicativos cliente corresponderem ou uma lista com o único valor "all" para corresponder a qualquer aplicativo cliente. O padrão é o valor único "todos."
ClientApplicationTenantIds Uma lista de IDs de locatário do Microsoft Entra em que o aplicativo cliente está registrado ou uma lista com o valor único “all” para corresponder aos aplicativos cliente registrados em qualquer locatário. O padrão é o valor único "todos."
ClientApplicationPublisherIds Uma lista de IDs Microsoft Partner Network (MPN) para editores verificados do aplicativo cliente ou uma lista com o único valor "all" para corresponder aos aplicativos cliente de qualquer editor. O padrão é o valor único "todos."
ClientApplicationsFromVerifiedPublisherOnly Defina essa opção para corresponder apenas a aplicativos cliente com um editor verificado. Desabilite essa opção (-ClientApplicationsFromVerifiedPublisherOnly:$false) para corresponder a qualquer aplicativo cliente, mesmo que ele não tenha um editor verificado. O padrão é $false.
scopeType O tipo de escopo de recurso ao qual a pré-aprovação se aplica. Valores possíveis: group para grupos e equipes, chat para chats ou tenant para acesso a todo o locatário. Obrigatório.
sensitivityLabels Os rótulos de confidencialidade aplicáveis ao tipo de escopo e que não são pré-aprovados. Ele permite proteger dados organizacionais confidenciais. Saiba mais sobre rótulos de confidencialidade. Nota: o recurso de chat ainda não dá suporte a sensitivityLabels.

Próximas etapas

Para obter ajuda ou encontrar respostas às suas perguntas: