OpenID Connect (OIDC): ID Tokens, Sesiones y Federación de Identidad
Volver a Learn
FAACCapítulo 17

Fundamentos y Arquitectura de APIs Corporativas

OpenID Connect (OIDC): ID Tokens, Sesiones y Federación de Identidad

De la autenticación del usuario a la validación de ID Tokens, UserInfo, niveles de assurance, SSO y logout federado

Edición en profundidad - material de estudio y consulta profesional

Identidad federada OpenID Connect con ID Tokens verificables, sesiones y Relying Parties

Autenticación federada en una aplicación empresarial

OpenID Connect conectando usuario, Relying Party, OpenID Provider, ID Token y aplicación protegida
Figura de apertura: comunica un evento de autenticación verificable e interoperable al cliente.

Principio central

El demuestra un evento de autenticación para el cliente; El autoriza el acceso al resource server.

Edición en profundidad: material de estudio y consulta profesional.

Presentación del capítulo

El capítulo anterior profundizó en 2.0 como marco de autorización delegada. permite a un cliente obtener autoridad limitada para acceder a un resource server, pero, por sí solo, no define una forma estandarizada de comunicar al cliente que un usuario ha sido autenticado. OpenID Connect agrega esta capa de identidad mediante el uso de y mecanismos de , introduciendo el de openid, el , las estandarizadas, la , el y las reglas de validación específicas.

Esta distinción es decisiva en las arquitecturas empresariales. El está destinado a la ; el está destinado al cliente que inició la autenticación. Una aplicación web puede validar el y crear su propia sesión, mientras presenta separados a . Reenviar el al como si fuera una credencial confunde a los destinatarios, aumenta la exposición de los datos personales y crea validaciones incorrectas.

también organiza cuestiones que van más allá del primer inicio de sesión: niveles de autenticación, , step-up, identidad federada, consentimiento de , identificadores de sujetos, de metadata, rotación de claves, sesiones distribuidas y cierre de sesión. En entornos con múltiples tenants y proveedores, la seguridad depende de asociar cada con el issuer correcto y evitar que los metadata o claves de un dominio se apliquen a otro.

Este capítulo detalla el flujo de con desde una perspectiva , la anatomía y validación del , , state, , , , , identificadores de sujeto, sesiones y mecanismos de cierre de sesión. También relaciona conceptos con aplicaciones web, , , aplicaciones nativas, Axway , Microsoft Entra y Azure Management.

Cómo estudiar este capítulo

En cada flujo, etiquete cuatro destinatarios: navegador, cliente , y . Luego, asocie cada artefacto con el destinatario correcto: , , , , de sesión y de cierre de sesión.

Objetivos de aprendizaje

  • Explique por qué OpenID Connect es una capa de identidad construida sobre 2.0.
  • Diferenciar , , , authorization server y resource server.
  • Describa el flujo del con openid, state, y .
  • Interprete y valide , incluidos , , aud, , exp, iat, , , y .
  • Distinga , , , y respuesta .
  • Comprender los y de identidad solicitados, esenciales y voluntarios.
  • Diseñe identificadores public y pairwise sin utilizar el correo electrónico como clave inmutable.
  • Relacione , , y con , políticas de incremento y riesgo.
  • Distinguir sesión en el , sesión en el cliente y autorización ante .
  • Compare RP-Initiated, Front-Channel y .
  • Utilice y con validación de issuers, algoritmos y rotación de claves.
  • Diagnosticar fallas en aplicaciones, y entornos federados.

Estructura del capítulo

  • 17.1 como capa de identidad sobre 2.0
  • 17.2 Roles, y artefactos
  • 17.3 La solicitud de autenticación y el de openid
  • 17.4 Flujo de con
  • 17.5 : finalidad, formato y
  • 17.6 Validación segura del
  • 17.7 state, , , y at_hash
  • 17.8 y de identidad
  • 17.9 de
  • 17.10 Subject identifiers: public y pairwise
  • 17.11 , , , y
  • 17.12 , step-up y contexto de autenticación
  • 17.13 Sesiones en el OP, en el RP y frente a las
  • 17.14
  • 17.15 Front-Channel y
  • 17.16 , metadata y
  • 17.17 Registro de clientes y redirect
  • 17.18 Federación de identidades y cadena de confianza
  • 17.19 Multi-tenant, múltiples issuers y vinculación de cuentas
  • 17.20 Aplicaciones web, , y aplicaciones nativas
  • 17.21 en , Axway y Azure
  • 17.22 Amenazas y hardening
  • 17.23
  • 17.24 Estudios de casos y laboratorios
  • Resumen, lista de verificación, ejercicios, glosario y referencias.

17.1 como capa de identidad sobre 2.0

OpenID Connect define una capa de identidad que permite al cliente verificar la identidad del usuario basándose en la autenticación realizada por un authorization server que también actúa como . El protocolo reutiliza el de autorización, el y las grants de 2.0, pero agrega semántica de autenticación y un conjunto de mensajes y validaciones propias.

La activación de se produce cuando la solicitud contiene el de openid. Sin este valor, la transacción sigue siendo y el cliente no debe asumir que recibirá un . Otros , como perfil, correo electrónico, dirección y teléfono, solicitan conjuntos estandarizados de , pero no reemplazan el de openid.

El principal resultado de la autenticación es el , una afirmación de seguridad sobre el evento de autenticación y el identificador del usuario en el contexto de ese issuer. El cliente valida esta afirmación y decide crear o actualizar una sesión local. El no es una búsqueda de directorio en tiempo real y no garantiza que todos los atributos permanezcan actualizados durante toda la sesión.

Distinción esencial

responde "¿qué autoridad se le dio a este cliente para acceder a un recurso?". responde "¿qué usuario fue autenticado para este cliente, por qué issuer y bajo qué condiciones?". Un sistema puede utilizar ambos en la misma transacción sin confundir sus .

17.2 Roles, y artefactos

El Usuario Final es la persona autenticada. La , o RP, es el cliente que solicita y consume autenticación. El , u OP, autentica al usuario y emite . En muchas plataformas, el mismo producto desempeña las funciones de OP y authorization server, pero el análisis conceptual continúa separando la autenticación para el cliente y la autorización para las .

El de autorización interactúa con el navegador para iniciar sesión, dar consentimiento y regresar al redirect . El recibe el a través del back-channel y devuelve los . El es un recurso protegido al que se accede con un . El de publica metadata y jwks_uri hace referencia a las claves públicas utilizadas en la verificación de firmas.

Los artefactos tienen diferentes ciclos de vida. El es corto y de un solo uso. El describe la autenticación para el RP. El representa autoridad ante un resource server. El le permite obtener nuevos según la política. Las mantienen sesiones en el OP o RP y no deben tratarse como equivalentes a .

Tabla 1 - Cada artefacto tiene su propio destinatario y propósito.
ElementoDestinatario principalPropósito
Authorization codeToken endpointRepresenta temporalmente la autorización y vincula el front-channel al back-channel.
ID TokenRelying PartyComunicar el contexto de identidad y autenticación al cliente.
Access tokenResource server/APIAutorizar operaciones protegidas.
Refresh tokenAuthorization serverObtener nuevos tokens sin repetir toda la interacción.
Respuesta UserInfoRelying PartyEntregar claims autorizadas sobre el usuario.
Cookie del OPOpenID ProviderMantener la sesión de autenticación federada.
Cookie del RPAplicación clienteMantener la sesión de la aplicación local.
Flujo de authorization code OIDC que separa la creación de sesiones de front-channel, back-channel y local
Figura 1: El code pasa a través del navegador, pero los se obtienen del a través de un canal directo.

17.3 Solicitud de autenticación y openid

La solicitud es una solicitud de autorización más requisitos de identidad. Los parámetros habituales incluyen client_id, response_type, redirect_uri, , state, , code_challenge y code_challenge_method. Otros parámetros, como , , login_hint, ui_locales y acr_values, impulsan la experiencia deseada o el nivel de autenticación, siempre que sean compatibles con el OP.

El redirect_uri debe coincidir con un valor registrado previamente. Las comparaciones flexibles, los comodines amplios y las redirecciones derivadas de externos aumentan el riesgo de secuestro del y phishing. El cliente debe generar state, y code_verifier con suficiente entropía para cada intento y asociarlos con la transacción local antes de redirigir el navegador.

El parámetro de debe contener openid. Los adicionales indican grupos de que el cliente solicita, pero el OP aún aplica la política, el consentimiento y la minimización. Solicitar el perfil no garantiza que todas las del conjunto se devolverán en el ; algunos pueden aparecer en o ser omitidos.

Ejemplo conceptual: Solicitud de autorización

GET /authorize?
  response_type=code
  &client_id=portal-web
  &redirect_uri=https%3A%2F%2Fportal.example%2Fcallback
  &scope=openid%20profile%20email
  &state=Qm9uZGluZy1mbG93LTE
  &nonce=bm9uY2UtZm9yLWlkLXRva2Vu
  &code_challenge=9Fq...
  &code_challenge_method=S256 HTTP/1.1
Host: id.example

17.4 Flujo de con

En el flujo recomendado, el navegador se redirige al de autorización, el OP autentica al usuario y devuelve un al redirect del cliente. El cliente valida el estado y envía el code al junto al code_verifier. Un confidential client también se autentica en el utilizando un mecanismo compatible, preferiblemente una credencial asimétrica o un método apropiado para el entorno.

vincula el code a la instancia que inició la transacción. El code_challenge se envió en la solicitud inicial y el code_verifier solo se revela en el intercambio. Incluso si un atacante intercepta el code, no puede intercambiarlo sin el verificador. no reemplaza el estado ni el : cada valor protege una relación diferente.

La respuesta del puede contener un , un , un token_type, expires_in y, según la política, un . El cliente no debe crear una sesión solo porque recibió 200. Primero valida la respuesta, el , el issuer, la audience, la firma, la ventana de tiempo, el y otros requisitos de flujo.

Ejemplo conceptual: cambiar el

POST /token HTTP/1.1
Host: id.example
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=SplxlOBeZQQYbYS6WxSbIA&
redirect_uri=https%3A%2F%2Fportal.example%2Fcallback&
client_id=portal-web&
code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
Estructura de un ID Token con encabezado, carga útil, firma y destinatario explícito
Figura 2: El es una afirmación destinada al cliente , no una credencial universal.

17.5 : finalidad, formato y

El es un que contiene sobre la autenticación del usuario. Está firmado por el OP y, en escenarios específicos, también puede cifrarse para el cliente. La firma proporciona integridad y autenticación del origen; no ofrece confidencialidad. Cualquier confidencial incluido en un firmado únicamente puede ser leído por quien obtenga el valor.

Los fundamentales incluyen , que identifica al issuer; , que identifica al usuario localmente ante el issuer; aud, que identifica al cliente destinatario; exp e iat, que definen la validez y la emisión. Dependiendo del flujo y la solicitud, aparecen , , , , , at_hash y .

El cliente debe utilizar la combinación y como clave externa estable. El correo electrónico, el teléfono y el nombre son atributos modificables y pueden reciclarse. En arquitecturas multi-tenant, el tenant total o issuer también participa en la identidad; usar solo sin contexto puede producir colisiones entre remitentes.

Carga útil ilustrativa del

{
  "iss": "https://id.example",
  "sub": "248289761001",
  "aud": "portal-web",
  "exp": 1784127000,
  "iat": 1784126100,
  "auth_time": 1784126000,
  "nonce": "bm9uY2UtZm9yLWlkLXRva2Vu",
  "acr": "urn:example:loa:2",
  "amr": ["pwd", "otp"]
}

El no es un

Incluso cuando ambos son y comparten algunas , sus destinatarios y su semántica son diferentes. La debe validar el emitido a su audience; el cliente valida el emitido a su client_id.

Cadena obligatoria de validación de ID Tokens criptográficos, temporales y contextuales.
Figura 3: La verificación criptográfica es solo un paso de la validación contextual.

17.6 Validación segura del

El cliente debe comparar exactamente con el issuer esperado. Luego selecciona una clave confiable para verificar la firma y restringe los algoritmos a aquellos que se aceptan explícitamente. El valor alg del por sí solo no puede decidir la política. El kid ayuda con la selección de claves, pero no reemplaza la confianza en el jwks_uri asociado con el issuer.

El aud del debe contener el client_id del RP. Cuando hay múltiples audiences, identifica a la parte autorizada y debe ser evaluado de acuerdo con las reglas del protocolo. exp debe estar en el futuro dentro de la tolerancia del reloj; iat no puede estar absurdamente distante; se valida cuando la solicitud requiere una de autenticación.

Si se envió , el debe contener el mismo valor asociado con el intento local. Las declaraciones de seguridad como y solo deben usarse cuando su semántica esté documentada y el issuer confíe en ella. La presencia de una cadena similar a “ ” no crea, en sí misma, un nivel de seguridad interoperable.

Las bibliotecas maduras realizan la mayoría de las comprobaciones, pero aún requieren la configuración correcta del issuer, el ID del cliente, los algoritmos, los redirect y el almacenamiento de estado. Decodificar el manualmente y observar las no equivale a validarlo.

