it-swarm-es.com

Sistema de autenticación distribuido (diferentes dominios, bases de datos separadas)

Tenemos varios sitios web pequeños (micrositios) y uno principal de alto tráfico con una gran base de usuarios. En este momento, el requisito es crear un sistema de autenticación que permita a los usuarios iniciar sesión con la misma identidad en la red.

Todos los sitios web se ejecutan en diferentes dominios, impulsados ​​por Drupal 6 CMS y tienen bases de datos separadas (por lo que compartir tablas con prefijo no es una opción + crea un gran lío en la base de datos).

Aquí está el conjunto de requisitos básicos que se me ocurrieron:

  1. Los usuarios deben poder iniciar sesión con las mismas credenciales en todos los sitios dentro de la red
  2. Uso compartido de datos del usuario entre el sitio principal (almacenamiento) y todos los micrositios dentro de la red
  3. Sincronización de datos a través de la red cuando el usuario cambia los datos (actualizar el correo electrónico o la contraseña, por ejemplo)
  4. El proceso de inicio de sesión/registro debe ser fluido y consistente
  5. Regístrese en cualquiera de los sitios de la red y use esa identidad para iniciar sesión más adelante.

En el futuro, es posible que sea necesario agregar opciones de autenticación openid.

Básicamente, estamos viendo algo similar a lo que hace stackexchange, pero no estoy seguro si tienen usuarios centrales basados ​​en no.

Estaba pensando en una solución personalizada que incluirá 2 partes (módulos), una se almacenará en el sitio principal para que los usuarios almacenen datos y respondan a las solicitudes de los clientes. La segunda parte (módulo) se colocará en cada micrositio, que enviará solicitudes al Master. Algún tipo de configuración cliente-servidor.

Una de las complicaciones que veo de inmediato es la # 3. Sincronización de datos en la red.

Simplemente no quiero reinventar la rueda y tal vez ya se haya realizado algún trabajo en esta dirección.

Esperamos sus ideas sobre cómo abordar este proyecto.

EDITAR:

Recientemente encontré un par de hilos relacionados con el tema:

http://groups.drupal.org/node/24916
http://drupal.org/node/7444

5
gansbrest

Es posible que desee echar un vistazo a la publicación de blog " Simple Sign-On with OpenID " de Development Seed. Creo que es solo una prueba de concepto, pero usan OpenID para realizar un inicio de sesión único en una red de sitios.

2
thsutton

Esto puede ser excesivo, pero ¿ha considerado usar algo como LDAP?

Hay un módulo integración LDAP y un módulo aprovisionamiento LDAP . Ambos funcionan bastante bien.

2
Benedict Steele

problema interesante, pronto me enfrentaré al mismo desafío. Soy nuevo en Drupal así que no tengo una respuesta definitiva. Sin embargo, estoy viendo http://www.janrain.com/ (anteriormente RPX). Proporcionan diferentes soluciones de inicio de sesión y una específica para "sitios federados": http://www.janrain.com/products/federate Hay un Drupal módulo para ello http://drupal.org/project/rpx

Algunos detalles de la página del proyecto del módulo:

El módulo de inicio de sesión social de Janrain integra sitios Drupal con el servicio de inicio de sesión social de Janrain.

Usando Janrain Social Login, Drupal sitios pueden autenticar usuarios nuevos y existentes con redes sociales populares, mapear datos de perfil de usuario de estos sitios web a Drupal campos, y compartir = Drupal contenido con los amigos de un usuario en sus redes sociales.

El módulo ayuda a Drupal sitios web a integrarse rápida y perfectamente con más de 30 redes sociales, incluidas Facebook, Twitter, Google, Yahoo !, LinkedIn, AOL, Paypal y cuentas de Microsoft.

En lugar de tener que integrarse con cada uno de estos sitios por su cuenta (y administrar los cambios de API a lo largo del tiempo), Janrain Engage hace el trabajo pesado por usted. Con este módulo, puede configurarlo en menos de 10 minutos. El resultado es un proceso de registro de usuario acelerado, una capacidad mejorada para recopilar datos de usuario y un mayor tráfico del sitio a partir de la promoción viral de su contenido.

0
uwe

Pregunta anterior, pero acabo de usar OpenID Provider exitosamente para iniciar sesión en un Drupal 7 sitio (la parte de confianza) usando una cuenta creada en otro Drupal 7 instancia (el proveedor).

Simplemente habilite OpenID Provider en el proveedor (como era de esperar), luego habilite el módulo OpenID principal en el sitio de confianza y apunte la URL de OpenID a la URL del proveedor.

El correo electrónico se transfirió a través de. No he probado otros campos. Además, no pude cambiar mi contraseña o correo electrónico en el sitio de confianza; no se aceptó la contraseña de mi cuenta de proveedor.

0
infojunkie