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

應用程式同意原則是管理應用程式存取組織中數據的許可權的方法。 他們用來控制使用者可以同意哪些應用程式,並確保應用程式符合特定準則,才能存取數據。 這些原則可協助組織控制其數據,並確保其只能由受信任的應用程式存取。

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

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

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

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

標識碼以 「microsoft-」 開頭的群組擁有者同意原則是內建原則。 例如, microsoft-pre-approval-apps-for-group 群組擁有者同意原則說明系統管理員允許群組擁有者從預先核准清單中授與應用程式同意的條件,以存取他們擁有之群組的數據。 內建原則可用於自定義目錄角色和設定使用者同意設定,但無法編輯或刪除。

必要條件

  • 具有下列其中一個角色的用戶或服務:
    • 全域 管理員 istrator 目錄角色
    • 特殊許可權角色 管理員 istrator 目錄角色
    • 具有管理群組擁有者同意原則所需 許可權的自定義目錄角色
    • Microsoft Graph 應用程式角色 (應用程式許可權) Policy.ReadWrite.PermissionGrant (以應用程式或服務身分連線時)
  • 若要允許群組擁有者同意受限於應用程式同意原則,必須停用群組擁有者同意設定。 停用之後,您目前的原則會從應用程式同意原則讀取。 若要瞭解如何停用群組擁有者同意,請參閱 停用群組擁有者同意設定

若要使用 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
    

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

  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」 條件集。

    # 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. 新增 「include」 條件集。

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

    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 46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b)

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/excludes
    
    {
      "permissionType": "delegated",
      "resourceApplication": "46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b "
    }
    

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

建立群組擁有者同意原則之後,您可以 允許群組擁有者同意 ,但受限於此原則。

  1. 下列顯示如何刪除自定義群組擁有者同意原則。

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

警告

無法還原已刪除的群組擁有者同意原則。 如果您不小心刪除自定義群組擁有者同意原則,則必須重新建立原則。

支援的條件

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

Condition 描述
PermissionClassification 要授與之許可權的許可權分類,或「全部」以符合任何許可權分類(包括未分類的許可權)。 預設值為 「all」。
PermissionType 正在授與之許可權的許可權類型。 針對應用程式許可權使用 「應用程式」(例如應用程式角色)或「委派」來取得委派的許可權。

注意:「delegatedUserConsentable」 值表示 API 發行者尚未設定的委派許可權,以要求管理員同意。 此值可用於內建許可權授與原則中,但不能用於自定義許可權授與原則。 必要。
ResourceApplication 要授與許可權的資源應用程式 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

警告

無法還原已刪除的群組擁有者同意原則。 如果您不小心刪除自定義群組擁有者同意原則,則必須重新建立原則。

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