分享方式:


管理群組擁有者的應用程式同意原則

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

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

透過 Microsoft GraphMicrosoft Graph PowerShell,您可以檢視和管理群組擁有者同意原則。

群組擁有者同意原則包含零個或多個「包含」條件集,以及零個或多個「排除」條件集。 若要在群組擁有者同意原則中考慮事件,「包含」條件集不得符合 任何 「排除」條件集。

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

識別碼開頭為 "microsoft-" 的群組擁有者同意原則是內建原則。 例如,microsoft-pre-approval-apps-for-group 群組擁有者同意原則說明在哪些條件下,允許群組擁有者授與同意給管理員預先核准清單中的應用程式,以便存取其所擁有群組的資料。 內建原則可用於自訂目錄角色,以及設定使用者同意設定,但無法進行編輯或刪除。

必要條件

  • 具有下列其中一個角色的使用者或服務:
  • 若要允許群組擁有者同意受限於應用程式同意原則,必須停用群組擁有者同意設定。 停用之後,會從應用程式同意原則讀取您目前的原則。 若要了解如何停用群組擁有者同意,請參閱停用群組擁有者同意設定

若要使用 Microsoft Graph PowerShell 來管理應用程式的群組擁有者同意原則,請連線至 Microsoft Graph PowerShell,並使用必要條件一節中列出的其中一個角色登入。 您也需要同意 Policy.ReadWrite.PermissionGrant 權限。

# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta"
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

了解如何驗證您的群組擁有者同意設定是否已透過其他方式獲得授權。

  1. 擷取群組擁有者同意設定的目前值

      Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
    

    如果 PermissionGrantPoliciesAssigned 中傳回 ManagePermissionGrantPoliciesForOwnedResource,表示您的群組擁有者同意設定可能已透過其他方式獲得授權。

  2. 檢查原則的範圍是否為 group

       Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | Select -ExpandProperty AdditionalProperties
    

如果 ResourceScopeType == group,表示您的群組擁有者同意設定已透過其他方式獲得授權。 此外,如果群組的應用程式同意原則已指派 microsoft-pre-approval-apps-for-group,表示已為您的租用戶啟用預先核准的功能。

最好先熟悉您組織中現有的群組擁有者同意原則:

  1. 列出所有群組擁有者同意原則:

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

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
    
  3. 檢視「排除」條件集:

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
    

遵循下列步驟來建立自訂群組擁有者同意原則:

  1. 建立新的空白群組擁有者同意原則。

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-app-consent-policy-for-group" `
        -DisplayName "My first custom app consent policy for group" `
        -Description "This is a sample custom app consent policy for group." `
        -AdditionalProperties @{includeAllPreApprovedApplications = $false; resourceScopeType = "group"}
    
  2. 新增「包含」條件集。

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group" `
        -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-app-consent-policy-for-group" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

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

一旦建立群組的應用程式同意原則,便可允許群組擁有者同意受限於此原則。

  1. 以下說明如何刪除自訂群組擁有者同意原則。

    Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group"
    

若要管理群組擁有者同意原則,請使用必要條件一節中列出的其中一個角色登入 Graph 總管。 您也需要同意 Policy.ReadWrite.PermissionGrant 權限。

了解如何驗證您的群組擁有者同意設定是否已透過其他方式獲得授權。

  1. 擷取目前的原則值

    GET /policies/authorizationPolicy
    

    如果出現 ManagePermissionGrantPoliciesForOwnedResource,表示您的群組擁有者同意設定可能已透過其他方式獲得授權。

  2. 檢查原則的範圍是否為 group

    GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }
    

    如果 resourceScopeType == group,表示您的群組擁有者同意設定已透過其他方式獲得授權。 此外,如果群組的應用程式同意原則已指派 microsoft-pre-approval-apps-for-group,表示已為您的租用戶啟用預先核准的功能。

最好先熟悉您組織中現有的群組擁有者同意原則:

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

    GET /policies/permissionGrantPolicies
    
  2. 檢視原則的「包含」條件集:

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

    GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/excludes
    

遵循下列步驟來建立自訂群組擁有者同意原則:

  1. 建立新的空白群組擁有者同意原則。

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

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

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/includes
    
    {
      "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-app-consent-policy-for-group }/excludes
    
    {
      "permissionType": "delegated",
      "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 "
    }
    

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

一旦建立群組擁有者同意原則,便可允許群組擁有者同意受限於此原則。

  1. 以下說明如何刪除自訂群組擁有者同意原則。

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

警告

已刪除的群組擁有者同意原則無法進行還原。 若不小心刪除自訂群組擁有者同意原則,就必須重新建立原則。

支援的條件

下表提供群組擁有者同意原則的支援條件清單。

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

注意:"delegatedUserConsentable" 值表示 API 發行者尚未將委派權限設定為需要管理員同意。 此值可用於內建權限授與原則中,但不能用於自訂權限授與原則。 必要。
ResourceApplication 要授與權限的資源應用程式 (例如,API) 的 AppId,或 "any" 以比對任何資源應用程式或 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

警告

已刪除的群組擁有者同意原則無法進行還原。 若不小心刪除自訂群組擁有者同意原則,就必須重新建立原則。

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