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.
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
- 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. - 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. - Navegue até as configurações de Autenticação
Clique no nome do aplicativo e selecione Autenticação no menu à esquerda. - 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. - 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. - 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
- 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. - Substitua a chamada de fluxo implícito pela chamada de código de autorização
No seu código, remova o parâmetroresponse_type: 'token'ouresponse_type: 'id_token token'. Useresponse_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. - 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. - Adquira tokens silenciosamente para chamadas da API do Copilot
UseacquireTokenSilentpara 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);
UsetokenResponse.accessTokenno cabeçalho Authorization das suas solicitações da API do Copilot. - 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.
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.