檢閱授與企業應用程式的權限
在本文中,您將學習如何在 Microsoft Entra 租用戶中檢閱授與應用程式的權限。 當您偵測到惡意應用程式或是應用程式所擁有的權限超過所需時,您可能必須檢閱權限。 您將了解如何使用 Microsoft Graph API 和現有的 PowerShell 版本來撤銷授與應用程式的權限。
本文中的步驟適用於所有透過使用者或系統管理員同意新增至 Microsoft Entra 租用戶的應用程式。 如需同意應用程式的詳細資訊,請參閱使用者和管理員同意。
必要條件
若要檢閱授與應用程式的權限,您必須:
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 下列角色其中之一:雲端應用程式管理員、應用程式管理員。
- 不是管理員的服務主體擁有者無法使重新整理權杖失效。
在 Microsoft Entra 系統管理中心檢閱和撤銷權限
提示
根據您開始使用的不同入口網站,本文中的步驟可能略有變化。
您可以存取 Microsoft Entra 系統管理中心,以檢視授與應用程式的權限。 您可以撤銷系統管理員為整個組織授與的權限,而且您可以取得內容相關的 PowerShell 指令碼來執行其他動作。
如需瞭解如何還原已撤銷或刪除的權限,請參閱將已授予的權限還原至應用程式。
若要檢閱已授與整個組織或特定使用者,或者群組的應用程式權限:
- 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心。
- 瀏覽至 [身分識別]>[應用程式]>[企業應用程式]>[所有應用程式]。
- 選取要限制存取的應用程式。
- 選取 [權限]。
- 若要檢視套用至整個組織的權限,請選取 [管理員同意] 索引標籤。若要檢視授與特定使用者或群組的權限,請選取 [使用者同意] 索引標籤。
- 若要檢視指定權限的詳細資料,請從清單中選取權限。 [權限詳細資料] 窗格隨即開啟。
檢閱授與應用程式的權限之後,您可以撤銷整個組織的系統管理員所授與的權限。
注意
您無法使用入口網站撤銷 [使用者同意] 索引標籤中的權限。 您可以使用 Microsoft Graph API 呼叫或 PowerShell Cmdlet 來撤銷這些權限。 如需詳細資訊,請移至本文的 PowerShell 和 Microsoft Graph 索引標籤。
若要撤銷 管理員同意 索引標籤中的權限:
- 檢視 管理員同意 索引標籤中的權限清單。
- 選擇您想要撤銷的權限,然後選取該權限的 ... 控制項。
- 選取 [撤銷權限]。
使用 Azure AD PowerShell 檢閱和撤銷權限
使用下列 Azure AD PowerShell 指令碼會撤銷授與應用程式的所有權限。 您必須至少以雲端應用程式管理員的身分登入。
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
}
使用 Azure AD PowerShell 將重新整理權杖失效
使用下列指令碼,將使用者或群組的 appRoleAssignments 移除應用程式。
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
}
使用 Microsoft Graph PowerShell 檢閱和撤銷許可權
使用下列 Microsoft Graph PowerShell 指令碼會撤銷授與應用程式的所有權限。 您必須至少以雲端應用程式管理員的身分登入。
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
}
使用 Microsoft Graph PowerShell 將重新整理權杖失效
使用下列指令碼,將使用者或群組的 appRoleAssignments 移除應用程式。
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
}
使用 Microsoft Graph 檢閱和撤銷權限
若要檢視權限,請至少以雲端應用程式管理員的身分登入 Graph 總管。
您必須同意下列權限:
委派的權限
執行下列查詢,以檢視授與應用程式的委派權限。
使用物件識別碼取得服務主體。
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
範例:
GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
取得服務主體的所有委派權限
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
使用 oAuth2PermissionGrants 識別碼移除委派的權限。
DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
應用程式權限
執行下列查詢,以檢視授與應用程式的應用程式權限。
取得服務主體的所有應用程式權限
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
使用 appRoleAssignment ID 移除應用程式權限
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
使用 Microsoft Graph PowerShell 將重新整理權杖失效
執行下列查詢,將使用者或群組的 appRoleAssignments 移除應用程式。
使用 objectID 取得服務主體。
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
範例:
GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
使用服務主體的 objectID 取得Microsoft Entra 應用程式角色指派。
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
針對使用 appRoleAssignment 識別符指派給應用程式的使用者和群組撤銷重新整理權杖。
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
注意
撤銷目前授與的權限,不會導致使用者無法再重新同意應用程式要求的權限。 您必須停止應用程式透過動態同意要求權限。 若要禁止使用者完全同意,請參閱設定使用者同意應用程式的方式。
要考慮的其他授權
代理和應用程式權限並不是授與應用程式和使用者存取受保護資源權限的唯一方式。 系統管理員應該知道可能會授與敏感性資訊存取權限的其他授權系統。 各種 Microsoft 授權系統的範例包括 Microsoft Entra 內建角色、Exchange RBAC 和小組資源特定同意。