OpenID Connect
OAuth 2.0 concede acceso a un recurso. OpenID Connect añade identidad: quién es la persona que inicia sesión.
OAuth 2.0 responde a «¿tiene esta aplicación permiso para acceder a estos datos?». Produce un access token. No dice nada sobre la persona.
OpenID Connect (OIDC) es una capa de identidad sobre OAuth 2.0. Añade un token de identidad (ID token), un endpoint userinfo y scopes estándar (openid, profile, email). Si solicita el scope openid, está haciendo OIDC; si no, OAuth simple.
sub), emitido por quién (iss), para quién (aud = su client_id), cuándo (iat, exp) y repite su nonce. Está pensado para la aplicación, nunca para la API./.well-known/openid-configuration | Discovery: un documento JSON que lista todos los demás endpoints y las capacidades del proveedor. Un cliente serio solo necesita la dirección del issuer. |
|---|---|
jwks_uri | Las claves públicas usadas para verificar la firma de los tokens (rotación posible). |
authorization_endpoint | Adónde envía el navegador a la persona para autenticarse. |
token_endpoint | Donde la aplicación intercambia un código (u otro) por tokens, de servidor a servidor. |
userinfo_endpoint | La información de la persona, con un access token. |
introspection, revocation | Compruebe si un token sigue activo (RFC 7662); invalídelo (RFC 7009). |
end_session_endpoint | Cierre de sesión solicitado por la aplicación (RP-initiated logout). |
device_authorization_endpoint | Iniciar un flujo «device» (RFC 8628). |
En un ID token: firma (claves de jwks_uri), iss exacto, aud contiene su client_id, exp no superado, nonce idéntico al enviado, at_hash/c_hash cuando están presentes. En la respuesta: state idéntico y PKCE (code_verifier) con el flujo de código.
¿Quiere verlo en directo? ID-Kit ejecuta cada flujo y le muestra los tokens.