Aviso de Fluxo Implícito OAuth Obsoleto no Copilot: Passos para Migração
🔍 WiseChecker

Aviso de Fluxo Implícito OAuth Obsoleto no Copilot: Passos para Migração

Você pode ver um aviso no centro de administração do Microsoft Entra de que o fluxo de concessão implícita OAuth 2.0 está obsoleto para integrações do Copilot. Isso afeta aplicativos que autenticam usuários ou adquirem tokens para o Copilot usando o fluxo implícito, que a Microsoft marcou como obsoleto. O fluxo implícito é menos seguro que o fluxo de código de autorização com PKCE. Este artigo explica por que a descontinuação é importante e fornece etapas detalhadas de migração para seu aplicativo.

Principais conclusões: Migrando do fluxo implícito para o fluxo de código de autorização para o Copilot

  • Centro de administração do Microsoft Entra > Registros de aplicativo > Autenticação: Desabilite as configurações de concessão implícita para tokens de acesso e tokens de ID.
  • Fluxo de código de autorização com PKCE: Substitua o fluxo implícito no código do seu aplicativo para obter tokens de forma mais segura.
  • URIs de redirecionamento: Atualize o registro do seu aplicativo para usar URIs de redirecionamento “https” para o fluxo de código de autorização.

ADVERTISEMENT

Por que a Microsoft descontinuou o fluxo implícito OAuth para o Copilot

O fluxo de concessão implícita OAuth 2.0 foi originalmente projetado para aplicativos de página única baseados em navegador. Nesse fluxo, o token de acesso é retornado diretamente no fragmento da URL após a autenticação do usuário. Isso expõe o token no histórico do navegador, logs do servidor e cabeçalhos de referenciador, criando um risco de segurança. Um invasor que obtém acesso ao navegador ou logs de rede pode capturar o token e usá-lo para acessar as APIs do Copilot em nome do usuário.

A Microsoft descontinuou o fluxo implícito em 2023 e começou a aplicar a descontinuação no início de 2025. Qualquer aplicativo que ainda use o fluxo implícito para autenticar no Microsoft Entra ID para o Copilot verá um aviso de descontinuação no centro de administração. O aviso aparece na lâmina Registros de aplicativo, em Autenticação, ao lado das configurações de concessão implícita.

A substituição recomendada é o fluxo de código de autorização com PKCE. PKCE significa Proof Key for Code Exchange. Ele adiciona um segredo gerado dinamicamente à solicitação de autorização. Isso impede ataques de interceptação mesmo que o código de autorização seja interceptado. O fluxo de código de autorização nunca expõe o token de acesso na URL, tornando-o significativamente mais seguro.

Etapas para migrar integrações do Copilot do fluxo implícito para o fluxo de código de autorização

A migração envolve duas áreas principais: atualizar o registro do aplicativo no centro de administração do Microsoft Entra e modificar o código do aplicativo. Siga estas etapas em ordem.

Etapa 1: Atualizar o registro do aplicativo no centro de administração do Microsoft Entra

  1. Entre no centro de administração do Microsoft Entra
    Acesse https://entra.microsoft.com e faça login com uma conta de Administrador Global ou Administrador de Aplicativos.
  2. Abra Registros de aplicativo
    Na navegação à esquerda, selecione Aplicativos > Registros de aplicativo. Encontre o aplicativo que usa o fluxo implícito para o Copilot.
  3. Navegue até as configurações de Autenticação
    Clique no nome do aplicativo e selecione Autenticação no menu à esquerda.
  4. Desabilite a concessão implícita
    Em Concessão implícita e fluxos híbridos, desmarque Tokens de acesso e Tokens de ID. Clique em Salvar.
  5. Adicione um URI de redirecionamento para o fluxo de código de autorização
    Em URIs de redirecionamento, adicione um URI que use https e aponte para seu aplicativo. Para um aplicativo de página única, use um URI como https://seudominio.com/auth/callback. Para um aplicativo nativo, use https://login.microsoftonline.com/common/oauth2/nativeclient. Clique em Configurar.
  6. Habilite o suporte a PKCE
    O Microsoft Entra ID oferece suporte a PKCE por padrão para clientes públicos. Nenhuma caixa de seleção adicional é necessária. Certifique-se de que o registro do seu aplicativo esteja definido como Cliente público/nativo em Autenticação > Configurações avançadas se for um aplicativo de desktop ou móvel.

