檢閱授與企業應用程式的許可權
在本文中,您將瞭解如何檢閱授與 Microsoft Entra 租使用者中應用程式的許可權。 當您偵測到惡意應用程式或應用程式已授與超過必要許可權時,您可能需要檢閱許可權。 您將瞭解如何使用 Microsoft Graph API 和現有的 PowerShell 版本來撤銷授與應用程式的許可權。
本文中的步驟適用於透過使用者或系統管理員同意新增至 Microsoft Entra 租使用者的所有應用程式。 如需同意應用程式的詳細資訊,請參閱 使用者和管理員同意。
必要條件
若要檢閱授與應用程式的許可權,您需要:
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 下列其中一個角色:Global 管理員 istrator、Cloud Application 管理員 istrator、Application 管理員 istrator。
- 不是系統管理員的服務主體擁有者能夠使重新整理令牌失效。
還原許可權
如需如何還原已撤銷或刪除的許可權,請參閱 將許可權還原給應用程式 。
檢閱和撤銷許可權
提示
本文中的步驟可能會根據您從開始的入口網站稍有不同。
您可以存取 Microsoft Entra 系統管理中心,以檢視授與應用程式的許可權。 您可以撤銷系統管理員為整個組織授與的許可權,而且您可以取得內容相關的 PowerShell 腳本來執行其他動作。
若要檢閱已授與整個組織或特定使用者或群組的應用程式許可權:
- 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心。
- 流覽至 [身分>識別應用程式>企業應用程式>] [所有應用程式]。
- 選取您想要限制存取的應用程式。
- 選取 [ 許可權]。
- 若要檢視套用至整個組織的許可權,請選取 [管理員 同意] 索引卷標。若要檢視授與給特定使用者或群組的許可權,請選取 [使用者同意] 索引卷標。
- 若要檢視指定許可權的詳細數據,請從清單中選取許可權。 [ 許可權詳細數據 ] 窗格隨即開啟。
檢閱授與應用程式的許可權之後,您可以撤銷整個組織的系統管理員所授與的許可權。
注意
您無法使用入口網站在 [使用者同意] 索引標籤中撤銷許可權。 您可以使用 Microsoft Graph API 呼叫或 PowerShell Cmdlet 來撤銷這些許可權。 如需詳細資訊,請移至本文的 PowerShell 和 Microsoft Graph 索引標籤。
若要撤銷 [管理員 同意] 索引標籤中的許可權:
- 在 [管理員 同意] 索引標籤中檢視許可權清單。
- 選擇您想要撤銷的許可權,然後選取該許可權的 ... 控件。
- 選取 [ 撤銷] 許可權。
檢閱和撤銷許可權
使用下列 Azure AD PowerShell 腳本來撤銷授與應用程式的所有許可權。 您必須至少以雲端應用程式 管理員 istrator 身分登入。
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
}
使重新整理令牌失效
使用下列腳本,將使用者或群組的 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 腳本來撤銷授與應用程式的所有許可權。 您必須至少以雲端應用程式 管理員 istrator 身分登入。
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "$ServicePrincipalID"
Example: Get-MgServicePrincipal -ServicePrincipalId '22c1770d-30df-49e7-a763-f39d2ef9b369'
# 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
}
使重新整理令牌失效
使用下列腳本,將使用者或群組的 appRoleAssignments 移除至應用程式。
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "$ServicePrincipalID"
Example: Get-MgServicePrincipal -ServicePrincipalId '22c1770d-30df-49e7-a763-f39d2ef9b369'
# 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
}
檢閱和撤銷許可權
若要檢閱許可權,請至少以雲端應用程式 管理員 istrator 身分登入 Graph 總管。
您必須同意下列權限:
Application.ReadWrite.All
、、Directory.ReadWrite.All
DelegatedPermissionGrant.ReadWrite.All
、AppRoleAssignment.ReadWrite.All
。
委派的權限
執行下列查詢,以檢閱授與給應用程式的委派許可權。
使用物件標識碼取得服務主體。
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
範例:
GET https://graph.microsoft.com/v1.0/servicePrincipals/00063ffc-54e9-405d-b8f3-56124728e051
取得服務主體的所有委派權限
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 識別符移除應用程式許可權
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
使重新整理令牌失效
執行下列查詢,以將使用者或群組的 appRoleAssignments 移除至應用程式。
使用 objectID 取得服務主體。
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
範例:
GET https://graph.microsoft.com/v1.0/servicePrincipals/57443554-98f5-4435-9002-852986eea510
使用服務主體的 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}
注意
撤銷目前授與的許可權並不會阻止使用者重新同意應用程式。 如果您想要封鎖使用者同意,請閱讀 設定使用者同意應用程式的方式。