Compartilhar via


Proteção de token no Acesso Condicional do Microsoft Entra

A Proteção de Token é um controle de sessão de Acesso Condicional que tenta reduzir os ataques de reprodução de token, garantindo que apenas tokens de sessão de entrada associados ao dispositivo, como PRTs (Tokens de Atualização Primária), sejam aceitos pela ID do Entra quando os aplicativos solicitam acesso aos recursos protegidos.

Quando um usuário registra um dispositivo Windows 10 ou posterior com o Microsoft Entra, um PRT é emitido e conectado criptograficamente a esse dispositivo. Essa associação garante que, mesmo que um ator de ameaça roube um token, ele não poderá ser usado de outro dispositivo. Com a Proteção de Token imposta, o Microsoft Entra valida que somente esses tokens de sessão de entrada associados são usados por aplicativos com suporte.

Você pode impor a política de Proteção de Token nos recursos do Exchange Online, do SharePoint Online e do Teams. Há suporte para muitos aplicativos nativos do Microsoft 365. Para obter uma lista abrangente de aplicativos e recursos com suporte, consulte a seção "Requisitos".

Note

Use essa política como parte de uma estratégia mais ampla contra o roubo de tokens, conforme descrito na Proteção de tokens no Microsoft Entra.

Captura de tela de uma política de Acesso Condicional que requer proteção de token como o controle de sessão.

Requirements

Usar esse recurso requer licenças do Microsoft Entra ID P1. Para encontrar a licença certa para seus requisitos, confira Comparar os recursos geralmente disponíveis do Microsoft Entra ID.

Os seguintes dispositivos e aplicativos dão suporte ao acesso a recursos em que uma política de acesso condicional de proteção de token é aplicada:

Dispositivos com suporte

  • Dispositivos Windows 10 ou mais recentes ingressados no Microsoft Entra, ingressados no Microsoft Entra híbrido ou registrados no Microsoft Entra. Consulte a seção de limitações conhecidas para tipos de dispositivo sem suporte.
  • Windows Server 2019 ou mais recente que são ingressados no Microsoft Entra híbrido.

Note

Para obter etapas detalhadas sobre como registrar seu dispositivo, consulte Registrar seu dispositivo pessoal em sua rede corporativa ou de estudante.

Aplicativos com suporte

  • Cliente de sincronização do OneDrive versão 22.217 ou mais recente
  • Cliente nativo do Teams versão 1.6.00.1331 ou mais recente
  • Power BI desktop versão 2.117.841.0 (maio de 2023) ou mais recente
  • Módulo do Exchange PowerShell versão 3.7.0 ou mais recente
  • Microsoft Graph PowerShell versão 2.0.0 ou mais recente com a opção EnableLoginByWAM
  • Visual Studio 2022 ou mais recente ao usar a opção de entrada 'Agente de autenticação do Windows'
  • Windows App versão 2.0.379.0 ou mais recente

Os seguintes recursos dão suporte à Proteção de Token:

  • Office 365Exchange Online
  • Office 365 - SharePoint Online
  • Serviços do Microsoft Teams
  • Área de Trabalho Virtual do Azure
  • Windows 365

Limitações conhecidas

  • Não há suporte para clientes perpétuos do Office.
  • Os seguintes aplicativos não dão 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 o SharePoint
    • Extensão do PowerQuery para Excel
    • Extensões para Visual Studio Code que acessam o Exchange ou o SharePoint
  • Não há suporte para os seguintes dispositivos cliente Windows:
    • Surface Hub
    • Sistemas MTR (Salas do Microsoft Teams) baseados em Windows
  • Há suporte para usuários externos que atendem aos requisitos de registro do dispositivo de proteção de token no seu tenant de origem. No entanto, os usuários que não atendem a esses requisitos veem uma mensagem de erro não clara sem nenhuma indicação da causa raiz.
  • Os dispositivos registrados com a ID do Microsoft Entra usando os seguintes métodos não têm suporte:

Para identificar os dispositivos afetados devido a tipos de registro sem suporte listados anteriormente, inspecione o tokenProtectionStatusDetails atributo nos logs de entrada. As solicitações de token bloqueadas devido a um tipo de registro de dispositivo sem suporte podem ser identificadas com um signInSessionStatusCode valor de 1003.

