Compartilhar via


Revisar as permissões concedidas a aplicativos corporativos

Neste artigo, você aprende a revisar as permissões concedidas a aplicativos em seu locatário do Microsoft Entra. Talvez seja necessário revisar as permissões quando você detectar um aplicativo mal-intencionado ou um que tenha mais permissões do que o necessário. Você aprende a revogar permissões concedidas ao aplicativo usando o Microsoft API do Graph e versões existentes do PowerShell.

As etapas deste artigo se aplicam a todos os aplicativos que foram adicionados ao seu locatário do Microsoft Entra por consentimento do usuário ou do administrador. Para saber mais sobre como consentir com aplicativos, confira Consentimento do usuário e do administrador.

Pré-requisitos

Para revisar as permissões concedidas aos aplicativos, você precisa:

  • Uma conta do Microsoft Entra com uma assinatura ativa. Crie uma conta gratuitamente.
  • Uma das seguintes funções:
    • Administrador de Aplicativos na Nuvem
    • Administrador de aplicativos.
    • Um proprietário da entidade de serviço que não é administrador pode invalidar os tokens de atualização.

Examinar e revogar permissões no centro de administração do Microsoft Entra

Você pode acessar o centro de administração do Microsoft Entra para exibir as permissões concedidas a um aplicativo. Você pode revogar permissões concedidas por administradores para toda a organização e pode obter scripts contextuais do PowerShell para executar outras ações.

Para obter informações sobre como restaurar permissões revogadas ou excluídas, confira Restaurar permissões concedidas a aplicativos.

Para examinar as permissões de aplicativo concedidas para toda a organização ou para um usuário ou grupo específico:

  1. Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativo de nuvem.
  2. Navegue até Identidade>Aplicativos>Aplicativos Empresariais>Todos os aplicativos.
  3. Selecione o aplicativo ao qual você deseja restringir o acesso.
  4. Selecione Permissões.
  5. Para exibir as permissões que se aplicam a toda a sua organização, selecione a guia Consentimento do administrador. Para exibir as permissões concedidas a um usuário ou grupo específico, selecione a guia Consentimento do usuário.
  6. Para exibir os detalhes de uma determinada permissão, selecione a permissão na lista. Isso abre o painel Detalhes de Permissão. Após revisar as permissões concedidas a um aplicativo, você pode revogar as permissões concedidas pelos administradores para toda a organização.

    Observação

    Não é possível revogar permissões na guia Consentimento do usuário utilizando o portal. Você pode revogar essas permissões utilizando chamadas à API do Microsoft Graph ou cmdlets do PowerShell. Vá para as guias PowerShell e Microsoft Graph deste artigo para obter mais informações.

Para revogar permissões na guia Consentimento do administrador:

  1. Exibir a lista de permissões na guia Consentimento do administrador.
  2. Selecione a permissão que deseja revogar e, em seguida, selecione o controle ... para essa permissão. Captura de tela mostrando como revogar o consentimento do administrador.
  3. Selecione Revogar permissão.

Examinar e revogar permissões usando o Microsoft Entra PowerShell

Use o seguinte script do Microsoft Entra PowerShell para revogar todas as permissões concedidas a um aplicativo. Você precisa entrar como, pelo menos, um Administrador de Aplicativos de Nuvem.

Connect-Entra -scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" 

# Get Service Principal using objectId
$app_name = "<app-displayName>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"

# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-EntraOAuth2PermissionGrant -All | Where-Object { $_.clientId -eq $sp.ObjectId }

# Remove all delegated permissions granted to the service principal
$spOAuth2PermissionsGrants | ForEach-Object {
    Remove-EntraOAuth2PermissionGrant -ObjectId $_.ObjectId
}

# Get all application permissions for the service principal
$spApplicationPermissions = Get-EntraServicePrincipalAppRoleAssignment -ObjectId $sp.ObjectId -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }

# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
    Remove-EntraServicePrincipalAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.objectId
}

Remover todas as atribuições de usuário e grupo usando o Microsoft Entra PowerShell

Remover appRoleAssignments para usuários ou grupos no aplicativo usando os scripts a seguir.

connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId

# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All $true

# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
    if ($_.PrincipalType -eq "User") {
        Remove-EntraUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    } elseif ($_.PrincipalType -eq "Group") {
        Remove-EntraGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    }
}

Examinar e revogar permissões usando o PowerShell do Microsoft Graph

Use o script do PowerShell do Microsoft Graph a seguir para revogar todas as permissões concedidas a um aplicativo. Você precisa entrar como, pelo menos, um Administrador de Aplicativos de Nuvem.

Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"

# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"

Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'

# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants= Get-MgOauth2PermissionGrant -All| Where-Object { $_.clientId -eq $sp.Id }

# Remove all delegated permissions
$spOauth2PermissionsGrants |ForEach-Object {
  Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}

# Get all application permissions for the service principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $Sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }

# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id  -AppRoleAssignmentId $_.Id
}

Remover todas as atribuições de usuário e grupo usando o Microsoft Graph PowerShell

Remover appRoleAssignments para usuários ou grupos no aplicativo usando os scripts a seguir.

Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"

# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"

Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'

# Get Microsoft Entra App role assignments using objectID of the Service Principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalID $sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }

# Revoke refresh token for all users assigned to the application
  $spApplicationPermissions | ForEach-Object {
  Remove-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $_.PrincipalId -AppRoleAssignmentId $_.Id
}

Examinar e revogar permissões usando o Microsoft Graph

Para examinar as permissões, entre no Graph Explorer como pelo menos um Administrador de Aplicativos na Nuvem.

Será necessário consentir com as seguintes permissões:

Application.ReadWrite.All, Directory.ReadWrite.All, DelegatedPermissionGrant.ReadWrite.All, AppRoleAssignment.ReadWrite.All.

Permissões delegadas

Execute as consultas a seguir para avaliar as permissões delegadas concedidas a um aplicativo.

  1. Obter a entidade de serviço usando a ID do objeto.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    

    Exemplo:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
    
  2. Obter todas as permissões delegadas para o principal de serviço

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
    
  3. Remova as permissões delegadas usando a ID oAuth2PermissionGrants.

    DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
    

Permissões de aplicativo

Execute as consultas a seguir para avaliar as permissões de aplicativo concedidas a um aplicativo.

  1. Obter todas as permissões de aplicativo para a entidade de serviço

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. Remover permissões de aplicativo usando o identificador appRoleAssignment

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Remover todas as atribuições de usuário e grupo usando o Microsoft Graph

Execute as consultas a seguir para remover appRoleAssignments de usuários ou grupos do aplicativo.

  1. Obter a entidade de serviço usando a objectID.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    

    Exemplo:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  2. Obtenha as atribuições de função do Aplicativo Microsoft Entra usando o objectID do Principal de Serviço.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
    
  3. Revogar o token de atualização dos usuários e dos grupos atribuídos ao aplicativo usando a ID da appRoleAssignment.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Observação

A revogação da permissão concedida atual não impede que os usuários consentam novamente com as permissões solicitadas pelo aplicativo. Você precisa impedir o aplicativo de solicitar as permissões por meio do consentimento dinâmico. Se você quiser impedir que os usuários deem consentimento, leia Configurar como os usuários consentem com os aplicativos.

Outra autorização a ser considerada

Permissões delegadas e de aplicativo não são as únicas maneiras de conceder acesso a aplicativos e usuários a recursos protegidos. Os administradores devem estar cientes de outros sistemas de autorização que podem conceder acesso a informações confidenciais. Exemplos de vários sistemas de autorização na Microsoft incluem Funções padrão do Microsoft Entra, RBAC do Exchange e Consentimento específico de recurso do Teams.