Sdílet prostřednictvím


Kontrola oprávnění udělených podnikovým aplikacím

V tomto článku se dozvíte, jak zkontrolovat oprávnění udělená aplikacím ve vašem tenantovi Microsoft Entra. Možná budete muset zkontrolovat oprávnění, když zjistíte škodlivou aplikaci nebo aplikaci, která má více oprávnění, než je potřeba. Dozvíte se, jak odvolat oprávnění udělená aplikaci pomocí rozhraní Microsoft Graph API a existujících verzí PowerShellu.

Postup v tomto článku platí pro všechny aplikace přidané do vašeho tenanta Microsoft Entra prostřednictvím souhlasu uživatele nebo správce. Další informace o souhlasu s aplikacemi najdete v tématu Souhlas uživatele a správce.

Požadavky

Pokud chcete zkontrolovat oprávnění udělená aplikacím, potřebujete:

  • Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
  • Jedna z následujících rolí: Správce cloudových aplikací, Správce aplikací.
  • Vlastník instančního objektu, který není správcem, může zneplatnit obnovovací tokeny.

Kontrola a odvolání oprávnění v Centru pro správu Microsoft Entra

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

K Centru pro správu Microsoft Entra se dostanete a zobrazí se oprávnění udělená aplikaci. Oprávnění udělená správci pro celou organizaci můžete odvolat a můžete získat kontextové skripty PowerShellu pro provádění dalších akcí.

Informace o tom, jak obnovit odvolaná nebo odstraněná oprávnění, najdete v tématu Obnovení oprávnění udělených aplikacím.

Kontrola oprávnění aplikace udělených pro celou organizaci nebo pro konkrétního uživatele nebo skupinu:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
  2. Přejděte k podnikovým aplikacím>Identita>Aplikace>Všechny aplikace.
  3. Vyberte aplikaci, ke které chcete omezit přístup.
  4. Vyberte oprávnění.
  5. Pokud chcete zobrazit oprávnění, která platí pro celou organizaci, vyberte kartu Souhlas správce. Pokud chcete zobrazit oprávnění udělená konkrétnímu uživateli nebo skupině, vyberte kartu Souhlas uživatele.
  6. Pokud chcete zobrazit podrobnosti o daném oprávnění, vyberte oprávnění ze seznamu. Otevře se podokno Podrobnosti oprávnění . Po kontrole oprávnění udělených aplikaci můžete odvolat oprávnění udělená správci pro celou organizaci.

    Poznámka:

    Oprávnění na kartě Souhlas uživatele nemůžete odvolat pomocí portálu. Tato oprávnění můžete odvolat pomocí volání rozhraní Microsoft Graph API nebo rutin PowerShellu. Další informace najdete na kartách PowerShellu a Microsoft Graphu v tomto článku.

Odvolání oprávnění na kartě Souhlas správce:

  1. Zobrazení seznamu oprávnění na kartě Souhlas správce
  2. Zvolte oprávnění, která chcete odvolat, a pak vyberte ovládací prvek ... pro toto oprávnění. Snímek obrazovky ukazuje, jak odvolat souhlas správce.
  3. Vyberte Odvolat oprávnění.

Kontrola a odvolání oprávnění pomocí Azure AD PowerShellu

Pomocí následujícího skriptu Azure AD PowerShellu můžete odvolat všechna oprávnění udělená aplikaci. Musíte se přihlásit alespoň jako správce cloudových aplikací.

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
}

Zneplatnění obnovovacích tokenů pomocí Azure AD PowerShellu

Pomocí následujících skriptů odeberte přiřazení appRoleAssignments pro uživatele nebo skupiny do aplikace.

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
}

Kontrola a odvolání oprávnění pomocí Microsoft Graph PowerShellu

Pomocí následujícího skriptu Microsoft Graph PowerShellu můžete odvolat všechna oprávnění udělená aplikaci. Musíte se přihlásit alespoň jako správce cloudových aplikací.

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
}

Zneplatnění obnovovacích tokenů pomocí Prostředí Microsoft Graph PowerShell

Pomocí následujících skriptů odeberte přiřazení appRoleAssignments pro uživatele nebo skupiny do aplikace.

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
}

Kontrola a odvolání oprávnění pomocí Microsoft Graphu

Pokud chcete zkontrolovat oprávnění, přihlaste se k Graph Exploreru jako alespoň správce cloudových aplikací.

Musíte udělit souhlas s následujícími oprávněními:

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

Delegovaná oprávnění

Spuštěním následujících dotazů zkontrolujte delegovaná oprávnění udělená aplikaci.

  1. Získejte instanční objekt pomocí ID objektu.

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

    Příklad:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
    
  2. Získání všech delegovaných oprávnění pro instanční objekt

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
    
  3. Odeberte delegovaná oprávnění pomocí ID oAuth2PermissionGrants.

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

Oprávnění aplikace

Spuštěním následujících dotazů zkontrolujte oprávnění aplikace udělená aplikaci.

  1. Získání všech oprávnění aplikace pro instanční objekt

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. Odebrání oprávnění aplikace pomocí ID appRoleAssignment

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

Zneplatnění obnovovacích tokenů pomocí Microsoft Graphu

Spuštěním následujících dotazů odeberte appRoleAssignments uživatelů nebo skupin do aplikace.

  1. Získání instančního objektu pomocí objectID

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

    Příklad:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  2. Získejte přiřazení rolí aplikace Microsoft Entra pomocí objectID instančního objektu.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
    
  3. Odvolání obnovovacího tokenu pro uživatele a skupiny přiřazené k aplikaci pomocí ID appRoleAssignment

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

Poznámka:

Odvolání aktuálního uděleného oprávnění nezabrání uživatelům v opětovném vyjádření souhlasu s požadovanými oprávněními aplikace. Aplikaci je potřeba zastavit v žádosti o oprávnění prostřednictvím dynamického souhlasu. Pokud chcete uživatelům úplně zablokovat souhlas, přečtěte si článek Konfigurace způsobu vyjádření souhlasu uživatelů s aplikacemi.

Další autorizace, která je potřeba zvážit

Delegovaná oprávnění a oprávnění aplikací nejsou jedinými způsoby, jak udělit aplikacím a uživatelům přístup k chráněným prostředkům. Správci by měli vědět o jiných autorizačních systémech, které by mohly udělit přístup k citlivým informacím. Mezi příklady různých systémů autorizace v Microsoftu patří předdefinované role Microsoft Entra, Exchange RBAC a souhlas specifické pro prostředky Teams.

Další kroky