Para evitar interrupções durante a integração, modifique a política de acesso condicional de proteção de token adicionando uma condição de filtro de dispositivo que exclui dispositivos na categoria de implantação descrita anteriormente. Por exemplo, para excluir:

  • PCs de nuvem ingressados no Microsoft Entra, você pode usar systemLabels -eq "CloudPC" and trustType -eq "AzureAD".
  • As Áreas de Trabalho Virtuais do Azure ingressadas no Microsoft Entra, você pode usar systemLabels -eq "AzureVirtualDesktop" and trustType -eq "AzureAD".
  • Grupos de computadores hospedados do Power Automate que são ingressados no Microsoft Entra, você pode usar systemLabels -eq "MicrosoftPowerAutomate" and trustType -eq "AzureAD".
  • Nos dispositivos Windows Autopilot implantados com o modo de autoimplantação, você pode usar a propriedade enrollmentProfileName. Por exemplo, se você tiver criado um perfil de registro no Intune para seus dispositivos de modo de autoimplantação do Autopilot como "Perfil de autoimplantação do Autopilot", poderá usar `enrollmentProfileName -eq "Perfil de autoimplantação do Autopilot".
  • Máquinas virtuais do Windows no Azure ingressadas no Microsoft Entra, você pode usar profileType -eq "SecureVM" and trustType -eq "AzureAD".

Deployment

Para os usuários, a implantação de uma política de Acesso Condicional para reforçar 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 do aplicativo ou do dispositivo, siga estas recomendações:

  • 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 impor a proteção de token.
  • Capture logs de entrada interativos e não interativos.
  • Analise esses logs tempo suficiente para cobrir o uso normal do aplicativo.
  • Adicione usuários conhecidos e confiáveis a uma política de imposição.

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

Criar uma política de Acesso Condicional

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

As etapas a seguir ajudam você 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é Entra ID>Acesso Condicional>Políticas.
  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 usuários ou grupos que estão testando essa política.
    2. Em Excluir, selecione Usuários e grupos e escolha as contas de acesso de emergência ou "break-glass" da sua organização.
  6. Em Recursos de destino>Recursos (aplicativos de nuvem anteriores)>Incluir>Selecionar recursos
    1. Em Selecionar, selecione os seguintes aplicativos:

      1. Office 365Exchange Online
      2. Office 365 - SharePoint Online
      3. Serviços do Microsoft Teams
      4. Se você implantou o Aplicativo Windows em seu ambiente, inclua:
        1. Área de Trabalho Virtual do Azure
        2. Windows 365
        3. Logon na Nuvem do Windows

      Warning

      Sua política de Acesso Condicional só deve ser configurada para esses aplicativos. Selecionar o grupo de aplicativos do Office 365 pode resultar em falhas não intencionais. Essa alteração é 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. Em Condições:
    1. Em Plataformas de dispositivo:
      1. Defina Configurar como Sim.
      2. Incluir>Selecionar plataformas de dispositivos>Windows.
      3. Selecione Concluído.
    2. Em Aplicativos do cliente:
      1. Defina Configurar como Sim.

        Warning

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

      2. Em Clientes de autenticação modernos, selecione apenas Aplicativos móveis e clientes de desktop. Deixe outros itens desmarcados.

      3. Selecione Concluído.

  8. Em Controle de acesso>Sessão, 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 Apenas para relatório.
  10. Selecione criar para habilitar sua política.

Depois de confirmar suas configurações usando o impacto da política ou o modo somente relatório, mova a alternância habilitar a política de somente relatório para Ativar.

Tip

Como as políticas de Acesso Condicional que exigem proteção de token estão atualmente disponíveis apenas para dispositivos Windows, é necessário proteger seu ambiente contra possíveis desvios de política quando um invasor pode parecer vir de uma plataforma diferente.

Além disso, você deve configurar as seguintes políticas:

Capturar logs e analisar

Monitore a imposição de acesso condicional da proteção de token antes e depois da imposição usando recursos como impacto de política, logs de entrada e Log Analytics.

Logs de entrada

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

Captura de tela mostrando um exemplo de uma política que não está sendo atendida.

  1. Entre no Centro de administração do Microsoft Entra como pelo menos um Administrador de Acesso Condicional.
  2. Navegue até Entra ID>Monitoramento e integridade>Registros de entrada.
  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 de 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.
  6. Para encontrar mais detalhes sobre o estado de associação da solicitação, selecione o painel Informações Básicas e veja o campo Proteção de Token – Sessão de Entrada. Os valores possíveis são os seguintes:
    1. Associado: a solicitação estava usando protocolos associados. Alguns logins podem incluir várias solicitações, e todas as solicitações devem ser vinculadas para atender à política de proteção de tokens. Mesmo que uma solicitação individual pareça estar associada, ela não garante a conformidade com a política se outras solicitações não estiverem associadas. Para ver todas as solicitações de entrada, você pode filtrar todas as solicitações de um usuário específico ou procurar por corelationid.
    2. Não associado: a solicitação não estava usando protocolos associados. Possíveis statusCodes quando a solicitação não está associada:
      1. 1002: A solicitação não está associada devido à falta de estado do dispositivo Microsoft Entra ID.
      2. 1003: A solicitação não está associada porque o estado do dispositivo do Microsoft Entra ID não atende aos requisitos de política de Acesso Condicional para proteção de token. Esse erro pode ser devido a um tipo de registro de dispositivo sem suporte ou o dispositivo não foi registrado usando novas credenciais de entrada.
      3. 1005: A solicitação não está associada por outros motivos não especificados.
      4. 1006: A solicitação não é associada porque a versão do sistema operacional não tem suporte.
      5. 1008: A solicitação não está vinculada porque o cliente não está integrado ao agente da plataforma, como o Gerenciador de Contas do Windows (WAM).

Captura de tela mostrando uma entrada de exemplo com o atributo Proteção de Token – Sessão de Entrada realçado.

Análise de Logs

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 uma falha de imposição de proteção de token.

Aqui está um exemplo de consulta do Log Analytics pesquisando os logs de entrada não interativos nos últimos sete dias, realçando solicitações Bloqueadas versus Permitidas por Aplicativo. Essas consultas são apenas exemplos e estão sujeitas a alterações.

Note

Saída de logs de logon: o valor da cadeia de caracteres usada em "enforcedSessionControls" e "sessionControlsNotSatisfied" foi alterado 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 os dois 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" or ResourceDisplayName =="Azure Virtual Desktop" or ResourceDisplayName =="Windows 365" or ResourceDisplayName =="Windows Cloud Login"
| 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, 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:

Captura de tela mostrando resultados de exemplo de uma consulta do Log Analytics procurando políticas de proteção de token

O exemplo de consulta a seguir examina o log de entrada não interativo dos últimos sete dias, realçando 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" or ResourceDisplayName =="Azure Virtual Desktop" or ResourceDisplayName =="Windows 365" or ResourceDisplayName =="Windows Cloud Login"
| 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   

O exemplo de consulta a seguir analisa o log de entrada não interativo dos últimos sete dias, destacando os usuários que estão usando dispositivos, em que o estado do dispositivo do Microsoft Entra ID não atende aos requisitos de política de AC de proteção de token.

AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| where TokenProtectionStatusDetails!= "" 
| extend parsedBindingDetails = parse_json(TokenProtectionStatusDetails) 
| extend bindingStatus = tostring(parsedBindingDetails["signInSessionStatus"]) 
| extend bindingStatusCode = tostring(parsedBindingDetails["signInSessionStatusCode"]) 
| where bindingStatusCode == 1003 
| summarize count() by UserPrincipalName 

Experiência do usuário final

Um usuário que registrou ou registrou seu dispositivo com suporte não apresenta diferenças na experiência de entrada em um aplicativo com suporte de proteção de token quando o requisito de proteção de token está habilitado.

Um usuário que não registrou ou registrou seu dispositivo e se a política de proteção de token estiver habilitada verá a captura de tela a seguir após a autenticação.

Captura de tela da mensagem de erro de proteção de token quando o dispositivo não está registrado ou registrado.

Um usuário que não estiver usando um aplicativo com suporte quando a política de proteção de token estiver habilitada verá a captura de tela a seguir após a autenticação.

Captura de tela da mensagem de erro quando uma política de proteção de token bloqueia o acesso.

O que é um token de atualização primário?