OpenID Connect
Definição
OpenID Connect (OIDC) é um protocolo de autenticação construído sobre o OAuth 2.0.
Ele permite que um usuário se autentique com um provedor de identidade (como Google, Microsoft, Apple) e compartilhe com segurança sua identidade com aplicativos terceiros.
Enquanto o OAuth 2.0 trata da autorização (acesso a recursos), o OpenID Connect adiciona uma camada de autenticação e fornece informações sobre o usuário por meio de um ID Token, normalmente no formato JWT.
OIDC é o padrão atual para login federado, como “Entrar com Google”.
Objetivos do OpenID Connect
- Autenticar usuários com segurança: permitir que aplicações saibam quem é o usuário, com base em uma identidade confiável.
- Permitir login único (SSO): o usuário pode se autenticar uma única vez e acessar múltiplos serviços.
- Fornecer dados de identidade (claims): como e-mail, nome, foto de perfil etc.
- Integrar autenticação com OAuth 2.0: utilizar o mesmo fluxo de autorização para obter também a identidade do usuário.
Exemplo do fluxo de autenticação (simplificado)
[1] Aplicação redireciona usuário para o provedor (ex: Google)
[2] Usuário autentica e consente o login
[3] Provedor redireciona de volta com um "authorization code"
[4] Aplicação troca o código por um "access token" e um "ID token"
[5] A aplicação usa o ID token para obter a identidade do usuário
Exemplo de ID Token (JWT)
{
"iss": "https://accounts.google.com",
"sub": "1234567890",
"name": "Maria Programadora",
"email": "maria@exemplo.com",
"picture": "https://example.com/avatar.jpg",
"aud": "app-client-id",
"exp": 1715000000,
"iat": 1714996400
}
O ID Token é um JWT assinado, e pode ser validado pelo aplicativo para confirmar a identidade do usuário.
O ciclo do OpenID Connect
[Usuário autentica com provedor de identidade] --> [Recebe ID Token] --> [Aplicativo identifica o usuário]
O provedor autentica o usuário.
O ID Token carrega informações confiáveis sobre o usuário.
A aplicação usa essas informações para autenticação e sessão.