Tabla 2: La aceptación del ID Token depende de las validaciones criptográficas y semánticas.
VerificaciónFracaso evitadoEvidencia
iss exactoAceptar token de un issuer no autorizadoIssuer obtenido de una configuración confiable.
Firma y algToken manipulado o algoritmo inadecuadoJWK correspondiente y lista de algoritmos permitidos.
aud/azpToken emitido a otro clienteclient_id presente y parte autorizada y consistente.
exp / iat / auth_timeReplay fuera de la ventana o sesión anteriorReloj sincronizado y tolerancia limitada.
nonceReutilización o reemplazo de respuestas de autenticaciónValor por transacción almacenado en el cliente.
acr/amrAceptar la autenticación por debajo del requisitoSemántica definida por el issuer y política local.

17.7 state, , , y at_hash

state vincula la respuesta de autorización a la transacción iniciada por el cliente y ayuda a proteger contra y la inyección de respuesta. vincula el a la solicitud de autenticación y reduce la . vincula el intercambio del a la instancia que produjo el code_challenge. Los tres valores pueden coexistir y no deben reutilizarse entre intentos.

En los tipos de respuesta que devuelven artefactos a través del de autorización, y at_hash pueden vincular, respectivamente, el y el al . La validación utiliza parte del calculado con un algoritmo relacionado con la firma. En un flujo de code puro, es posible que la biblioteca no requiera ambos, pero el implementador debe seguir las reglas del response_type realmente utilizado.

Almacenar estos valores solo en variables globales o en localStorage sin vincularse a un intento permite colisiones y ataques por pestañas concurrentes. El cliente debe mantener un registro de transacciones con issuer, client_id, redirect_uri, estado, , code_verifier, tiempo y parámetros esperados, eliminándolo en caso de éxito o vencimiento.

Valor Qué vincula Dónde se valida

Tabla 3: Los valores de correlación protegen distintas relaciones de flujo.
ValorQué vincula¿Dónde está validado?
stateSolicitud de autorización y respuestaEn el callback, antes de procesar code o error.
nonceSolicitud y ID TokenDentro del ID Token después de la validación de la firma.
code_verifierAuthorization request y token requestEn el token endpoint por parte del OP.
c_hashAuthorization Code y ID TokenEn el cliente cuando lo requiera el response_type.
at_hashAccess token y ID TokenEn el cliente cuando lo requiera el response_type.

17.8 y de identidad

define estandarizados para perfil, correo electrónico, dirección y número de teléfono. como perfil y correo electrónico son atajos para solicitar conjuntos de . La respuesta efectiva depende del OP, el consentimiento, la política y el lugar de entrega. Un puede aparecer en el , en la respuesta o en ambos.

El parámetro de permite solicitar de forma individual e indicar si son imprescindibles. “Esencial” expresa el requerimiento del cliente, pero no obliga a un OP incapaz a fabricar los datos; La transacción puede fallar o continuar según el soporte y la política. También se pueden informar los valores esperados para algunas , lo que requiere cuidado con la interoperabilidad.

La minimización es una propiedad de seguridad y privacidad. El cliente debe solicitar sólo los atributos necesarios y evitar persistir copias indefinidas. Los de grupos y roles pueden crecer, variar entre directorios o representar el estado administrativo; no deben ser tratados como sustitutos universales de la autorización de objetos y las reglas de dominio.

Ejemplo conceptual: parámetro de

{
  "id_token": {
    "acr": {"essential": true, "values": ["urn:example:loa:2"]},
    "email": {"essential": true}
  },
  "userinfo": {
    "given_name": null,
    "family_name": null
  }
}

17.9 de

El es un recurso protegido que devuelve sobre el usuario asociado con el . El cliente llama a este con un o un mecanismo sender-constrained, según el perfil adoptado. La respuesta suele ser firmada o sin firmar, según la configuración y los metadata del OP.

El cliente debe validar que el de es idéntico al del . Esta comparación evita que las de otro usuario se asocien con la sesión actual. El hecho de que la conexión utilice no elimina esta validación semántica.

es útil cuando el cliente necesita que no deben aumentar el o cuando el OP aplica la entrega selectiva. Sin embargo, cada llamada agrega dependencia de la red y manejo de indisponibilidad. El diseño debe decidir qué datos se requieren al iniciar sesión, cuáles se pueden cargar a pedido y durante cuánto tiempo se pueden almacenar.

Cuidado con los datos personales

Los y la pueden contener datos personales. No registre respuestas completas en , o herramientas de error. Prefiera identificadores mínimos, enmascaramiento y controles de retención alineados con un propósito.

17.10 Subject identifiers: public y pairwise

El proporciona un identificador único local que nunca se reasigna dentro del issuer. En el modo público, el mismo usuario tiende a recibir el mismo para diferentes clientes. En modo pairwise, el OP calcula un identificador diferente por sector de cliente, reduciendo la posibilidad de correlacionar al usuario entre aplicaciones independientes.

Los identifiers son relevantes para la privacidad, pero requieren vinculación de cuentas, soporte y planificación de migración. Dos clientes del mismo sector pueden compartir el mismo según la política de OP; Clientes de diferentes sectores reciben valores diferentes incluso para la misma persona.

La base de datos de la aplicación debe conservar el issuer y el subcomo una clave federada, manteniendo atributos como el correo electrónico en campos actualizables. Cuando hay una migración de issuer, fusión de tenants o cambio de estrategia de sujeto, la asociación necesita un procedimiento explícito y pruebas adicionales; no debe inferirse únicamente de la coincidencia del correo electrónico.

Tabla 4 - El identificador del sujeto debe equilibrar la estabilidad y la privacidad.
EstrategiaVentajaAtención operativa
Public subjectFacilita la correlación entre clientes de un mismo issuer.Aumenta la posibilidad de seguimiento entre aplicaciones.
Pairwise subjectReduce la correlación entre sectores de clientes.Requiere identificador de sector y planificación de vinculación.
Correo electrónico como claveSuena sencillo para los negocios.Es modificable, se puede reciclar y no es un identificador seguro.
iss + subIdentidad federada estable en el dominio del issuer.Debe conservarse en migraciones y multi-tenant.

17.11 , , , y

representa una clase o contexto de autenticación logrado, según el vocabulario del issuer o de un perfil. enumera los métodos utilizados, como contraseña, OTP, biometría o hardware, pero los valores y combinaciones deben interpretarse de acuerdo con la documentación del OP. registra cuándo se produjo la autenticación activa.

