Uso de OpenID para iniciar sesión en varios dominios: ¿es factible este plan? [cerrado]

8

Por ejemplo:

  • Estamos ejecutando dos sitios de la comunidad en dos dominios (llámalos example.comy example.net).
  • Queremos poder expandir eso a más dominios más adelante.
  • Queremos permitir múltiples tipos de inicio de sesión (OpenID, Facebook, Twitter, nombre de usuario / contraseña estándar).
  • Queremos que alguien que ha iniciado sesión en un sitio inicie sesión automáticamente en los otros.

En otras palabras, es un poco similar a la red StackExchange.

En este caso, ¿funcionaría este plan?

  • Configure example.comy example.net(y cualquier adición posterior) como partes confiables de OpenID, que solo aceptan el inicio de sesión de OpenID id.example.org.
  • Configure example.comy example.nethaga una solicitud de respuesta inmediata de OpenID la primera vez que los visite, de modo que si inicia sesión, inicia sesión de forma id.example.orginmediata y automática en el sitio que está visitando. Deben establecer una cookie si no ha iniciado sesión, para guardarlos haciendo esto en cada solicitud de página.
  • Configurar id.example.orgcomo proveedor y consumidor de OpenID. También debería consumir Facebook y otros proveedores de identidad, y permitir el acceso estándar de nombre de usuario / contraseña. (Se pueden adjuntar varios métodos de inicio de sesión a una cuenta).
  • Al cerrar sesión, simplemente cambie los tokens de autenticación en la base de datos. El usuario seguirá teniendo cookies, pero no tendrán sentido. Por lo tanto, el usuario puede cerrar sesión en todos los sitios simultáneamente. Se pueden almacenar múltiples tokens de autenticación contra un usuario a la vez (y deben ser diferentes para cada sitio), de modo que el usuario pueda cerrar sesión en un navegador pero aún así iniciar sesión en otro. Cerrar sesión siempre cierra sesión en todos los sitios.

El único problema que puedo ver con lo anterior es este:

  • Alguien visita example.com. Se establece una cookie "no iniciada sesión".
  • Zie luego continúa example.net. Ídem.
  • Zie luego inicia sesión y continúa navegando example.net.
  • Luego, Zie regresa example.comy, debido a la cookie "no iniciada sesión", no se verifica id.example.orgy, por lo tanto, no se inicia sesión.
  • Sin embargo, tan pronto como zie hace clic en el botón "iniciar sesión", zie inicia sesión.

No creo que este sea un problema importante.

En general, creo que es un sistema bastante bueno. Solo me gustaría verlo revisado. ¿Hay algún problema que no haya previsto? ¿Sería con errores o lento? StackExchange usa un método muy diferente. ¿Asumo que tienen una buena razón para eso?

Trigonometría
fuente
1
¿sería mejor preguntar esto en webmasters.stackexchange.com ?
Doug T.
¡Supongo mucho por esa idea! Supongo que no debería haber sugerido eso.
Doug T.

Respuestas:

0

Movable Type utiliza un método de inicio de sesión muy similar al que usted describe. Personalmente no me importa, pero hay momentos en que se lo presento a un cliente y ellos pueden ayudar pero preguntar: "¿qué está pasando exactamente aquí?"

El proyecto que más me ha intrigado con respecto a la creación de un sistema de inicio de sesión coherente es Google Identity Toolkit . La experiencia del usuario es acertada, y la facilidad con la que parece implementable es muy atractiva.

Byrne Reese
fuente
1
Las propiedades de Google que no están alojadas a través de google.com(YouTube, por ejemplo) también usan este tipo de flujo de trabajo. (Si visito YouTube, luego inicio sesión en mi cuenta de Google en GMail, luego vuelvo a YouTube, permaneceré desconectado hasta que haga clic en "iniciar sesión" en ese momento, la página actual se recarga conmigo iniciada sesión)
ssokolow