使用 PowerShell 設定以風險為基礎的逐步同意

在本文中,您將瞭解如何在 Microsoft Entra 標識符中設定以風險為基礎的逐步同意。 以風險為基礎的逐步同意有助於減少使用者接觸發出 非法同意要求的惡意應用程式。

例如,對於未 經過發行者驗證 且需要非基本許可權的新註冊多租使用者應用程式,同意要求會被視為有風險。 如果偵測到有風險的使用者同意要求,要求會改為要求管理員同意。 默認會啟用此逐步執行功能,但只有在啟用使用者同意時,才會造成行為變更。

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

AADSTS90094:<clientAppDisplayName> 需要許可權,才能存取組織中只有系統管理員可以授與的資源。 要求系統管理員授與此應用程式的許可權,才能使用它。

在此情況下,稽核事件也會記錄為「ApplicationManagement」類別、「同意應用程式」的活動類型,以及「偵測到具風險的應用程式」的狀態原因。

必要條件

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

  • 用戶帳戶。 如果您還沒有帳戶,您可以 免費建立帳戶。
  • 全域 管理員 istrator 角色或 Privileged 管理員 istrator 角色。

您可以使用 Microsoft Graph PowerShell Beta 模組 來停用在偵測到風險時所需的系統管理員同意步驟,或在先前停用時加以啟用。

重要

請確定您使用的是 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
    

下一步