共用方式為


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

在本文中,您將學習如何在 Microsoft Entra 租用戶中檢閱授與應用程式的權限。 當您偵測到惡意應用程式,或應用程式被授與的權限超過所需時,就必須檢閱權限。 您將了解如何使用 Microsoft Graph API 和現有的 PowerShell 版本來撤銷授與應用程式的權限。

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

必要條件

若要檢閱授與應用程式的權限,您必須:

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
  • 下列角色其中之一:雲端應用程式管理員、應用程式管理員。
  • 不是管理員的服務主體擁有者無法使重新整理權杖失效。

還原權限

如需如何還原已撤銷或刪除的權限,請參閱將已授予的權限還原至應用程式

檢視和撤銷權限

提示

根據您開始使用的不同入口網站,本文中的步驟可能略有變化。

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

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

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

    注意

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

若要撤銷 管理員同意 索引標籤中的權限:

  1. 檢視 管理員同意 索引標籤中的權限清單。
  2. 選擇您想要撤銷的權限,然後選取該權限的 ... 控制項。 顯示如何撤銷管理員同意的螢幕擷取畫面。
  3. 選取 [撤銷權限]

檢視和撤銷權限

使用下列 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
}

強制更新權杖失效

使用下列指令碼,將使用者或群組的 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 指令碼會撤銷授與應用程式的所有權限。 您必須至少以雲端應用程式管理員的身分登入。

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 '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
 }

強制更新權杖失效

使用下列指令碼,將使用者或群組的 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 '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
  }

檢視和撤銷權限

若要檢視權限,請至少以雲端應用程式管理員的身分登入 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/00001111-aaaa-2222-bbbb-3333cccc4444
    
  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/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  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}
    

注意

撤銷目前授與的權限,不會導致使用者無法再重新同意應用程式。 若要禁止使用者同意,請參閱設定使用者同意應用程式的方式

要考慮的其他授權

委派和應用程式許可權並不是授與應用程式和使用者受保護資源存取權的唯一方式。 系統管理員應該注意可能會授與敏感性資訊存取權的其他授權系統。 Microsoft各種授權系統的範例包括 Entra 內建角色Exchange RBACTeams 資源特定同意

下一步