El cliente puede usar para exigir que la autenticación no supere un determinado umbral. Cuando se solicita , se vuelve esencial para la verificación. interacción de controles rápidos: ninguno intenta una autenticación silenciosa; el inicio de sesión fuerza una nueva autenticación; el consentimiento fuerza una nueva decisión de consentimiento; select_account solicita la selección de cuenta, según sea compatible.

acr_values expresa preferencia por contextos de autenticación. En operaciones de alto riesgo, el cliente puede iniciar un nuevo flujo con un requerimiento más fuerte. La política no debe depender únicamente de los parámetros enviados por el front-end; el OP y el cliente deben validar que el contexto devuelto satisface la regla de operación.

Tabla 5: Las claims y los parámetros describen el recencia y contexto de autenticación.
Claim / parámetroSignificadoUso típico
acrClase de contexto de autenticación logradaComparar con el nivel requerido por la operación.
amrMétodos utilizados en la autenticación.Auditorías y políticas específicas del issuer.
auth_timeInstante de la autenticación activaValidar max_age y antigüedad.
max_ageEdad máxima de autenticación aceptableFuerce la reautenticación para operaciones sensibles.
promptComportamiento de interacción solicitadonone, login, consent o select_account.

17.12 , step-up y contexto de autenticación

significa utilizar factores independientes, no sólo dos pasos del mismo factor. Normalmente, RP no implementa autenticadores; solicita o verifica un contexto emitido por el OP. Para una operación de alto riesgo, el cliente puede iniciar un paso adelante y requerir una nueva autenticación con o una política equivalente.

La decisión debe considerar la autenticación ya realizada, el riesgo actual, el dispositivo, el recurso y el tiempo transcurrido desde la última prueba. Un usuario puede tener una sesión válida en el OP, pero aún necesita autenticación adicional para autorizar el pago, cambiar credenciales o acceder a datos confidenciales.

El resultado del step-up debe vincularse a la operación o sesión adecuada. Aceptar un antiguo que contenía , sin evaluar y el contexto de la transacción, permite una reutilización indebida. En sistemas críticos, la confirmación comercial puede requerir controles más allá de , como firma transaccional o aprobación independiente.

Principio de assurance

No trate a y como cadenas universales. Definir qué valores puede emitir cada issuer, qué significan, cómo se auditan y qué operaciones aceptan cada nivel. En las federaciones, este mapeo debe ser parte del acuerdo de confianza.

Sesiones de OpenID Provider, Relying Party, tokens OAuth y estado de API
Figura 4: , sesión local y autorización de son estados relacionados pero independientes.

17.13 Sesiones en el OP, en el RP y frente a las

La sesión en OP permite el Single Sign-On entre clientes que confían en el mismo proveedor. Generalmente está representado por una bajo el dominio del OP. Cuando otro RP envía una solicitud de autorización, el OP puede reutilizar la autenticación existente, siempre que la política, y lo permitan.

La sesión RP la crea la aplicación después de validar el . En una aplicación web tradicional o , una HttpOnly, Secure y SameSite hace referencia al estado en el servidor. En puro, las bibliotecas pueden mantener en el navegador, lo que aumenta la importancia de la protección y reduce las assurances de confidencialidad de los secretos.

La normalmente valida los con cada llamada y no conoce la del OP ni la del RP. La caducidad de la sesión local evita que el navegador realice más acciones, pero no necesariamente revoca los ya emitidos. Del mismo modo, revocar un no borra automáticamente todas las de la sesión.

El diseño de la sesión debe definir tiempos absolutos y de inactividad, renovación, rotación, revocación, reautenticación y comportamiento en múltiples dispositivos. La experiencia de "salir de todas partes" requiere inventario y coordinación entre sesiones y .

17.14

En el , el cliente redirige el navegador al de cierre de sesión del OP. Los parámetros comunes incluyen id_token_hint, post_logout_redirect_uri, client_id y state, según las reglas y el soporte del proveedor. El post_logout_redirect_uri debe estar registrado previamente para evitar la redirección abierta.

id_token_hint ayuda al OP a identificar la sesión y el cliente, pero no debe tratarse como un . State puede correlacionar el retorno posterior al cierre de sesión y la navegación segura. El RP debe limpiar su sesión local independientemente de si se produce la redirección final, evitando que una falla de la red mantenga al usuario aparentemente autenticado en la aplicación.

El cierre de sesión iniciado por el RP no garantiza por sí solo que todas las demás aplicaciones conectadas al OP estén cerradas. El OP puede ofrecer propagación por front-channel o por back-channel. La política del producto debe dejar claro si "salir" significa finalizar sólo la aplicación actual, la sesión del proveedor o todas las sesiones conocidas.

Ejemplo conceptual:

GET /logout?
  id_token_hint=eyJ...
  &post_logout_redirect_uri=https%3A%2F%2Fportal.example%2Fsigned-out
  &state=bG9nb3V0LXRyYW5zYWN0aW9u HTTP/1.1
Host: id.example
Comparación entre el RP-Initiated Logout, el front-channel, el back-channel y la sesión local
Figura 5: Los mecanismos de cierre de sesión difieren según el canal utilizado y la dependencia del navegador.

17.15 Front-Channel y

El cierre de sesión del front-channel utiliza el agente de usuario para cargar las de cierre de sesión desde los RP. El mecanismo es sencillo y compatible con aplicaciones web, pero depende del navegador, de las y de la finalización de la navegación. Las restricciones a las e iframes de terceros pueden reducir la confiabilidad en algunos entornos.

El cierre de sesión del back-channel envía una solicitud directa desde el OP al registrado por el RP. El cuerpo contiene un de cierre de sesión firmado, con eventos e identificadores específicos como o . El RP valida issuer, audience, firma, hora, jti y evento antes de invalidar la sesión correspondiente. El debe ser idempotente, resistente y no depender de las del navegador.

Management y el de estado también pueden detectar cambios, pero el diseño debería preferir mecanismos finales respaldados por el ecosistema. Ningún cierre de sesión reemplaza el vencimiento breve del , la revocación cuando corresponda y la autorización continua para operaciones de alto riesgo.

Tabla 6: El cierre de sesión debe diseñarse como propagación de estado, no como una redirección única.
MecanismoCanalFortalezasLimitaciones
RP-InitiatedNavegador del RP al OPExperiencia de salida explícita.No se propaga por sí solo a todos los RPs.
Front-ChannelNavegador del OP a los RPsImplementación web directa.Depende del agente de usuario, las cookies y la red.
Back-ChannelOP llama al endpoint de RPNo depende del navegador; más determinista.Exige endpoint, validación y tratamiento resiliente.
Caducidad localControl del propio RPSiempre disponible y sencillo.No cierra sesión en el OP ni en otros RP.

