設定許可權分類

在本文中,您將瞭解如何在 Microsoft Entra ID 中設定許可權分類。 許可權分類可讓您根據組織的原則和風險評估,找出不同許可權對的影響。 例如,您可以在同意原則中使用許可權分類,以識別允許使用者同意的許可權集。

支援三種許可權分類:「低」、「中」(預覽),以及「高」(預覽)。 目前,只有不需要系統管理員同意的委派許可權才能分類。

執行基本登入所需的最低許可權是 openidprofileemailoffline_access,都是 Microsoft Graph 上所有委派的許可權。 使用這些許可權,應用程式可以讀取已登入使用者配置檔的詳細數據,而且即使使用者不再使用應用程式,也可以維護此存取權。

必要條件

若要設定權限分類,您需要:

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
  • 下列其中一個角色:Global 管理員 istrator、Application 管理員 istrator 或 Cloud Application 管理員 istrator

管理許可權分類

提示

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

請遵循下列步驟,使用 Microsoft Entra 系統管理中心來分類許可權:

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心
  2. 流覽至 [身分>識別應用程式>企業應用程式>同意] 和 [許可權>] 分類。
  3. 選擇您想要更新之許可權分類的索引標籤。
  4. 選擇 [ 新增許可權 ] 以分類另一個許可權。
  5. 選取 API,然後選取委派的許可權。。

在此範例中,我們已將單一登錄所需的最低許可權集合分類:

Permission classifications

您可以使用最新的 Azure AD PowerShell 來分類許可權。 許可權分類是在發佈許可權之 API 的 ServicePrincipal 物件上設定。

執行下列命令以連線到 Azure AD PowerShell。 若要同意所需的範圍,請至少以雲端應用程式 管理員 istrator 登入。

Connect-AzureAD

使用 Azure AD PowerShell 列出目前的許可權分類

  1. 擷取 API 的 ServicePrincipal 物件。 在這裡,我們會擷取 Microsoft Graph API 的 ServicePrincipal 物件:

    $api = Get-AzureADServicePrincipal `
        -Filter "servicePrincipalNames/any(n:n eq 'https://graph.microsoft.com')"
    
  2. 讀取 API 的委派權限分類:

    Get-AzureADMSServicePrincipalDelegatedPermissionClassification `
        -ServicePrincipalId $api.ObjectId | Format-Table Id, PermissionName, Classification
    

使用 Azure AD PowerShell 將許可權分類為「低影響」

  1. 擷取 API 的 ServicePrincipal 物件。 在這裡,我們會擷取 Microsoft Graph API 的 ServicePrincipal 物件:

    $api = Get-AzureADServicePrincipal `
        -Filter "servicePrincipalNames/any(n:n eq 'https://graph.microsoft.com')"
    
  2. 尋找您要分類的委派權限:

    $delegatedPermission = $api.OAuth2Permissions | Where-Object { $_.Value -eq "User.ReadBasic.All" }
    
  3. 使用權限名稱與識別碼來設定權限分類:

    Add-AzureADMSServicePrincipalDelegatedPermissionClassification `
       -ServicePrincipalId $api.ObjectId `
       -PermissionId $delegatedPermission.Id `
       -PermissionName $delegatedPermission.Value `
       -Classification "low"
    

使用 Azure AD PowerShell 移除委派的許可權分類

  1. 擷取 API 的 ServicePrincipal 物件。 在這裡,我們會擷取 Microsoft Graph API 的 ServicePrincipal 物件:

    $api = Get-AzureADServicePrincipal `
        -Filter "servicePrincipalNames/any(n:n eq 'https://graph.microsoft.com')"
    
  2. 尋找您要移除的委派權限分類:

    $classifications = Get-AzureADMSServicePrincipalDelegatedPermissionClassification `
        -ServicePrincipalId $api.ObjectId
    $classificationToRemove = $classifications | Where-Object {$_.PermissionName -eq "User.ReadBasic.All"}
    
  3. 移除權限分類:

    Remove-AzureADMSServicePrincipalDelegatedPermissionClassification `
        -ServicePrincipalId $api.ObjectId `
        -Id $classificationToRemove.Id
    

您可以使用 Microsoft Graph PowerShell 來分類許可權。 許可權分類是在發佈許可權之 API 的 ServicePrincipal 物件上設定。

執行下列命令以連線至 Microsoft Graph PowerShell。 若要同意所需的範圍,請至少以雲端應用程式 管理員 istrator 登入。

Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant".

使用 Microsoft Graph PowerShell 列出 API 的目前許可權分類

  1. 擷取 API 的 servicePrincipal 物件:

    $api = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" 
    
  2. 讀取 API 的委派權限分類:

    Get-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $api.Id 
    

使用 Microsoft Graph PowerShell 將許可權分類為「低影響」

  1. 擷取 API 的 servicePrincipal 物件:

    $api = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" 
    
  2. 尋找您要分類的委派權限:

    $delegatedPermission = $api.Oauth2PermissionScopes | Where-Object {$_.Value -eq "openid"} 
    
  3. 設定權限分類:

    $params = @{ 
       PermissionId = $delegatedPermission.Id 
       PermissionName = $delegatedPermission.Value 
       Classification = "Low"
    } 
    
    New-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $api.Id -BodyParameter $params 
    

使用 Microsoft Graph PowerShell 移除委派的許可權分類

  1. 擷取 API 的 servicePrincipal 物件:

    $api = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" 
    
  2. 尋找您要移除的委派權限分類:

    $classifications = Get-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $api.Id 
    
    $classificationToRemove = $classifications | Where-Object {$_.PermissionName -eq "openid"}
    
  3. 移除權限分類:

Remove-MgServicePrincipalDelegatedPermissionClassification -DelegatedPermissionClassificationId $classificationToRemove.Id   -ServicePrincipalId $api.id 

若要設定企業應用程式的許可權分類,請至少以 Cloud Application 管理員 istrator 身分登入 Graph 總管。

您必須同意 Policy.ReadWrite.PermissionGrant 許可權。

在 Microsoft Graph 總管上執行下列查詢,以新增應用程式的委派許可權分類。

使用 Microsoft Graph API 列出 API 的目前許可權分類

使用下列 Microsoft Graph API 呼叫列出 API 的目前許可權分類。

GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications

使用 Microsoft Graph API 將許可權分類為「低影響」

在下列範例中,我們會將許可權分類為「低影響」。

使用下列 Microsoft Graph API 呼叫,為 API 新增委派的許可權分類。

POST https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications
Content-type: application/json

{
   "permissionId": "b4e74841-8e56-480b-be8b-910348b18b4c",
   "classification": "low"
}

使用 Microsoft Graph API 移除委派的許可權分類

在 Microsoft Graph 總管上執行下列查詢,以移除 API 的委派許可權分類。

DELETE https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications/QUjntFaOC0i-i5EDSLGLTAE

下一步