共用方式為


設定使用者同意應用程式的方式

在本文中,您將瞭解如何在 Microsoft Entra ID 中設定使用者同意設定,以控制使用者何時以及如何將許可權授與應用程式。 本指南可藉由限制或停用使用者同意,協助IT系統管理員降低安全性風險。

在應用程式可以存取貴組織的資料之前,使用者必須授與應用程式權限。 不同的權限允許不同的存取層級。 根據預設,所有使用者都能同意應用程式,以取得不需要系統管理員同意的權限。 例如,根據預設,使用者可以同意允許應用程式存取其信箱,但是不能同意允許應用程式不受約束地存取,以讀取和寫入貴組織中的所有檔案。

若要降低惡意應用程式嘗試誘騙使用者授與貴組織資料存取權的風險,建議只允許使用者同意由已驗證的發行者發佈的應用程式。

注意

要求將使用者指派給應用程式的這類應用程式,必須經過系統管理員的許可權同意,縱使目錄的使用者同意原則會允許使用者自行同意。

必要條件

若要設定使用者同意,您需要:

您可以使用 Microsoft Entra 系統管理中心、Microsoft Graph PowerShell 或 Microsoft Graph API,在 Microsoft Entra ID 中設定使用者同意設定。 您設定的設定會套用至組織中的所有使用者。

若要透過 Microsoft Entra 系統管理中心設定使用者同意設定:

  1. 全域管理員的身分登入 Microsoft Entra 管理中心

  2. 流覽至 Entra ID>企業應用程式>同意和許可權>使用者同意設定

  3. 在 [使用者同意應用程式] 底下,選取您要為所有使用者設定的同意設定。

  4. 選取 [儲存] 以儲存您的設定。

此螢幕擷取畫面顯示 [使用者同意設定] 窗格。

瞭解 Microsoft Graph PowerShell 中的授權和許可權授與原則

若要使用 Microsoft Graph PowerShell 以程式設計方式設定使用者同意設定,請務必瞭解全租使用者 授權原則 與個別 許可權授與原則之間的差異。 使用 authorizationPolicyUpdate-MgPolicyAuthorizationPolicy 擷取的資料會控管全域設定,例如,使用者是否可以同意應用程式,以及哪些權限授與原則被指派給預設使用者角色。 例如,您可以停用使用者同意,但仍允許開發人員透過僅在ManagePermissionGrantsForOwnedResource.DeveloperConsent集合中指派permissionGrantPoliciesAssigned來管理他們擁有的應用程式的許可權。

另一方面, permissionGrantPolicies 端點會列出您目前的許可權授與原則。 這些政策決定了可以授予應用程式的許可權以及在哪些情況下授予。 每個原則都會「包含」特定條件,但「排除」其他條件。 當使用者嘗試同意應用程式時,系統會檢查許可權授與原則,以查看其中是否有任何一項適用於使用者的要求。 例如,低風險原則可讓使用者同意設定為「低風險」的許可權。 它包含這些低風險原則(作為 GUID)。 在另一個案例中,如果用戶嘗試在符合 『AdminOnly』 原則的內容中同意,他們就無法同意。

注意

使用 Update-MgPolicyPermissionGrantPolicy 命令更新同意設定之前,請一律擷取目前的 authorizationPolicy ,以識別已指派的許可權授與原則。 這可確保您保留必要的許可權,例如讓開發人員管理自己擁有之應用程式的同意,並避免意外移除現有的功能。

若要選擇哪個應用程式同意原則可控管應用程式的使用者同意,請使用 Microsoft Graph PowerShell 模組。 此處使用的 Cmdlet 包含在 Microsoft.Graph.Identity.SignIns 模組中。

使用所需的最低權限連線到 Microsoft Graph PowerShell。 若要讀取目前的使用者同意設定,請使用 Policy.Read.All。 若要讀取和變更使用者同意設定,請使用 Policy.ReadWrite.Authorization。 您必須以特殊權限角色管理員身分登入。

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

若要關閉使用者同意,請確定在更新集合時,同意原則 (PermissionGrantPoliciesAssigned) 如果有的話,應包括其他目前的 ManagePermissionGrantsForOwnedResource.* 原則。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前設定。

# only exclude user consent policy
$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForOwnedResource.{other-current-policies}" 
    )
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body

若要允許使用者同意,請選擇應用程式同意政策來管理使用者對應用程式的授權。 請確保同意政策 (PermissionGrantPoliciesAssigned) 在更新集合時包含其他現行的政策 (如果有)。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前設定。

$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForSelf.{consent-policy-id}",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
    )
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body

{consent-policy-id} 替換為您想要套用的原則識別碼。 您可以選擇您所建立的自訂應用程式同意原則,也可以從下列內建原則中進行選擇:

識別碼 描述
微軟-用戶-預設-低 允許使用者同意來自已驗證發行者的應用程式使用選定的權限
僅允許有限使用者同意的應用程式必須來自已驗證的發行者,並且在您的租用戶中註冊,而且僅限於您分類為「低影響」的權限。 (請記住分類權限,以選取允許使用者同意的權限)。
microsoft-使用者-預設-舊版 允許使用者同意應用程式
此選項可讓所有使用者同意任何應用程式的任何權限,而此權限不需要管理員同意

例如,若要讓使用者同意遵守內建原則 microsoft-user-default-low,請執行下列命令:

$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForSelf.managePermissionGrantsForSelf.microsoft-user-default-low",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
    )
}

瞭解 Microsoft Graph 中的授權和許可權授與原則

若要使用 Microsoft Graph 以程式設計方式設定使用者同意設定,請務必瞭解全租使用者 授權原則 與個別 許可權授與原則之間的差異。 authorizationPolicy (使用 GET https://graph.microsoft.com/v1.0/policies/authorizationPolicy/authorizationPolicy擷取) 會控管全域設定,例如使用者是否可以同意應用程式,以及將哪些許可權授與原則指派給預設使用者角色。 例如,您可以停用使用者同意,但仍允許開發人員透過僅在ManagePermissionGrantsForOwnedResource.DeveloperConsent集合中指派permissionGrantPoliciesAssigned來管理他們擁有的應用程式的許可權。

另一方面, permissionGrantPolicies 端點 (GET https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies) 會列出您目前的許可權授與原則。 這些政策決定了可以授予應用程式的許可權以及在哪些情況下授予。 每個原則都會「包含」特定條件,但「排除」其他條件。 當使用者嘗試同意應用程式時,系統會檢查許可權授與原則,以查看其中是否有任何一項適用於使用者的要求。 例如,低風險原則可讓使用者同意設定為「低風險」的許可權。 它包含這些低風險原則(作為 GUID)。 在另一個案例中,如果用戶嘗試在符合 『AdminOnly』 原則的內容中同意,他們就無法同意。

注意

在使用 PATCH 請求更新同意設定之前,請務必先取得當前的 authorizationPolicy 以識別已指派的授權政策。 這可確保您保留必要的許可權,例如讓開發人員管理自己擁有之應用程式的同意,並避免意外移除現有的功能。

使用 Graph Explorer 選擇管理應用程式使用者同意的應用程式授權政策。 您必須以特殊權限角色管理員身分登入。

若要關閉使用者同意,請確定在更新集合時,同意原則 (PermissionGrantPoliciesAssigned) 如果有的話,應包括其他目前的 ManagePermissionGrantsForOwnedResource.* 原則。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前設定。

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
   "defaultUserRolePermissions": {
       "permissionGrantPoliciesAssigned": [
           "managePermissionGrantsForOwnedResource.{other-current-policies}"
        ]
    }
}

若要允許使用者同意,請選擇應用程式同意政策來管理使用者對應用程式的授權。 請確保同意政策 (PermissionGrantPoliciesAssigned) 在更新集合時包含其他現行的政策 (如果有)。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前設定。

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy

{
    "defaultUserRolePermissions": {
        "managePermissionGrantsForSelf.{consent-policy-id}",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
   }
}

{consent-policy-id} 替換為您想要套用的原則識別碼。 您可以選擇您所建立的自訂應用程式同意原則,也可以從下列內建原則中進行選擇:

識別碼 描述
微軟-用戶-預設-低 允許使用者同意來自已驗證發行者的應用程式使用選定的權限
僅允許有限使用者同意的應用程式必須來自已驗證的發行者,並且在您的租用戶中註冊,而且僅限於您分類為「低影響」的權限。 (請記住分類權限,以選取允許使用者同意的權限)。
microsoft-使用者-預設-舊版 允許使用者同意應用程式
此選項可讓所有使用者同意任何應用程式的任何權限,而此權限不需要管理員同意

例如,若要讓使用者同意遵守內建原則 microsoft-user-default-low,請使用下列 PATCH 命令:

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy

{
    "defaultUserRolePermissions": {
        "permissionGrantPoliciesAssigned": [
            "managePermissionGrantsForSelf.microsoft-user-default-low",
            "managePermissionGrantsForOwnedResource.{other-current-policies}"
        ]
    }
}

使用者同意設定的任何更新只會影響應用程式未來的同意作業。 現有的同意授與保持不變,而且用戶會根據先前授與的許可權繼續擁有存取權。 若要瞭解如何撤銷現有的同意授與,請參閱 檢閱授與企業應用程式的許可權

提示

若要允許使用者要求管理員對不允許使用者同意的應用程式進行檢閱和核准,請啟用管理員同意工作流程。 例如,執行此動作的時機可能是已停用使用者同意時,或應用程式要求不允許使用者授與的權限時。

下一步