17.16 , metadata y

publica un documento de configuración en una dirección conocida derivada del issuer. El documento informa Authorization_endpoint, token_endpoint, UserInfo_endpoint, jwks_uri, end_session_endpoint cuando esté disponible, tipos de respuesta, , , métodos de autenticación del cliente y algoritmos admitidos.

El cliente debe iniciar el de un issuer previamente confiable y verificar que el issuer publicado en el documento coincida exactamente con lo esperado. No se debe aceptar un issuer proporcionado libremente por el usuario y, a partir de ahí, recuperar metadata sin política, ya que esto permite , confusión y confianza en proveedores no autorizados.

jwks_uri publica claves públicas. Las bibliotecas almacenan en caché y usan kid para seleccionar la clave. La rotación requiere un período de superposición: los firmados con la clave anterior pueden seguir siendo válidos mientras la nueva clave ya esté publicada. Ante un kid desconocido, el cliente puede actualizar de manera controlada, evitando bucles de red causados por maliciosos.

Extracto ilustrativo: Metadata del

{
  "issuer": "https://id.example",
  "authorization_endpoint": "https://id.example/authorize",
  "token_endpoint": "https://id.example/token",
  "userinfo_endpoint": "https://id.example/userinfo",
  "jwks_uri": "https://id.example/jwks.json",
  "end_session_endpoint": "https://id.example/logout",
  "id_token_signing_alg_values_supported": ["RS256", "ES256"]
}

Los metadata son la configuración de seguridad.

reduce la configuración manual, pero no hace que ningún sea confiable. El issuer raíz debe provenir de una configuración, lista de permitidos o cadena de federación validada; Los redireccionamientos y jwks_uri permanecen sujetos a restricciones de red y políticas.

17.17 Registro de clientes y redirect

El OP necesita conocer cada cliente: client_id, tipo de aplicación, redirect , post_logout_redirect_uri, métodos de autenticación, claves, y políticas. Los clientes públicos no pueden mantener un secreto confiable; Los clientes confidenciales necesitan proteger sus credenciales y prefieren la autenticación asimétrica cuando el riesgo lo amerita.

Los redirect deben ser precisos y utilizar , excepto las excepciones controladas para el bucle invertido de la aplicación nativa. Los esquemas de personalizados requieren protección contra colisiones y preferencia por enlaces de aplicaciones o enlaces universales cuando estén disponibles. Los comodines y la coincidencia amplia de prefijos pueden permitir que el se entregue a un destino controlado por el atacante.

El registro dinámico puede automatizar los ecosistemas, pero amplía la huella administrativa. Se hacen necesarias declaraciones de software, políticas, autenticación de registrantes, validación de metadata y gestión del ciclo de vida. En entornos empresariales típicos, el registro gobernado por catálogos y canalizaciones ofrece una mayor previsibilidad.

Tabla 7: la clasificación del cliente determina los posibles controles, no solo el nombre de la aplicación.
Tipo de clienteAlmacenamiento de credencialesRecomendación
Web server / BFFPuede proteger secretos o claves en el servidorCode + PKCE y autenticación sólida en el token endpoint.
SPA en el navegadorNo tiene un secreto confiableCode + PKCE; Reduzca los tokens en el navegador y evalúe BFF.
Aplicación nativaUtiliza el almacenamiento del sistema pero es un cliente público.Code + PKCE con navegador externo y redireccionamiento seguro.
Daemon confidencialPuede utilizar clave, certificado o identidad de carga de trabajoClient Credentials para API; OIDC sólo cuando hay un usuario.
Cadena de confianza federada entre la Relying Party, metadata, claves, políticas y OpenID Provider
Figura 6: La federación se basa en una cadena explícita de metadata, claves, políticas y gobernanza.

17.18 Federación de identidades y cadena de confianza

La federación permite que una aplicación confíe en la autenticación realizada por otro dominio. En una relación bilateral, el RP configura directamente el issuer, los metadata, las claves y las reglas. En las federaciones multilaterales, las entidades y los trust anchors pueden publicar declaraciones y políticas firmadas que permitan resolver la cadena de confianza de forma escalable.

La confianza técnica no reemplaza el acuerdo organizacional. Es necesario definir onboarding, ownership y assurance, la respuesta a incidentes, la rotación de claves, la disponibilidad, la privacidad, la semántica de los y el cierre. Un OP puede emitir criptográficamente válidos y aun así proporcionar atributos que son incompatibles con la política del RP.

OpenID Federation 1.0 formaliza cadenas de confianza y políticas de metadata para ecosistemas con muchas entidades. La adopción debe considerar la madurez del producto, el perfil del sector y la necesidad real. En una empresa con pocos issuers, la configuración explícita puede ser más sencilla; En los ecosistemas gubernamental, financiero o sanitario, la federación multilateral puede reducir los acuerdos bilaterales.

17.19 Multi-tenant, múltiples issuers y vinculación de cuentas

Las aplicaciones multi-tenant pueden aceptar usuarios de varios directorios. La validación debe determinar el issuer autorizado para cada tenant y evitar que una clave válida de un tenant autentique identidades en otro. Los “comunes” o equivalentes facilitan el inicial, pero el final debe estar asociado con el issuer concreto y la política de tenancy.

La vinculación de cuentas conecta identidades federadas a una cuenta local. El proceso debe requerir una sesión ya autenticada y una nueva prueba en el segundo proveedor, con protección contra y confirmación clara. Vincular cuentas automáticamente porque tienen el mismo correo electrónico permite tomar el control de la cuenta cuando se reciclan dominios o direcciones.

En las migraciones, preserve el historial entre el issuer antiguo, el subdirector antiguo y la nueva identidad mediante una tabla de mapeo gobernada. Los registros de auditoría deben registrar qué identidad federada se utilizó, qué cuenta local resultó del vínculo y quién autorizó el vínculo.

Regla de issuers múltiples

Nunca elijas la clave de validación solo para el kid sin antes arreglar al issuer confiable. El mismo kid puede existir en diferentes dominios y los metadata de un issuer no deberían validar los de otro.

17.20 Aplicaciones web, , y aplicaciones nativas

Las aplicaciones web pueden mantener y credenciales en el servidor y exponer solo una de sesión protegida al navegador. Este modelo reduce la superficie de exfiltración de JavaScript, pero requiere protección contra , fijación de sesión, robo de y problemas de escalabilidad del estado.

