En relación con el token de identidad , puede adoptar varias formas. En un caso particular (que sé que soporta OpenID) el token es efectivamente un conjunto de parámetros de URL. Proporcionan una serie de cosas, incluyendo:
- Identificando de forma exclusiva quién eres (por ejemplo, tu OpenID / URL)
- Una firma. Este es un hash criptográfico, creado a partir de la información de identidad anterior y un secreto preestablecido conocido solo por su proveedor de OpenID y StackExchange.
Si cambia la información de identificación, rompe la firma y StackExchange se negará a iniciar sesión. Tampoco puede volver a crear una firma desde cero, ya que no conoce el secreto compartido.
Otra forma de token, con la que estoy más familiarizado, es una larga cadena pseudoaleatoria. Su navegador regresa del proveedor de identidad con esto en la URL. Luego, el sitio del cliente (por ejemplo, StackExchange) verifica el token directamente contra el proveedor de identidad; el proveedor busca en su lista de tokens emitidos recientemente y, si lo encuentra, devuelve al cliente su información de identificación única.
En cuanto al cierre de sesión / cierre de sesión único , no, StackExchange no sabe si se desconecta de su servicio OpenID. Del mismo modo, su proveedor de OpenID no recibe notificación si se desconecta de StackExchange.
Algunos sistemas (Google mail / docs / calendar es un buen ejemplo) en su lugar, utilizan un enfoque que lo desconecta del sitio / servicio que está utilizando y su servicio de proveedor de identificación. Sin embargo, todos los demás servicios no se ven afectados. Por ejemplo:
- Inicia sesión en Gmail
- Enlace a Google Docs (no tendrá que iniciar sesión nuevamente)
- Salir de Gmail (su sesión de Google Docs no se verá afectada)
- El próximo servicio de Google al que vaya insistirá en que vuelva a iniciar sesión
Referencias: