Acesso condicional: proteção de token (visualização)

A proteção de token (às vezes referida como vinculação de token no setor) tenta reduzir os ataques usando roubo de token, garantindo que um token seja utilizável apenas a partir do dispositivo pretendido. Quando um invasor é capaz de roubar um token, sequestrando ou replay, ele pode se passar por sua vítima até que o token expire ou seja revogado. Acredita-se que o roubo de tokens seja um evento relativamente raro, mas os danos causados podem ser significativos.

A proteção de token cria um vínculo criptograficamente seguro entre o token e o dispositivo (segredo do cliente) para o qual ele é emitido. Sem o segredo do cliente, o token vinculado é inútil. Quando um usuário registra um dispositivo Windows 10 ou mais recente no Microsoft Entra ID, sua identidade principal é vinculada ao dispositivo. O que isso significa: uma política pode garantir que apenas tokens de sessão de entrada (ou atualização) vinculados, também conhecidos como PRTs (Primary Refresh Tokens), sejam usados por aplicativos ao solicitar acesso a um recurso.

Importante

A proteção de token está atualmente em visualização pública. Para obter mais informações sobre visualizações, consulte Termos de Licença Universal para Serviços Online. Com esta pré-visualização, estamos a dar-lhe a capacidade de criar uma política de Acesso Condicional para exigir proteção de token para tokens de início de sessão (tokens de atualização) para serviços específicos. Oferecemos suporte à proteção de token para tokens de entrada no Acesso Condicional para aplicativos da área de trabalho que acessam o Exchange Online e o SharePoint Online em dispositivos Windows.

Importante

As seguintes alterações foram feitas na Proteção de Token desde a versão prévia pública inicial:

  • Saída de logs de login: o valor da cadeia de caracteres usada em "enforcedSessionControls" e "sessionControlsNotSatisfied" mudou de "Binding" para "SignInTokenProtection" no final de junho de 2023. As consultas nos dados do Log de Entrada devem ser atualizadas para refletir essa alteração.

Nota

Podemos trocar tokens de login e atualizar tokens neste conteúdo. Atualmente, esta pré-visualização não suporta tokens de acesso ou cookies da Web.

Screenshot showing a Conditional Access policy requiring token protection as the session control

Requisitos

Esta pré-visualização suporta as seguintes configurações para acesso a recursos com políticas de Acesso Condicional de Proteção de Token aplicadas:

  • Windows 10 ou dispositivos mais recentes que são Microsoft Entra juntou, Microsoft Entra híbrido juntou, ou Microsoft Entra registrado.
  • Cliente de sincronização do OneDrive versão 22.217 ou posterior
  • Cliente nativo do Teams versão 1.6.00.1331 ou posterior
  • Power BI desktop versão 2.117.841.0 (maio de 2023) ou posterior
  • Visual Studio 2022 ou posterior ao usar a opção de entrada 'Agente de autenticação do Windows'
  • Os clientes do Office Perpetual não são suportados

Limitações conhecidas

  • Os utilizadores externos (Microsoft Entra B2B) não são suportados e não devem ser incluídos na sua política de Acesso Condicional.
  • Os seguintes aplicativos não oferecem suporte à entrada usando fluxos de token protegidos e os usuários são bloqueados ao acessar o Exchange e o SharePoint:
    • Módulos do PowerShell que acessam escopos do Exchange, SharePoint ou Microsoft Graph que são servidos pelo Exchange ou SharePoint
    • Extensão do PowerQuery para Excel
    • Extensões para o Visual Studio Code que acessam o Exchange ou o SharePoint
    • O novo cliente de visualização do Teams 2.1 é bloqueado após sair devido a um bug. Este bug deve ser corrigido em uma atualização de serviço futura.
  • Os seguintes dispositivos cliente Windows não são suportados:
    • Windows Server
    • Surface Hub
    • Sistemas Microsoft Teams Rooms (MTR) baseados em Windows

Requisitos de licenciamento

O uso desse recurso requer licenças do Microsoft Entra ID P2. Para encontrar a licença certa para os requisitos, veja Comparar as funcionalidades geralmente disponíveis do Microsoft Entra ID.

Nota

A imposição da Proteção de Token faz parte da Proteção de ID do Microsoft Entra e fará parte da licença P2 em disponibilidade geral.

Implementação

