Dela via


Granska behörigheter som beviljats företagsapplikationer

I den här artikeln får du lära dig hur du granskar behörigheter som beviljats för program i din Microsoft Entra-klientorganisation. Du kan behöva granska behörigheter när du identifierar ett skadligt program eller ett program som har fler behörigheter än vad som är nödvändigt. Du lär dig hur du återkallar behörigheter som beviljats programmet med hjälp av Microsoft Graph API och befintliga versioner av PowerShell.

Stegen i den här artikeln gäller för alla program som har lagts till i din Microsoft Entra-klient via användar- eller administratörsmedgivande. Mer information om medgivande till program finns i Användar- och administratörsmedgivande.

Förutsättningar

För att granska behörigheter som beviljats program behöver du:

  • Ett Microsoft Entra-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
  • En av följande roller:
    • Molnprogramadministratör
    • Programadministratör.
    • En ägare av tjänstens huvudnamn som inte är administratör kan ogiltigförklara uppdateringstoken.

Granska och återkalla behörigheter i administrationscentret för Microsoft Entra

Du kan komma åt administrationscentret för Microsoft Entra för att visa de behörigheter som beviljats till en app. Du kan återkalla behörigheter som beviljats av administratörer för hela organisationen och du kan hämta kontextuella PowerShell-skript för att utföra andra åtgärder.

Information om hur du återställer återkallade eller borttagna behörigheter finns i Återställa behörigheter som beviljats till program.

Så här granskar du ett programs behörigheter som beviljats för hela organisationen eller till en specifik användare eller grupp:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.
  2. Bläddra till Identity>Applikationer>Företagsapplikationer>Alla applikationer.
  3. Välj det program som du vill begränsa åtkomsten till.
  4. Välj Behörigheter.
  5. Om du vill visa behörigheter som gäller för hela organisationen väljer du fliken Administratörsmedgivande . Om du vill visa behörigheter som beviljats en viss användare eller grupp väljer du fliken Användarmedgivande .
  6. Om du vill visa information om en viss behörighet väljer du behörigheten i listan. Fönstret Behörighetsinformation öppnas. När du har granskat de behörigheter som beviljats en applikation kan du återkalla behörigheter som beviljats av administratörer för hela organisationen.

    Kommentar

    Du kan inte återkalla behörigheter på fliken Användarmedgivande med hjälp av portalen. Du kan återkalla dessa behörigheter med hjälp av Microsoft Graph API-anrop eller PowerShell-cmdletar. Gå till flikarna PowerShell och Microsoft Graph i den här artikeln om du vill ha mer information.

Så här återkallar du behörigheter på fliken Administratörsmedgivande :

  1. Visa listan över behörigheter på fliken Administratörsmedgivande .
  2. Välj den behörighet som du vill återkalla och välj sedan ... kontrollen för den behörigheten. Skärmbild som visar hur du återkallar administratörsmedgivande.
  3. Välj Återkalla behörighet.

Granska och återkalla behörigheter med Microsoft Entra PowerShell

Använd följande Microsoft Entra PowerShell-skript för att återkalla alla behörigheter som beviljats till ett program. Du måste logga in som minst molnprogramadministratör.

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
}

Ta bort alla användar- och grupptilldelningar med Microsoft Entra PowerShell

Ta bort appRoleAssignments för användare eller grupper till programmet med hjälp av följande skript.

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

Granska och återkalla behörigheter med Hjälp av Microsoft Graph PowerShell

Använd följande Microsoft Graph PowerShell-skript för att återkalla alla behörigheter som beviljats till ett program. Du måste logga in som minst molnprogramadministratör.

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
}

Ta bort alla användar- och grupptilldelningar med Microsoft Graph PowerShell

Ta bort appRoleAssignments för användare eller grupper till programmet med hjälp av följande skript.

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
}

Granska och återkalla behörigheter med hjälp av Microsoft Graph

Om du vill granska behörigheter loggar du in på Graph Explorer som minst molnprogramadministratör.

Du måste godkänna följande behörigheter:

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

Delegerade behörigheter

Kör följande frågeställningar för att granska delegerade behörigheter som beviljats till en applikation.

  1. Hämta tjänstens huvudnamn med hjälp av objekt-ID:t.

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

    Exempel:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
    
  2. Hämta alla delegerade behörigheter för tjänstens huvudprincip

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
    
  3. Ta bort delegerade behörigheter med hjälp av oAuth2PermissionGrants-ID.

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

Programbehörigheter

Kör följande frågor för att granska programbehörigheter som beviljats till ett program.

  1. Hämta alla applikationsbehörigheter för tjänstens huvudobjekt (SP)

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. Ta bort programbehörigheter med appRoleAssignment-ID

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

Ta bort alla användar- och grupptilldelningar med hjälp av Microsoft Graph

Kör följande frågor för att ta bort appRoleAssignments för användare eller grupper till programmet.

  1. Hämta Service Principal med hjälp av objectID.

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

    Exempel:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  2. Hämta rolltilldelningar för Microsoft Entra App med hjälp av objectID för tjänsthuvudman.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
    
  3. Återkalla uppdateringstoken för användare och grupper som tilldelats till programmet med appRoleAssignment-ID.

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

Kommentar

Att återkalla den aktuella beviljade behörigheten hindrar inte användare från att godkänna programmets begärda behörigheter igen. Du måste stoppa programmet från att begära behörigheter via dynamiskt medgivande. Om du vill blockera användare från att godkänna helt och hållet läser du Konfigurera hur användarna godkänner program.

Annan auktorisering att överväga

Delegerade behörigheter och programbehörigheter är inte de enda sätten att bevilja program och användare åtkomst till skyddade resurser. Administratörer bör känna till andra auktoriseringssystem som kan ge åtkomst till känslig information. Exempel på olika auktoriseringssystem på Microsoft är inbyggda Microsoft Entra-roller, Exchange RBAC och Teams resursspecifika medgivande.