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 Azure com uma assinatura ativa. Crie uma conta gratuitamente.
  • Uma das seguintes funções: Administrador de Aplicativos de Nuvem, Administrador de Aplicativos.
  • Um proprietário da entidade de serviço que não é administrador pode invalidar tokens de atualização.

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

Dica

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

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 Aplicativos 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 Notificaçã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 PowerShell do Azure AD

Use o script do PowerShell do Azure AD 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-AzureAD 

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

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

# Remove all delegated permissions
$spOAuth2PermissionsGrants | ForEach-Object {
    Remove-AzureADOAuth2PermissionGrant -ObjectId $_.ObjectId
}

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

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

Invalidar os tokens de atualização usando o PowerShell do Azure AD

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

Connect-AzureAD

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get Azure AD App role assignments using objectID of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true | Where-Object {$_.PrincipalType -eq "User"}

# Revoke refresh token for all users assigned to the application
$assignments | ForEach-Object {
    Revoke-AzureADUserAllRefreshToken -ObjectId $_.PrincipalId
}

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
}

Invalidar os tokens de atualização usando o PowerShell do Microsoft Graph

Remover aplicativo RoleAssignments 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 Azure AD 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.

Você precisa 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 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 a entidade 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 do 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 a ID appRoleAssignment

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

Invalidar os tokens de atualização usando o Microsoft Graph

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

  1. Obter entidade de serviço usando 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 da Entidade de Serviço.

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

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

Observação

A revogação da permissão atualmente concedida não impede que os usuários efetuem um novo consentimento para 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 internas do Microsoft Entra, RBAC do Exchange e Consentimento específico de recurso do Teams.

Próximas etapas