Por lo que yo entiendo, el enlace de token se puede usar para identificar al usuario que usa un certificado sin necesidad de PKI. Cómo funciona:
El cliente genera un par de claves, certificado localmente, sin necesidad de firmar el servidor. Luego, una vez que se conecta al servidor HTTPS, firma el valor tls_unique (enviado por el servidor durante el protocolo de enlace tls) utilizando la clave privada generada y luego "construye" el token que consta de la firma tls_unique y la clave pública. Esta información se agrega a la solicitud HTTP como encabezado de enlace de token. Además, por primera vez, la solicitud HTTP incluye algún otro tipo de información de autenticación, como el nombre de usuario / contraseña. Este conjunto de datos se envía al servidor. El servidor valida las credenciales pasadas y, si es correcto, almacena el enlace del token (principalmente el certificado) localmente para una autenticación adicional. Además, genera el token que puede almacenar cualquier información, pero también almacena la clave pública que se usó para firmar la solicitud de enlace. Este token está vinculado al certificado dado e identifica de forma única al usuario dado. Y este token se devuelve al cliente mediante una cookie.
Durante otras solicitudes, no se necesitan credenciales ya que el servidor ya tiene el certificado de usuario vinculado al token generado. El cliente envía el token junto con otro valor tls_unique firmado, el servidor comprueba el token en la cookie junto con la información de token-token y si conoce al usuario (el token es válido) y el certificado presentado es el mismo que el anterior, se realiza la autenticación. / p>
En este caso, diría que el token se envía por cookie solo porque es un mecanismo bien conocido que se puede hacer de forma completamente automática y la cookie está bastante bien protegida. Pero tenga en cuenta que el token se puede entregar a ambos lados de cualquier otra manera, es decir, en la solicitud GET ( enlace .). Esto se usa especialmente para los servicios de federación porque el paso de cookies entre dominios no funcionaría.
¿Qué pasa con las sesiones? Aunque este token también se puede usar para identificar la sesión, no lo confundiría. El token se utiliza principalmente para la autenticación, mientras que la sesión se utiliza para mantener cierta información sobre la sesión sin estado durante un período de tiempo determinado. Usaría un ID de sesión por separado para cada nueva sesión que el usuario abriera. Este es solo mi sentimiento personal y no puedo explicar exactamente por qué. Definitivamente, ya no es necesario almacenar la información de autenticación en la sesión, ya que se pasará con cada nueva solicitud por separado en el par de encabezados (Enlace-Encuadernación / Cookie);)
Solo para terminarlo. No diría la cookie, sino el token (puede enviarse por cookie o por solicitud / datos GET / POST) en realidad los servidores como certificado de cliente usado para autenticarlo, además sin necesidad de PKI. Porque pasa su certificado en token junto con un dato cifrado (firmado) usando su servidor de clave privada. Luego el servidor lo usa para autenticarte.