Compreendendo Redirect URI e Fluxo de Código de Autorização no OpenID Connect (OIDC)
Vamos examinar mais de perto o URI de redirecionamento, pois é um componente de segurança crítico no processo de autenticação OIDC.
Vamos examinar mais de perto o URI de redirecionamento, pois é um componente de segurança crítico no processo de autenticação OIDC.
Um Redirect URI, também conhecido como Reply URL, é um componente de segurança crítico no processo de autenticação OIDC. Ele especifica o URL para onde os usuários são enviados após se autenticarem com sucesso através de um provedor OIDC. Mais importante, é onde seu aplicativo recebe o código de autorização necessário para obter tokens.
Confira a wiki do Redirect URI para mais detalhes.
O Fluxo de Código de Autorização (definido na RFC 6749 do OAuth 2.0, seção 4.1) é um método de autenticação fundamental no OIDC. Ele envolve a troca de um código de autorização por um token de acesso e, opcionalmente, um token de atualização. Este fluxo é adequado para aplicativos que podem manter um segredo de cliente com segurança, como aplicativos web do lado do servidor.
Confira a wiki do Fluxo de Código de Autorização para mais detalhes.
No Fluxo de Código de Autorização, o Redirect URI é o destino para o qual o provedor OIDC envia o código de autorização após o usuário autenticar-se com sucesso. Ele deve ser pré-registrado com o provedor OIDC para garantir segurança e prevenir redirecionamentos não autorizados.
Veja como você pode registrar um Redirect URI no Logto Console:

Ao iniciar um login:
client_id, response_type, scope e o redirect_uri.redirect_uri especificado, incluindo um código de autorização como um parâmetro de consulta.O provedor OIDC valida o redirect_uri em relação à lista de URIs pré-registrados. Se houver uma discrepância, um erro invalid_redirect_uri será retornado, aumentando a segurança ao prevenir que endpoints não autorizados recebam tokens.
Em casos de uso da vida real, uma prática comum é declarar uma página de "Callback" dedicada e associar um roteador / link profundo que permita acesso direto a partir de fontes externas. Este link deve ser usado como o redirect URI.
Assumindo que você tenha um aplicativo web de página única rodando em https://my-app.com, então normalmente o redirect URI seria declarado como https://my-app.com/callback
Ou, se for um aplicativo móvel nativo, o redirect URI geralmente começa com um esquema personalizado, por exemplo, com.company://myapp/callback
Outras melhores práticas incluem:
Para tratar o código de autorização retornado para o seu redirect_uri, siga estas etapas:
Extraia o código de autorização: Recupere o parâmetro de código da string de consulta do redirect URI.
Troque o código de autorização por tokens: Componha uma solicitação POST para o endpoint de token do provedor OIDC, incluindo:
client_id: A ID do seu aplicativo no provedor OIDCcode: O código de autorização recebido do redirect URIcode_verifier: Uma string aleatória gerada no clienteredirect_uri: O mesmo URI usado na solicitação de autorizaçãogrant_type: O tipo de concessão, geralmente authorization_codeOs SDKs do Logto são kits de desenvolvimento escritos em uma linguagem ou framework de programação específico, por exemplo, Logto React SDK, Next.js SDK e Swift SDK. Utilizar um SDK pode simplificar bastante as coisas, chamando apenas uma ou duas funções.
Aqui está um exemplo de componente "Callback" em React usando o Logto React SDK oficial:
Guias de integração dos SDKs podem ser encontrados na documentação de início rápido do Logto.
Compreender Redirect URIs no OIDC com o fluxo de código de autorização é crucial para proteger e otimizar seus processos de autenticação. Ao registrar URIs de redirecionamento confiáveis e lidar com callbacks de login de forma eficiente, você pode garantir uma experiência tranquila e segura para seus usuários enquanto simplifica seus esforços de desenvolvimento com os SDKs do Logto.