Para os usuários, a implantação de uma política de Acesso Condicional para impor a proteção de token deve ser invisível ao usar plataformas de cliente compatíveis em dispositivos registrados e aplicativos compatíveis.

Para minimizar a probabilidade de interrupção do usuário devido à incompatibilidade de aplicativos ou dispositivos, recomendamos vivamente:

  • Comece com um grupo piloto de usuários e expanda ao longo do tempo.
  • Crie uma política de Acesso Condicional no modo somente relatório antes de passar para a imposição da proteção de token.
  • Capture logs de entrada interativos e não interativos.
  • Analise esses logs por tempo suficiente para cobrir o uso normal do aplicativo.
  • Adicione bons usuários conhecidos a uma política de imposição.

Esse processo ajuda a avaliar a compatibilidade do cliente e do aplicativo dos usuários para a aplicação da proteção de token.

Criar uma política de Acesso Condicional

Os usuários que executam funções especializadas, como as descritas em Níveis de segurança de acesso privilegiado, são possíveis alvos para essa funcionalidade. Recomendamos pilotar com um pequeno subconjunto para começar.

Screenshot of a configured Conditional Access policy and its components.

As etapas a seguir ajudam a criar uma política de Acesso Condicional para exigir proteção de token para o Exchange Online e o SharePoint Online em dispositivos Windows.

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Acesso Condicional.
  2. Navegue até Acesso condicional de proteção>.
  3. Selecione Nova política.
  4. Dê um nome à sua política. Recomendamos que as organizações criem um padrão significativo para os nomes de suas políticas.
  5. Em Atribuições, selecione Usuários ou identidades de carga de trabalho.
    1. Em Incluir, selecione os utilizadores ou grupos que estão a testar esta política.
    2. Em Excluir, selecione Usuários e grupos e escolha as contas de acesso de emergência ou de quebra-vidro da sua organização.
  6. Em Recursos de destino>Aplicações>na nuvem Incluir>Selecionar aplicações
    1. Em Selecionar, selecione os seguintes aplicativos suportados pela visualização:

      1. Office 365 Exchange Online
      2. Office 365 SharePoint Online

      Aviso

      Sua política de Acesso Condicional só deve ser configurada para esses aplicativos. A seleção do grupo de aplicativos do Office 365 pode resultar em falhas não intencionais. Esta é uma exceção à regra geral de que o grupo de aplicativos do Office 365 deve ser selecionado em uma política de Acesso Condicional.

    2. Escolha Selecionar.

  7. Sob Condições:
    1. Em Plataformas de dispositivos:
      1. Defina Configurar como Sim.
      2. Incluir>Selecionar plataformas>de dispositivo Windows.
      3. Selecionar Concluído.
    2. Em Aplicativos cliente:
      1. Defina Configurar como Sim.

        Aviso

        Não configurar a condição Aplicativos Cliente ou deixar o Navegador selecionado pode fazer com que os aplicativos que usam MSAL.js, como o Teams Web, sejam bloqueados.

      2. Em Clientes de autenticação moderna, selecione apenas Aplicativos móveis e clientes de desktop. Deixe outros itens desmarcados.
      3. Selecionar Concluído.
  8. Em Sessão de controles>de acesso, selecione Exigir proteção de token para sessões de entrada e selecione Selecionar.
  9. Confirme suas configurações e defina Habilitar política como Somente relatório.
  10. Selecione Criar para criar para habilitar sua política.

Depois que os administradores confirmarem as configurações usando o modo somente relatório, eles poderão mover a alternância Habilitar política de Somente relatório para Ativado.

Capture logs e analise

Monitorando a aplicação do Acesso Condicional da proteção de token antes e depois da aplicação.

Registos de início de sessão

Use o log de entrada do Microsoft Entra para verificar o resultado de uma política de imposição de proteção de token no modo somente relatório ou no modo habilitado.

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Acesso Condicional.
  2. Navegue até Monitoramento de identidade>& logs de entrada de integridade>.
  3. Selecione uma solicitação específica para determinar se a política é aplicada ou não.
  4. Vá para o painel Acesso Condicional ou Somente Relatório, dependendo de seu estado, e selecione o nome da sua política que requer proteção de token.
  5. Em Controles de Sessão , verifique se os requisitos da política foram atendidos ou não.

Screenshot showing an example of a policy not being satisfied.

Log Analytics