Las son clientes públicos. El con reemplaza el flujo implícito como enfoque moderno, pero los siguen siendo accesibles en el contexto del navegador si se almacenan en el front-end. Se requiere una política de seguridad de contenido, reducción de dependencia, protección , cortos y un almacenamiento cuidadoso. El estándar transfiere el manejo de al servidor y ofrece al navegador una sesión con origen restringido.

Las aplicaciones nativas deben utilizar un navegador externo o una sesión de autenticación del sistema, no una vista web integrada que capture las credenciales. Los redireccionamientos utilizan enlaces de app links, universal links o loopback según la plataforma. es obligatorio en la práctica moderna y los deben rotarse y almacenarse en el mecanismo seguro del sistema cuando sean compatibles.

Tabla 8: El flujo es similar, pero la ubicación de ejecución cambia el modelo de amenaza.
Arquitectura¿Dónde están los tokens?Riesgo dominante
Web serverBackend del clienteSesión, CSRF, credencial de cliente y acceso al servidor.
SPAContexto del navegadorXSS, extensión maliciosa y persistencia de tokens.
BFFbackend; el navegador recibe cookiesCSRF, sesión BFF y confianza backend.
Aplicación nativaAlmacenamiento del dispositivoMalware, secuestro de redireccionamiento y dispositivo comprometido.

17.21 en , Axway y Azure

Un puede actuar como para autenticar usuarios del portal o de la consola, como en arquitecturas específicas o como PEP que valida emitidos por el mismo ecosistema. Estos roles deben configurarse por separado. La validación del en una no corrige el error de utilizar el incorrecto; la sigue necesitando un destinado a su audience.

En Axway , los filtros y servicios le permiten actuar como proveedor o , crear y validar e integrar flujos de . El diseño debe separar las políticas de inicio de sesión interactivo de las políticas de protección de , mantener almacenes y certificados gobernados y validar el issuer, la audience, el y las según el rol desempeñado.

En Microsoft Entra, las aplicaciones registradas reciben client_id, redireccionan y configuraciones de . Azure Management normalmente protege las mediante la validación de con validate- o validate-azure-ad- . La política puede utilizar la configuración OpenID para obtener issuers y claves, pero debe requerir audience y adecuados; La simple validación criptográfica no reemplaza la autorización.

En portales de desarrolladores y consolas administrativas, puede proporcionar . Para las llamadas en runtime, la debe preservar la identidad del usuario y de la aplicación de forma controlada, eliminar externos equivalentes y, cuando sea necesario, emitir u obtener las credenciales adecuadas para el .

Ejemplo conceptual: validando el a la

<validate-jwt header-name="Authorization"
              require-scheme="Bearer"
              failed-validation-httpcode="401">
  <openid-config url="https://id.example/.well-known/openid-configuration" />
  <audiences>
    <audience>api://payments</audience>
  </audiences>
  <required-claims>
    <claim name="scp" match="any">
      <value>payments.read</value>
    </claim>
  </required-claims>
</validate-jwt>

La no reemplaza al cliente

La aplicación cliente valida el y mantiene la sesión del usuario. La protege las validando y aplicando políticas. Mezclar estas responsabilidades produce audiences equivocadas y una exposición innecesaria de las .

17.22 Amenazas y hardening

La inyección de ocurre cuando un code obtenido en otra transacción se inserta en el del cliente. state, , , la validación del issuer y las reglas contra mix-up reducen el riesgo. El registro abierto o flexible de redirect permite el secuestro del code. puede robar en una , mientras que puede activar o logout en un contexto indebido.

La sustitución de ocurre cuando se acepta un o válido para otro cliente, issuer o propósito. La defensa es una validación estricta del issuer, audience, , tipo y contexto. Los algoritmos inesperados, las claves obtenidas de la indicada por el y el global por kid crean fallas criptográficas y de múltiples issuers.

Login asocia la sesión de la víctima con la cuenta del atacante, lo que hace que la víctima opere con una identidad incorrecta. state por transacción, la correlación de sesiones y la confirmación de cuenta reducen el riesgo. La vinculación automática de cuentas por correo electrónico es otra forma de error de identidad.

El cierre de sesión también presenta amenazas: redirección abierta, borrado parcial, del de cierre de sesión y denegación de sesión. post_logout_redirect_uri debe estar registrado; los de cierre de sesión necesitan firma, audience, eventos, jti y tiempo; Los deben ser idempotentes y limitar el abuso.

Tabla 9: El OIDC seguro depende de los vínculos entre transacciones, issuers, clientes y artefactos.
AmenazaError de implementaciónControl principal
Issuer mix-upProcesar respuesta sin fijar el OP esperadoIssuer por transacción, metadata confiables y validación exacta.
Code injectionAceptar code sin vínculo con la tentativaPKCE, state, nonce y callback correlacionada.
Sustitución de tokensAceptar JWT de otra audience o tipoaud, azp, typ, issuer y finalidad del token.
Login CSRFCrear sesión con respuesta no iniciada por el usuariostate fuerte y registro de transacción.
XSS en SPATokens accesibles al script comprometidoBFF, CSP, reducción de scripts y token corto.
Account linking indebidoVincular por coincidencia de e-mailReautenticación con ambas identidades y confirmación explícita.
Replay de cierre de sesiónAceptar logout token repetido o antiguojti, exp/iat, firma e idempotencia.

17.23 basada en evidencia

El diagnóstico debe separar el front-channel, el , la validación del , la creación de sesiones y el acceso a la . Un error en la podría ser un state divergente, un redirect incorrecto o un code expirado. Un error en el podría ser la autenticación del cliente, , la reutilización de code o el reloj. Un inicio de sesión exitoso seguido de un 401 en la generalmente indica que falta un , una audience incorrecta o una política de .

Recopile correlation ID, issuer esperado, client_id, redirect normalizada, response_type, , marcas de tiempo, kid, algoritmo, audiences y resultado de cada validación. Nunca registre completos, authorization codes, code_verifiers, secretos o . Para el análisis, utilice sintéticas o irreversibles controlados.

Los problemas intermitentes después de la rotación de claves pueden indicar , nodos con relojes divergentes o sin superposición. Los fallos en un solo tenant sugieren issuer, consentimiento, o política de tenancy. El cierre de sesión que funciona en una aplicación y no en otra debe analizarse por tipo de canal, / , registrado y estado local del RP.

