分享方式:


管理應用程式同意原則

應用程式同意原則用來管理應用程式存取組織中資料所需的權限。 其用來控制使用者可以同意哪些應用程式,以及確保應用程式必須先符合某些準則,才能存取資料。 這些原則可協助組織控制其資料,並確保只有向受信任的應用程式授予存取權。

在本文中,您將了解如何管理內建和自訂應用程式同意原則,以控制何時可授與同意。

透過 Microsoft GraphMicrosoft Graph PowerShell,您可以檢視和管理應用程式同意原則。

應用程式同意原則是由一或多個「包含」條件集和零個或多個「排除」條件集所組成。 針對要在應用程式同意原則中考量的事件,其必須至少符合一個「包含」條件集,且不得符合任何「排除」條件集。

每個條件集都包含數個條件。 若要讓事件符合條件集,必須符合條件集中的所有條件。

識別碼開頭為 "microsoft-" 的應用程式同意原則是內建原則。 其中一些內建原則會用於現有的內建目錄角色。 例如,microsoft-application-admin 應用程式同意原則會描述允許應用程式管理員和雲端應用程式管理員角色授與整個租用戶管理員同意的條件。 內建原則可用於自訂目錄角色,以及設定使用者同意設定,但無法進行編輯或刪除。

必要條件

  • 具有下列其中一個角色的使用者或服務:
    • 特殊權限角色管理員目錄角色
    • 具有必要應用程式同意原則管理權限的自訂目錄角色
    • Microsoft Graph 應用程式角色 (應用程式權限)Policy.ReadWrite.PermissionGrant(以應用程式或服務連線時)

若要使用 Microsoft Graph PowerShell 管理應用程式的應用程式同意原則,請連線至 Microsoft Graph PowerShell

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

最好先熟悉您組織中現有的應用程式同意原則:

  1. 列出所有應用程式同意原則:

    Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
    
  2. 檢視原則的「包含」條件集:

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    
  3. 檢視「排除」條件集:

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    

遵循下列步驟來建立自訂應用程式同意原則:

  1. 建立新的空白應用程式同意原則。

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-policy" `
        -DisplayName "My first custom consent policy" `
        -Description "This is a sample custom app consent policy."
    
  2. 新增「包含」條件集。

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -PermissionClassification "low" `
        -ClientApplicationsFromVerifiedPublisherOnly
    

    重複此步驟以新增更多「包含」條件集。

  3. 還可選擇新增「排除」條件集。

    # Retrieve the service principal for the Azure Management API
    $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')"
    
    # Exclude delegated permissions for the Azure Management API
    New-MgPolicyPermissionGrantPolicyExclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

    重複此步驟以新增更多「排除」條件集。

建立應用程式同意原則之後,您必須將它指派給 Microsoft Entra ID 中的自訂角色。 接著,您必須將使用者指派給該自訂角色,該角色會附加至您所建立的應用程式同意原則。 如需如何將應用程式同意原則指派給自定義角色的詳細資訊,請參閱自訂角色的應用程式同意權限

以下 Cmdlet 說明如何刪除自訂應用程式同意原則。

   Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"

若要管理應用程式同意原則,請使用必要條件一節中列出的其中一個角色登入 Graph 總管

您必須同意 Policy.ReadWrite.PermissionGrant 權限。

最好先熟悉您組織中現有的應用程式同意原則:

  1. 列出所有應用程式同意原則:

    GET /policies/permissionGrantPolicies?$select=id,displayName,description
    
  2. 檢視原則的「包含」條件集:

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
    
  3. 檢視「排除」條件集:

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
    

遵循下列步驟來建立自訂應用程式同意原則:

  1. 建立新的空白應用程式同意原則。

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies
    Content-Type: application/json
    
    {
      "id": "my-custom-policy",
      "displayName": "My first custom consent policy",
      "description": "This is a sample custom app consent policy"
    }
    
  2. 新增「包含」條件集。

    對於已驗證發行者的應用程式,包含分類為「低」的委派權限

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "PermissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

    重複此步驟以新增更多「包含」條件集。

  3. 還可選擇新增「排除」條件集。 排除 Azure 管理 API (appId 00001111-aaaa-2222-bbbb-3333cccc4444) 的委派權限

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/my-custom-policy /excludes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 "
    }
    

    重複此步驟以新增更多「排除」條件集。

建立應用程式同意原則之後,您必須將它指派給 Microsoft Entra ID 中的自訂角色。 接著,您必須將使用者指派給該自訂角色,該角色會附加至您所建立的應用程式同意原則。 如需如何將應用程式同意原則指派給自定義角色的詳細資訊,請參閱自訂角色的應用程式同意權限

  1. 以下說明如何刪除自訂應用程式同意原則。

    DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
    

警告

無法還原已刪除的應用程式同意原則。 如果您不小心刪除自訂應用程式同意原則,則必須重新建立原則。

支援的條件

下表提供應用程式同意原則的支援條件清單。

Condition 描述
PermissionClassification 要授與權限的權限分類,或 "all" 以比對任何權限分類 (包括未分類的權限)。 預設值為 "all."
PermissionType 要授與權限的權限類型。 若為應用程式權限 (例如,應用程式角色),使用「應用程式」,或者若為委派權限,則使用「委派」。

注意:「delegatedUserConsentable」值表示 API 發行者尚未將委派權限設定為需要管理員同意。 此值可用於內建權限授與原則中,但不能用於自訂權限授與原則。 必要。
ResourceApplication 要授與權限的資源應用程式 (例如,API) 的 AppId,或「任何」以比對任何資源應用程式或 API。 預設值為 "any."
權限 要比對的特定權限的權限識別碼清單,或具有單一值 "all" 的清單,以比對任何權限。 預設值為單一值 "all."
委派的權限識別碼可以在 API 的 ServicePrincipal 物件的 OAuth2Permissions 屬性中找到。
- 應用程式權限識別碼可以在 API 的 ServicePrincipal 物件的 AppRoles 屬性中找到。
ClientApplicationIds 要比對的用戶端應用程式的 AppId 值清單,或具有單一值 "all" 的清單,以比對任何用戶端應用程式。 預設值為單一值 "all."
ClientApplicationTenantIds 在其中註冊用戶端應用程式的 Microsoft Entra 租用戶識別碼清單,或具有單一值 "all" 的清單,以比對在任何租用戶中註冊的用戶端應用程式。 預設值為單一值 "all."
ClientApplicationPublisherIds 用戶端應用程式已驗證發行者的 Microsoft 合作夥伴網路 (MPN) 識別碼的清單,或具有單一值 "all" 的清單,以比對來自任何發行者的用戶端應用程式。 預設值為單一值 "all."
ClientApplicationsFromVerifiedPublisherOnly 將此切換控制設為僅比對具有已驗證發行者的用戶端應用程式。 停用此切換控制 (-ClientApplicationsFromVerifiedPublisherOnly:$false) 以比對任何用戶端應用程式,即使沒有已驗證發行者也一樣。 預設值為 $false
scopeType 預先核准套用的資源範圍類型。 可能的值:群組團體group聊天chat,或全租使用者存取tenant。 必要。
sensitivityLabels 適用於範圍類型的敏感度標籤,且不會預先核准。 它可讓您保護敏感性組織資料。 深入了解敏感度標籤注意:聊天資源尚未支援 sensitivityLabels。

下一步

若要取得協助或尋找您的問題解答: