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.

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com