Tabla 10 - Los síntomas deben estar asociados con la etapa exacta del flujo.
SíntomaHipótesis prioritariasEvidencia
invalid_stateTransacción perdida, cookie bloqueada, callback duplicadaState emitido, recibido y correlacionado.
invalid_grant en el token endpointCode expirado/reutilizado, redireccionamiento o verificador divergenteTiempo, redirect_uri y hash del verifier.
Firma no válidakid nuevo, issuer incorrecto, caché JWKSMetadata, JWKS actuales y reloj.
Audience no válidaID Token emitido a otro client_idaud, azp y client_id configurados.
nonce inválidoRespuesta de otro intento o replaynonce almacenado por transacción.
El inicio de sesión funciona, la API devuelve 401Falta el access token, está caducado o tiene una audience incorrectaHeader Authorization y política de API Gateway.
Cierre de sesión parcialEl mecanismo no se propagó o el RP no borró la sesiónlogs de sid/sub, endpoint y cierre de sesión.

Lista de verificación de telemetría sin exposición de credenciales

Registro seguro de diagnóstico:
- transaction_id y correlation_id
- issuer esperado y client_id
- redirect_uri normalizada
- state_match, nonce_match y pkce_result
- alg, kid, aud, azp y tiempos sin el token bruto
- sesión creada, renovada o invalidada
- código de error del OP y etapa que respondió

17.24 Estudios de caso

Caso 1: aceptado por la

Un portal envía el en el encabezado de autorización a . El tiene una firma válida y una aud igual al client_id del portal, no a la . La está configurada para verificar únicamente la firma y el vencimiento, por lo que acepta la llamada. El comienza a confiar en un destinado a otro componente y sin de recursos.

La solución es solicitar un para la audience de , validar el issuer, la audience, el tipo y los en la y mantener el solo en el cliente. La migración debería tener en cuenta a los consumidores existentes y evitar que ambos tipos sean aceptados indefinidamente.

Caso 2: falla intermitente después de la rotación de la llave

El OP comienza a firmar nuevos con otro kid, pero un nodo de aplicación mantiene en caché durante un período de tiempo excesivo. Algunos usuarios reciben con la nueva clave y fallan; otros continúan autenticándose con antiguos. Reiniciar el nodo parece solucionarlo temporalmente.

El diagnóstico compara la edad del kid, del nodo de servicio y del caché. La solución incluye caché con actualización controlada en kids desconocidos, anulación de claves por issuer, observabilidad y biblioteca actualizada. No debes recuperar la clave proporcionada por el .

Caso 3: Adquisición de cuenta mediante vinculación automática

Una aplicación vincula automáticamente una nueva identidad federada a la cuenta local cuando el correo electrónico coincide. Un dominio libera una dirección antigua, que se asigna a otra persona. El nuevo propietario se autentica con el OP y recibe acceso a la cuenta histórica.

La solución requiere + como identidad, proceso de vinculación explícito con reautenticación y confirmación, alertas de usuario y seguimiento de auditoría. El correo electrónico sigue siendo un atributo de contacto, no una prueba de continuidad de identidad.

Caso 4: Cerrar sesión cierra el portal, pero no cierra otras aplicaciones

El portal borra su y llama al de cierre de sesión del OP, pero otro RP mantiene activa la sesión local. La expectativa de "cierre de sesión global" no se documentó y el OP no envió el cierre de sesión del front-channel ni del back-channel.

El diseño se revisó para registrar del back-channel, emitir , validar de cierre de sesión y definir el comportamiento de indisponibilidad. La interfaz ahora distingue entre "salir de esta aplicación" y "cerrar sesión corporativa".

Laboratorios de observación

Laboratorio 1: flujo completo

  • Utilice un proveedor y cliente de laboratorio autorizado.
  • Capture la solicitud de autorización sin registrar credenciales reales.
  • Identifique el state, , code_challenge, code y respuesta del .
  • Valide el con la biblioteca y compare , aud, y tiempo.

Laboratorio 2 - matriz de validación

  • Cree sintéticos o fixtures firmadas con una clave de laboratorio.
  • Prueba de issuer incorrecta, audience incorrecta, vencimiento, divergente y algo no permitido.
  • Registre qué validación rechazó cada .
  • Confirme que el cliente no crea sesión después de cualquier falla.

Laboratorio 3: y minimización

  • Solicite openid, perfil y correo electrónico en un entorno de prueba.
  • Compare los del y .
  • Valida que sea el mismo en ambas respuestas.
  • Reduzca los y observe qué datos no se entregan.

Laboratorio 4: sesión y cierre de sesión

  • Cree dos RP de laboratorio bajo el mismo OP.
  • Observe el y diferencie las de OP y RP.
  • Pruebe el cierre de sesión local, iniciado por RP y, si es compatible, en el back-channel.
  • Registre qué sesiones permanecen activas en cada escenario.

Laboratorio 5 - Rotación

  • Publique dos claves de laboratorio y cambie la clave activa.
  • Caché de notas, kid y aceptación de antiguos.
  • Prueba de actualización controlada en kid desconocido.
  • Establezca ventanas superpuestas y alertas de fallos.

Resumen del capítulo

OpenID Connect agrega autenticación interoperable a 2.0. El de openid activa el protocolo y el comunica un evento de autenticación a la . El sigue utilizándose para la . Confundir los dos artefactos es un defecto arquitectónico, aunque ambos son .

El flujo de con utiliza state, y code_verifier para proteger diferentes relaciones. El cliente valida los requisitos de issuer, firma, algoritmo, audience, , tiempo, y seguridad antes de crear la sesión. como , y solo son útiles cuando se conoce su semántica.

entrega autorizados y debe mantener el mismo del . La identidad federada debe persistir mediante + ; El correo electrónico no es una clave inmutable. Los sujetos public y pairwise ofrecen diferentes propiedades de correlación y privacidad.

La sesión OP, la sesión RP y los son estados independientes. El cierre de sesión requiere una política explícita y puede utilizar RP-Initiated, Front-Channel o Back-Channel. y facilitan la configuración y la rotación, pero es necesario controlar el issuer raíz y la cadena de confianza.

En las , protege los inicios de sesión de aplicaciones y portales, mientras que las normalmente requieren . Axway y Azure ofrecen recursos para el y la validación, pero la configuración de la audience, las y la autorización sigue siendo responsabilidad de la arquitectura.

Siguiente paso del curso

El Capítulo 18 profundizará en , , y : serialización, algoritmos, identificadores de claves, , rotación, validación, cifrado de y dificultades de implementación.