Você também pode usar o Log Analytics para consultar os logs de entrada (interativos e não interativos) para solicitações bloqueadas devido a falha na imposição da proteção de token.

Aqui está um exemplo de consulta do Log Analytics pesquisando os logs de entrada não interativos dos últimos sete dias, destacando solicitações bloqueadas versus permitidas por aplicativo. Estas consultas são apenas exemplos e estão sujeitas a alterações.

Nota

Saída de logs de login: o valor da cadeia de caracteres usada em "enforcedSessionControls" e "sessionControlsNotSatisfied" mudou de "Binding" para "SignInTokenProtection" no final de junho de 2023. As consultas nos dados do Log de Entrada devem ser atualizadas para refletir essa alteração. Os exemplos abrangem ambos os valores para incluir dados históricos.

//Per Apps query 
// Select the log you want to query (SigninLogs or AADNonInteractiveUserSignInLogs ) 
//SigninLogs 
AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| project Id,ConditionalAccessPolicies, Status,UserPrincipalName, AppDisplayName, ResourceDisplayName 
| where ConditionalAccessPolicies != "[]" 
| where ResourceDisplayName == "Office 365 Exchange Online" or ResourceDisplayName =="Office 365 SharePoint Online" 
//Add userPrinicpalName if you want to filter  
// | where UserPrincipalName =="<user_principal_Name>" 
| mv-expand todynamic(ConditionalAccessPolicies) 
| where ConditionalAccessPolicies ["enforcedSessionControls"] contains '["Binding"]' or ConditionalAccessPolicies ["enforcedSessionControls"] contains '["SignInTokenProtection"]' 
| where ConditionalAccessPolicies.result !="reportOnlyNotApplied" and ConditionalAccessPolicies.result !="notApplied" 
| extend SessionNotSatisfyResult = ConditionalAccessPolicies["sessionControlsNotSatisfied"] 
| extend Result = case (SessionNotSatisfyResult contains 'SignInTokenProtection' or SessionNotSatisfyResult contains 'SignInTokenProtection', 'Block','Allow')
| summarize by Id,UserPrincipalName, AppDisplayName, Result 
| summarize Requests = count(), Users = dcount(UserPrincipalName), Block = countif(Result == "Block"), Allow = countif(Result == "Allow"), BlockedUsers = dcountif(UserPrincipalName, Result == "Block") by AppDisplayName 
| extend PctAllowed = round(100.0 * Allow/(Allow+Block), 2) 
| sort by Requests desc 

O resultado da consulta anterior deve ser semelhante à seguinte captura de tela:

Screenshot showing example results of a Log Analytics query looking for token protection policies

O exemplo de consulta a seguir examina o log de entrada não interativo dos últimos sete dias, destacando solicitações bloqueadas versus permitidas pelo usuário.

//Per users query 
// Select the log you want to query (SigninLogs or AADNonInteractiveUserSignInLogs ) 
//SigninLogs 
AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| project Id,ConditionalAccessPolicies, UserPrincipalName, AppDisplayName, ResourceDisplayName 
| where ConditionalAccessPolicies != "[]" 
| where ResourceDisplayName == "Office 365 Exchange Online" or ResourceDisplayName =="Office 365 SharePoint Online" 
//Add userPrincipalName if you want to filter  
// | where UserPrincipalName =="<user_principal_Name>" 
| mv-expand todynamic(ConditionalAccessPolicies) 
| where ConditionalAccessPolicies ["enforcedSessionControls"] contains '["Binding"]' or ConditionalAccessPolicies ["enforcedSessionControls"] contains '["SignInTokenProtection"]'
| where ConditionalAccessPolicies.result !="reportOnlyNotApplied" and ConditionalAccessPolicies.result !="notApplied" 
| extend SessionNotSatisfyResult = ConditionalAccessPolicies.sessionControlsNotSatisfied 
| extend Result = case (SessionNotSatisfyResult contains 'SignInTokenProtection' or SessionNotSatisfyResult contains 'SignInTokenProtection', 'Block','Allow')
| summarize by Id, UserPrincipalName, AppDisplayName, ResourceDisplayName,Result  
| summarize Requests = count(),Block = countif(Result == "Block"), Allow = countif(Result == "Allow") by UserPrincipalName, AppDisplayName,ResourceDisplayName 
| extend PctAllowed = round(100.0 * Allow/(Allow+Block), 2) 
| sort by UserPrincipalName asc   

Próximos passos