Настройка повышения уровня согласия на основе рисков с помощью PowerShell

В этой статье вы узнаете, как настроить согласие на основе рисков в идентификаторе Microsoft Entra ID. Повышение уровня согласия на основе рисков позволяет снизить уязвимость пользователей для вредоносных приложений, которые делают незаконные запросы на согласие.

Например, запросы на согласие для недавно зарегистрированных мультитенантных приложений, которые не проверены издателем, и требуют не базовых разрешений, считаются рискованными. При обнаружении рискованного запроса согласия пользователя он будет перенаправлен администратору. Данная возможность включена по умолчанию, но она приводит к изменению поведения только в том случае, если включено согласие пользователя.

При обнаружении рискованного запроса согласия отображается сообщение о необходимости утверждения администратором. Если рабочий процесс запроса согласия администратора включен, пользователь может отправить запрос администратору для дальнейшей проверки непосредственно из запроса согласия. Если рабочий процесс запроса согласия администратора не включен, отображается следующее сообщение:

AADSTS90094: <clientAppDisplayName> требуются разрешения на доступ к ресурсам в вашей организации, которые может предоставить только администратор. Попросите администратора предоставить разрешение для этого приложения, прежде чем его можно будет использовать.

В этом случае событие аудита также будет регистрироваться с категорией ApplicationManagement, типом действия "Согласие на приложение" и состоянием "Обнаружено рискованное приложение".

Необходимые компоненты

Чтобы настроить повышение уровня согласия на основе рисков, требуется следующее:

  • Учетная запись пользователя. Если ее нет, можно создать учетную запись бесплатно.
  • Роль глобального или привилегированного администратора.

Вы можете использовать бета-модуль Microsoft Graph PowerShell, чтобы отключить пошаговое согласие администратора, которое требуется в случаях обнаружения риска или включить его, если он был отключен ранее.

Внимание

Убедитесь, что вы используете модуль командлетов Microsoft Graph PowerShell Beta.

  1. Выполните следующую команду:

    Install-Module Microsoft.Graph.Beta
    
  2. Подключитесь к PowerShell Microsoft Graph:

    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 .

    $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
    

Следующие шаги