Etapa 2: Modificar o código do aplicativo para usar o fluxo de código de autorização com PKCE

  1. Instale a biblioteca de autenticação da Microsoft mais recente
    Use MSAL.js versão 2.x ou posterior para aplicativos de navegador. Para .NET, use MSAL.NET 4.30 ou posterior. Para Python, use MSAL Python 1.15 ou posterior. Essas bibliotecas oferecem suporte a PKCE por padrão.
  2. Substitua a chamada de fluxo implícito pela chamada de código de autorização
    No seu código, remova o parâmetro response_type: 'token' ou response_type: 'id_token token'. Use response_type: 'code' em vez disso. Exemplo em MSAL.js:
    const msalConfig = { auth: { clientId: 'seu-client-id', authority: 'https://login.microsoftonline.com/seu-tenant-id', redirectUri: 'https://seudominio.com/auth/callback' } };
    const loginRequest = { scopes: ['openid', 'profile', 'User.Read', 'https://graph.microsoft.com/.default'] };
    const msalInstance = new PublicClientApplication(msalConfig);
    const response = await msalInstance.loginPopup(loginRequest); A biblioteca lida com PKCE automaticamente.
  3. Troque o código de autorização por tokens
    Após o redirecionamento de volta para seu aplicativo, o MSAL troca o código de autorização por um token de acesso. Você não precisa chamar manualmente o endpoint de token. A biblioteca faz isso nos bastidores.
  4. Adquira tokens silenciosamente para chamadas da API do Copilot
    Use acquireTokenSilent para obter tokens sem interação do usuário. Exemplo:
    const tokenRequest = { scopes: ['https://graph.microsoft.com/.default'], account: msalInstance.getAllAccounts()[0] };
    const tokenResponse = await msalInstance.acquireTokenSilent(tokenRequest);
    Use tokenResponse.accessToken no cabeçalho Authorization das suas solicitações da API do Copilot.
  5. Teste o novo fluxo
    Saia do seu aplicativo e entre novamente. Verifique se nenhum aviso de concessão implícita aparece no centro de administração do Entra. Confirme se as chamadas da API do Copilot retornam dados com sucesso.

ADVERTISEMENT

Se a migração para o fluxo de código de autorização falhar

API do Copilot retorna 401 Não Autorizado após a migração

O token de acesso pode estar sem os escopos corretos. Na solicitação de token, inclua o escopo https://graph.microsoft.com/.default para obter um token para todas as permissões do Microsoft Graph que seu aplicativo precisa. Se seu aplicativo usa escopos específicos do Copilot, adicione-os explicitamente, por exemplo https://graph.microsoft.com/Copilot.Read.

Erro de incompatibilidade de URI de redirecionamento

O URI de redirecionamento no registro do aplicativo deve corresponder exatamente ao URI no seu código, incluindo a barra final. Verifique se há espaços extras ou maiúsculas/minúsculas diferentes. Para desenvolvimento local, use http://localhost:3000/auth/callback, mas observe que URIs de produção devem usar https.

Erro PKCE: code_challenge_method não suportado

As bibliotecas MSAL versão 2.x e posteriores usam automaticamente S256 como método de desafio de código. Se você estiver usando uma biblioteca OAuth personalizada, certifique-se de definir code_challenge_method=S256 e gerar o verificador de código e o desafio de código corretamente. O verificador de código deve ser uma string aleatória de 43 a 128 caracteres usando caracteres não reservados.

Fluxo implícito vs Fluxo de código de autorização com PKCE: Principais diferenças

Item Fluxo Implícito Fluxo de Código de Autorização com PKCE
Exposição do token Token de acesso retornado no fragmento da URL Token de acesso retornado na resposta HTTP do servidor
Risco de segurança Alto — token visível no histórico do navegador e logs Baixo — token nunca aparece na URL
Suporte a PKCE Não suportado Integrado com método de desafio S256
Token de atualização Não emitido Emitido para sessões de longa duração
Recomendação da Microsoft Obsoleto Recomendado para todos os tipos de aplicativo

Após concluir a migração, verifique se nenhum aviso de descontinuação aparece no centro de administração do Microsoft Entra no registro do seu aplicativo. O aviso desaparece assim que as configurações de concessão implícita são desabilitadas e o aplicativo usa o fluxo de código de autorização. Monitore o uso da API do Copilot por alguns dias para confirmar que os tokens são adquiridos e atualizados sem erros. Para cenários avançados, considere adicionar persistência de cache de token para evitar prompts repetidos de login.

ADVERTISEMENT