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:
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
- Přejděte k podnikovým aplikacím>Identita>Aplikace>Všechny aplikace.
- Vyberte aplikaci, ke které chcete omezit přístup.
- Vyberte oprávnění.
- 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.
- 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:
- Zobrazení seznamu oprávnění na kartě Souhlas správce
- Zvolte oprávnění, která chcete odvolat, a pak vyberte ovládací prvek ... pro toto oprávnění.
- 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.
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
Získání všech delegovaných oprávnění pro instanční objekt
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
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.
Získání všech oprávnění aplikace pro instanční objekt
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
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.
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
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
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.