共用方式為


使用 PowerShell 設定以風險為基礎的升級同意

在本文中,您將了解如何在 Microsoft Entra ID 中設定以風險為基礎的升級同意。 以風險為基礎的升級同意有助於降低使用者暴露於進行非法同意要求的惡意應用程式風險。

例如,針對未經過發行者驗證 (部分機器翻譯) 且需要非基本權限的新註冊多租用戶應用程式,其同意要求會被視為具有風險。 如果系統偵測到風險性使用者同意要求,其要求會需要「升級」至系統管理員同意。 這項升級功能預設為啟用,但只有在啟用使用者同意時,才會產生行為變更。

當系統偵測到具有風險的同意要求時,同意提示會顯示需要管理員核准的訊息。 如果已啟用管理員同意要求工作流程,則使用者可以將要求傳送給系統管理員,以便直接從同意提示進行進一步的檢閱。 如果未啟用管理員同意要求工作流程,則會顯示下列訊息:

AADSTS90094:<clientAppDisplayName> 需要只有系統管理員才能授與的權限來存取貴組織中的資源。 請先要求管理員授與此應用程式的權限,然後您才能使用。

在此情況下,系統也會記錄稽核事件,內容包含「ApplicationManagement」類別、「同意應用程式」的活動類型和「偵測到有風險應用程式」的狀態原因。

必要條件

若要設定以風險為基礎的升級同意,您需要:

您可以使用 Microsoft Graph PowerShell Beta 模組 (部分機器翻譯) 停用在 Microsoft 偵測到風險的情況下升級至管理員同意的要求,或是啟用先前已停用的升級同意。

重要

請確定您使用的是 Microsoft Graph PowerShell Beta Cmdlet 模組。

  1. 執行以下命令:

    Install-Module Microsoft.Graph.Beta
    
  2. 連線至 Microsoft Graph PowerShell:

    Connect-MgGraph -Scopes "Directory.ReadWrite.All"
    
  3. 擷取您租用戶中同意原則設定目錄設定的目前值。 這麼做需要檢查是否已建立這項功能的目錄設定。 如果尚未建立,請使用對應的目錄設定範本中的值。

    $consentSettingsTemplateId = "dffd5d46-495d-40a9-8e21-954ff55e198a" # Consent Policy Settings
    $settings = Get-MgBetaDirectorySetting -All | Where-Object { $_.TemplateId -eq $consentSettingsTemplateId }
    if (-not $settings) {
        $params = @{
            TemplateId = $consentSettingsTemplateId
            Values = @(
                @{ 
                    Name = "BlockUserConsentForRiskyApps"
                    Value = "True"
                }
                @{ 
                    Name = "ConstrainGroupSpecificConsentToMembersOfGroupId"
                    Value = "<groupId>"
                }
                @{ 
                    Name = "EnableAdminConsentRequests"
                    Value = "True"
                }
                @{ 
                    Name = "EnableGroupSpecificConsent"
                    Value = "True"
                }
            )
        }
        $settings = New-MgBetaDirectorySetting -BodyParameter $params
    }
    $riskBasedConsentEnabledValue = $settings.Values | ? { $_.Name -eq "BlockUserConsentForRiskyApps" }
    
  4. 檢查值:

    $riskBasedConsentEnabledValue
    

    了解設定值:

    設定 類型 描述
    BlockUserConsentForRiskyApps 布林值 此旗標指出偵測到具有風險的要求時,是否將封鎖使用者同意。
  5. 若要變更 BlockUserConsentForRiskyApps 的值,請使用 Update-MgBetaDirectorySetting (英文) Cmdlet。

    $params = @{
        TemplateId = $consentSettingsTemplateId
        Values = @(
            @{ 
                Name = "BlockUserConsentForRiskyApps"
                Value = "False"
            }
            @{ 
                Name = "ConstrainGroupSpecificConsentToMembersOfGroupId"
                Value = "<groupId>"
            }
            @{ 
                Name = "EnableAdminConsentRequests"
                Value = "True"
            }
            @{ 
                Name = "EnableGroupSpecificConsent"
                Value = "True"
            }
        )
    }
    Update-MgBetaDirectorySetting -DirectorySettingId $settings.Id -BodyParameter $params
    

下一步