檢閱授與企業應用程式的許可權

在本文中,您將瞭解如何檢閱授與 Microsoft Entra 租使用者中應用程式的許可權。 當您偵測到惡意應用程式或應用程式已授與超過必要許可權時,您可能需要檢閱許可權。 您將瞭解如何使用 Microsoft Graph API 和現有的 PowerShell 版本來撤銷授與應用程式的許可權。

本文中的步驟適用於透過使用者或系統管理員同意新增至 Microsoft Entra 租使用者的所有應用程式。 如需同意應用程式的詳細資訊,請參閱 使用者和管理員同意

必要條件

若要檢閱授與應用程式的許可權,您需要:

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
  • 下列其中一個角色:Global 管理員 istrator、Cloud Application 管理員 istrator、Application 管理員 istrator。
  • 不是系統管理員的服務主體擁有者能夠使重新整理令牌失效。

還原許可權

如需如何還原已撤銷或刪除的許可權,請參閱 將許可權還原給應用程式

檢閱和撤銷許可權

提示

本文中的步驟可能會根據您從開始的入口網站稍有不同。

您可以存取 Microsoft Entra 系統管理中心,以檢視授與應用程式的許可權。 您可以撤銷系統管理員為整個組織授與的許可權,而且您可以取得內容相關的 PowerShell 腳本來執行其他動作。

若要檢閱已授與整個組織或特定使用者或群組的應用程式許可權:

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心
  2. 流覽至 [身分>識別應用程式>企業應用程式>] [所有應用程式]。
  3. 選取您想要限制存取的應用程式。
  4. 選取 [ 許可權]。
  5. 若要檢視套用至整個組織的許可權,請選取 [管理員 同意] 索引卷標。若要檢視授與給特定使用者或群組的許可權,請選取 [使用者同意] 索引卷標。
  6. 若要檢視指定許可權的詳細數據,請從清單中選取許可權。 [ 許可權詳細數據 ] 窗格隨即開啟。 檢閱授與應用程式的許可權之後,您可以撤銷整個組織的系統管理員所授與的許可權。

    注意

    您無法使用入口網站在 [使用者同意] 索引標籤中撤銷許可權。 您可以使用 Microsoft Graph API 呼叫或 PowerShell Cmdlet 來撤銷這些許可權。 如需詳細資訊,請移至本文的 PowerShell 和 Microsoft Graph 索引標籤。

若要撤銷 [管理員 同意] 索引標籤中的許可權:

  1. 在 [管理員 同意] 索引標籤中檢視許可權清單。
  2. 選擇您想要撤銷的許可權,然後選取該許可權的 ... 控件。 Screenshot shows how to revoke admin consent.
  3. 選取 [ 撤銷] 許可權

檢閱和撤銷許可權

使用下列 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.AllDelegatedPermissionGrant.ReadWrite.AllAppRoleAssignment.ReadWrite.All

委派的權限

執行下列查詢,以檢閱授與給應用程式的委派許可權。

  1. 使用物件標識碼取得服務主體。

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

    範例:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00063ffc-54e9-405d-b8f3-56124728e051
    
  2. 取得服務主體的所有委派權限

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
    
  3. 使用 oAuth2PermissionGrants 識別符移除委派的許可權。

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

應用程式權限

執行下列查詢,以檢閱授與給應用程式的應用程式許可權。

  1. 取得服務主體的所有應用程式權限

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. 使用 appRoleAssignment 識別符移除應用程式許可權

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

使重新整理令牌失效

執行下列查詢,以將使用者或群組的 appRoleAssignments 移除至應用程式。

  1. 使用 objectID 取得服務主體。

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

    範例:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/57443554-98f5-4435-9002-852986eea510
    
  2. 使用服務主體的 objectID 取得 Microsoft Entra 應用程式角色指派。

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
    
  3. 針對使用 appRoleAssignment 識別符指派給應用程式的使用者和群組撤銷重新整理令牌。

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

注意

撤銷目前授與的許可權並不會阻止使用者重新同意應用程式。 如果您想要封鎖使用者同意,請閱讀 設定使用者同意應用程式的方式。

下一步