Checklist de OpenID Connect

  • El de openid solo está presente en los flujos de autenticación .
  • El cliente utiliza un con y un redirect exacto.
  • state, y code_verifier son únicos por transacción y se eliminan después de su uso.
  • El issuer está configurado o resuelto por cadena de confianza autorizada.
  • La firma se valida con el algoritmo permitido y la clave correcta.
  • aud y se comparan con el client_id esperado.
  • exp, iat y usan reloj sincronizado y tolerancia limitada.
  • El permanece en el cliente y no reemplaza el a la .
  • El de se compara con el del .
  • La cuenta federada utiliza + , no el correo electrónico, como clave externa.
  • y tienen una semántica documentada por issuer.
  • Las OP y RP tienen política de protección, caducidad y renovación.
  • El cierre de sesión local, el iniciado por RP, el front-channel y el back-channel tienen un comportamiento definido.
  • y tienen caché, actualización controlada y protección de red.
  • El multi-tenant valida una política concreta de issuer y tenancy.
  • Los registros no almacenan , codes, secrets, verifiers ni .
  • Las bibliotecas se mantienen actualizadas y se prueban con casos negativos.

Ejercicios

  • Explique por qué 2.0 no es, de forma aislada, un protocolo de inicio de sesión.
  • Diferenciar OP, RP, authorization server y resource server.
  • Describa el papel del openid, state, y .
  • Listar las validaciones obligatorias de un .
  • Explique cuándo es necesario analizar .
  • Compare el , el y la respuesta .
  • Explique por qué + es mejor que el correo electrónico para vincular cuentas.
  • Compare identificadores de sujetos public y pairwise.
  • Modelo mejorado usando , y .
  • Diferenciar sesión en OP, sesión en RP y validez del .
  • Compare RP-Initiated, Front-Channel y .
  • Describa cómo manejar la rotación de sin reiniciar las aplicaciones.
  • Proponer una política multi-tenant que evite confusión de issuers.
  • Explique por qué la debe validar el , no el .
  • Cree un script de para invalid_state y invalid_grant.

Glosario

Tabla 11 - Vocabulario esencial del capítulo.
TérminoDefinición
acrReferencia de clase de contexto de autenticación; clase de contexto de autenticación.
amrReferencias a métodos de autenticación; métodos utilizados en la autenticación.
auth_timeHora a la que se produjo la autenticación de usuario activo.
Authorization CodeArtefacto corto intercambiado en token endpoint.
azpParte autorizada; cliente autorizado cuando aud contiene múltiples valores.
Back-Channel LogoutCierre de sesión directo desde el OP al endpoint del RP.
c_hashHash que vincula el authorization code al ID Token en los flujos aplicables.
DiscoveryMecanismo de obtención de metadata del OpenID Provider.
End-UserPersona autenticada por el OpenID Provider.
Front-Channel LogoutCierre de sesión propagado por el navegador entre OP y RP.
ID TokenJWT destinado al RP para comunicar el evento de autenticación.
issIssuer; identificador del issuer del token.
JWKSConjunto JSON de claves públicas para validación criptográfica.
max_ageEdad máxima de autenticación aceptable.
nonceValor que vincula la solicitud de autenticación y el ID Token.
OpenID ProviderEntidad que autentica al usuario y emite ID Tokens.
Pairwise subjectsub diferente por sector de clientes para reducir la correlación.
promptParámetro que controla la interacción como ninguno, inicio de sesión o consentimiento.
Public subjectsub reutilizado entre clientes según política del issuer.
Relying PartyCliente OIDC que confía en la autenticación del OP.
RP-Initiated LogoutSolicitud de cierre de sesión iniciada por el cliente.
sidIdentificador de sesión utilizado en los mecanismos de cierre de sesión.
subIdentificador de sujeto; identificador de usuario en el issuer.
UserInfoEndpoint protegido que devuelve claims autorizadas del usuario.

Anexo A - Matriz de arquitectura

Tabla 12 - La elección depende de la plataforma, riesgo, experiencia y capacidad del proveedor.
EscenarioArquitectura inicialControles esenciales
Aplicación web corporativaCode + PKCE con sesión del lado del servidorautenticación de cliente, cookie segura, CSRF, nonce y cierre de sesión.
SPA de bajo riesgoCode + PKCECSP, token corto, sin secreto y protección XSS.
SPA de mayor riesgoBFF + Code + PKCEtokens en el backend, cookie HttpOnly y CSRF.
Aplicación nativaCode + PKCE con navegador externoapp link / universal link, almacenamiento seguro y rotación de refresh tokens.
Portal multi-tenantIssuer por tenant y política explícitaaud/azp, tenancy, consentimiento y vinculación segura de cuentas.
Operación con step-upNueva authorization request con assurancemax_age, acr, tiempo de autenticación y enlace a la operación.
SSO con cierre de sesión corporativoSesión OP + RP-Initiated + back-channelsid, token de cierre de sesión, idempotencia y observabilidad.
federación multilateralOpenID Federation o perfil sectorialtrust anchors, políticas de metadata y gobernanza.

Referencias técnicas

  • Fundación OpenID. OpenID Connect Core 1.0 incorpora el conjunto de erratas 2.
  • Fundación OpenID. OpenID Connect 1.0 incorpora el conjunto de erratas 2.
  • Fundación OpenID. Cierre de sesión iniciado por OpenID Connect RP 1.0. 2022.
  • Fundación OpenID. Cierre de sesión del front-channel de OpenID Connect 1.0. 2022.
  • Fundación OpenID. OpenID Connect 1.0, con erratas incorporadas. 2023.
  • Fundación OpenID. Gestión de sesiones de OpenID Connect 1.0. 2022.
  • Fundación OpenID. OpenID Federation 1.0. 2026.
  • . 6749: el marco de autorización de 2.0. 2012.
  • . 7636: clave de prueba para el intercambio de códigos por parte de clientes públicos de . 2015.
  • . 7519: web . 2015.
  • . 8414: Metadata del authorization server 2.0. 2018.
  • . 8252: 2.0 para aplicaciones nativas. 2017.
  • . 8725: Mejores prácticas actuales de web . 2020.
  • . 9207: Identificación del issuer del authorization server 2.0. 2022.
  • . 9700: mejores prácticas actuales para la seguridad de 2.0. 2025.
  • Microsoft aprende. Plataforma de identidad de Microsoft y protocolo OpenID Connect.
  • Microsoft aprende. Políticas de validación- y validación-azure-ad- de Azure Management.
  • Documentación Axway. y OpenID Connect; Filtros OpenID Connect.
  • . Hoja de referencia de seguridad de 2.0 y hoja de referencia de Management.

Nota de actualización

es un conjunto de especificaciones y perfiles en evolución. Antes de implementar , cierre de sesión, federación o assurance, confirme la versión admitida por el proveedor, la biblioteca y la . Los borradores de Internet y las extensiones propietarias no reemplazan automáticamente las especificaciones finales.