Configurar o consentimento de step-up baseado em risco usando o PowerShell

Neste artigo, você aprenderá a configurar o consentimento de passo a passo baseado em risco no Microsoft Entra ID. O consentimento intensificado baseado no risco ajuda a reduzir a exposição do utilizador a aplicações maliciosas que fazem pedidos de consentimento ilícitos.

Por exemplo, solicitações de consentimento para aplicativos multilocatários recém-registrados que não são verificados pelo editor e exigem permissões não básicas são consideradas arriscadas. Se uma solicitação de consentimento de usuário arriscada for detetada, a solicitação exigirá um "passo" para o consentimento do administrador. Esse recurso de step-up é habilitado por padrão, mas resulta em uma alteração de comportamento somente quando o consentimento do usuário está habilitado.

Quando uma solicitação de consentimento arriscada é detetada, o prompt de consentimento exibe uma mensagem que indica que a aprovação do administrador é necessária. Se o fluxo de trabalho de solicitação de consentimento do administrador estiver habilitado, o usuário poderá enviar a solicitação a um administrador para análise adicional diretamente do prompt de consentimento. Se o fluxo de trabalho de solicitação de consentimento de administrador não estiver habilitado, a seguinte mensagem será exibida:

AADSTS90094: <clientAppDisplayName> precisa de permissão para acessar recursos em sua organização que somente um administrador pode conceder. Solicite a um administrador que conceda permissão a este aplicativo antes de poder usá-lo.

Nesse caso, um evento de auditoria também é registrado com uma categoria de "ApplicationManagement", um tipo de atividade de "Consentimento para aplicativo" e um motivo de status de "Aplicativo arriscado detetado".

Pré-requisitos

Para configurar o consentimento step-up baseado em risco, você precisa:

Você pode usar o módulo beta do Microsoft Graph PowerShell para desabilitar o passo a passo para o consentimento de administrador necessário nos casos em que um risco é detetado ou para habilitá-lo se ele tiver sido desabilitado anteriormente.

Importante

Verifique se você está usando o módulo de cmdlets Beta do Microsoft Graph PowerShell.

  1. Execute o seguinte comando:

    Install-Module Microsoft.Graph.Beta
    
  2. Conecte-se ao Microsoft Graph PowerShell:

    Connect-MgGraph -Scopes "Directory.ReadWrite.All"
    
  3. Recupere o valor atual para as configurações do diretório Configurações de Política de Consentimento em seu locatário. Isso requer a verificação para ver se as configurações de diretório para esse recurso foram criadas. Se eles não tiverem sido criados, use os valores do modelo de configurações de diretório correspondente.

    $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. Confira o valor:

    $riskBasedConsentEnabledValue
    

    Entenda o valor das configurações:

    Definição Tipo Description
    BlockUserConsentForRiskyApps Boolean Um sinalizador que indica se o consentimento do usuário será bloqueado quando uma solicitação arriscada for detetada.
  5. Para alterar o valor de BlockUserConsentForRiskyApps, use o cmdlet 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
    

Próximos passos