¿Por qué OpenID Connect ("OIDC") usa un reclamo 'nonce' en lugar del reclamo registrado 'jti'

1

Según la especificación , OpenID Connect usa nonce como la reclamación registrada nombre, pero RFC 7519 ya incluye un reclamación registrada llamada jti para este mismo propósito.

¿Esto fue un descuido o hubo algún problema con la forma en que se especificó (o implementó) jti ?

¿Hay alguna entrada en la lista de correo dentro de OpenId donde pueda encontrar esta información?

    
pregunta Jon Wolski 21.06.2018 - 01:33
fuente

1 respuesta

3

El servidor de autenticación elige el jti (ID de JWT) para identificar un token. Según OpenID Connect, sección 9 :

  

ID de JWT. Un identificador único para el token, que se puede utilizar para evitar la reutilización del token. Estos tokens DEBEN ser utilizados solo una vez, a menos que las condiciones para la reutilización sean negociadas entre las partes; Cualquier negociación de este tipo está fuera del alcance de esta especificación.

El nonce es elegido por la aplicación y se pasa como parameter en la solicitud de autenticación.

  

Valor de cadena utilizado para asociar una sesión del Cliente con un token de ID y para mitigar los ataques de reproducción. El valor se pasa sin modificar desde la solicitud de autenticación al token de ID. Si está presente en el token de ID, los clientes DEBEN verificar que el valor de reclamación de nonce sea igual al valor del parámetro de nonce enviado en la solicitud de autenticación. Si está presente en la solicitud de autenticación, los servidores de autorización DEBEN incluir una reclamación nonce en el token de identificación con el valor de reclamación siendo el valor nonce enviado en la solicitud de autenticación. Los servidores de autorización NO DEBEN realizar ningún otro procesamiento en los valores de nonce utilizados. El valor de nonce es una cadena que distingue entre mayúsculas y minúsculas.

Así que sirven para diferentes propósitos. Y el nonce es anterior a los enlaces JWT en OAuth2 (aunque está muy vagamente definido), y se aplica incluso si utiliza cadenas de token opacas.

Otra la respuesta aquí explica la diferencia entre los parámetros de estado y nonce.

    
respondido por el Geir Emblemsvag 21.06.2018 - 07:21
fuente

Lea otras preguntas en las etiquetas