2009-02-27 13 views
7

tenemos muchos usuarios en un foro de VBulletin. ahora quiero escribir algunas aplicaciones más en rieles para la misma base de usuarios. Hasta ahora, VBulletin estaba ocupándose de toda la autenticación y administración de la sesión. ¿Cuál es la mejor manera de proporcionar SSO para mis usuarios tanto onVBulletin y en las aplicaciones carriles i escriboinicio de sesión único entre Vbulletin y aplicaciones de rieles


estoy trabajando con sencillo en el proceso de inicio de sesión con v Boletín y por encargo de la aplicación. puedo iniciar sesión en Vb usando cookies. puedo acceder a todos. pero cuando se accede, envíe "Mensaje privado". se dice

" ha desactivado mensajes privados. Usted no puede enviar mensajes privados hasta que los enciende editando sus opciones. "

está ahí todos los permisos se establecen en la mesa "fuente de datos" ?. .

Gracias maestros

Respuesta

7

lo ideal sería que los dos sitios son subdominios de un dominio común (por ejemplo forum.example.com y rails.example.com), o comparten el mismo dominio (www.example.com.) Uno de los sitios sería el autenticador primario, y establece una cookie (para .example.com en el caso del dominio principal común [observe . antes de example.com] o www.example.com en el caso del dominio compartido, para que ambas aplicaciones puedan acceder a él), donde la cookie contiene:

  • la user ID
  • un salt (valor aleatorio calculado en el momento de inicio de sesión) y
  • un SHA-2 signature calculado sobre el triplete (user ID + salt + a shared secret key), donde la clave secreta compartida es una cadena secreta conocido por bo los sitios.

Cada sitio sería capaz de recuperar la user ID y salt de la cookie, a continuación, utilizar el shared secret key (conocido sólo por las dos aplicaciones) para calcular una SHA-2 signature que debe coincidir con el SHA-2 signature almacenada en la cookie.

Si coincide el SHA-2 signatures, puede asumir que el usuario está autenticado, de lo contrario, obligue al usuario a iniciar sesión de nuevo.

La cookie se debe destruir al cerrar la sesión.

La letra pequeña

Para protegerse contra el robo de sesiones, todas las solicitudes realizadas en los dos sitios debe ser cifrado a través de SSL (usar https). Si esto no es posible, un hash basado en la dirección IP del cliente así como también el tipo de navegador y la versión (User-agent) probablemente deberían calcularse al momento del inicio de sesión y también almacenarse en la cookie. Se debe volver a verificar contra la dirección IP del cliente y el agente de usuario antes de atender cada solicitud. El enfoque basado en hash es la seguridad a través de la oscuridad, y puede ser engañado; además, un usuario que acceda a Internet desde detrás de un conjunto de proxies o use TOR puede ser expulsado por su sistema cada vez que un proxy diferente o un nodo de salida (con una dirección IP diferente) reenvía una solicitud.

Cuestiones relacionadas