tag subdominios seguimiento multidominio manager google domain cross authentication single-sign-on

authentication - subdominios - Inicio de sesión único en varios dominios



tag manager cross domain tracking (4)

Nuestra empresa tiene varios dominios configurados con un sitio web alojado en cada uno de los dominios. En este momento, cada dominio tiene su propia autenticación, que se realiza a través de cookies.

Cuando alguien que inició sesión en un dominio necesita acceder a cualquier cosa, el usuario necesita iniciar sesión nuevamente usando credenciales diferentes en el otro sitio web, ubicado en el otro dominio.

Estaba pensando en avanzar hacia el inicio de sesión único (SSO), para que esta molestia se pueda eliminar. Agradecería cualquier idea sobre cómo se podría lograr esto, ya que no tengo ninguna experiencia en este sentido.

Gracias.

Editar: Los sitios web son mixtos de sitios de internet (externos) e intranet (internos-usados ​​dentro de la compañía).


¿Qué tan diferentes son los nombres de host?

Estos hosts pueden compartir cookies:

  • mail.xyz.com
  • www.xyz.com
  • logon.xyz.com

Pero estos no pueden:

  • abc.com
  • xyz.com
  • www.tre.com

En el primer caso, puede sacar una solución basada en cookies. Think GUID y una tabla de sesión de base de datos.


La solución de SSO que he implementado aquí funciona de la siguiente manera:

  1. Hay un dominio maestro, login.mydomain.com con el script master_login.php que gestiona los inicios de sesión.
  2. Cada dominio de cliente tiene el script client_login.php
  3. Todos los dominios tienen una base de datos de sesión de usuario compartida.
  4. Cuando el dominio del cliente requiere que el usuario inicie sesión, lo redirige al dominio maestro (login.mydomain.com/master_login.php). Si el usuario no ha iniciado sesión en el maestro, solicita la autenticación del usuario (es decir, muestra la página de inicio de sesión). Después de que el usuario se autentica, crea una sesión en una base de datos. Si el usuario ya está autenticado, busca su ID de sesión en la base de datos.
  5. El dominio maestro regresa al dominio del cliente (client.mydomain.com/client_login.php) pasando el ID de la sesión.
  6. El dominio del cliente crea una cookie que almacena la identificación de la sesión del maestro. El cliente puede averiguar el usuario conectado al consultar la base de datos compartida usando la identificación de la sesión.

Notas:

  • La identificación de sesión es un identificador global único generado con algoritmo de RFC 4122
  • El master_login.php solo redirigirá a los dominios en su lista blanca
  • El maestro y los clientes pueden estar en diferentes dominios de nivel superior. P.ej. client1.abc.com, client2.xyz.com, login.midominio.com

No reinventar la rueda. Hay una serie de paquetes SSO entre dominios de código abierto como JOSSO, OpenSSO, CAS, Shibboleth y otros. Si está utilizando la tecnología de Microsoft en todo (IIS, AD), puede usar Microsoft Federation (ADFS) en su lugar.


Si usa Active Directory puede hacer que cada aplicación use AD para la autenticación, entonces el inicio de sesión podría ser perfecto.

De lo contrario, si las aplicaciones pueden hablar entre sí detrás de las escenas, podría usar sesiones y tener una aplicación que maneje la generación de identificación que sirva a todas sus otras aplicaciones.