2012-04-12 23 views
16

Tengo un conocimiento básico del security concept en Symfony2. Ahora estoy tratando de implementar una función de inicio de sesión único para un sitio web de múltiples dominios.Implementación de un inicio de sesión único Symfony2

El propio concepto de SSO es bastante sencillo:

  • dominio A es el dominio de las cookies; las personas pueden iniciar sesión en este dominio
  • Al iniciar sesión en el dominio B, el usuario se redirige al dominio A, donde se solicita un One-time password. El usuario necesita una sesión en el dominio A para obtener esta contraseña.
  • Después de obtener el OTP, el usuario regresa al dominio B, que hará coincidir el OTP con la sesión en el dominio A.
  • Si coincide, se creará una sesión para el dominio B. La sesión se validará contra el sesión en el dominio A para cada solicitud posterior desde este punto.

La implementación del firewall/autenticación para el dominio A se puede hacer como lo haría normalmente. En mi entendimiento, necesito:

  • Establecer un servidor de seguridad para el dominio B
  • Crear un oyente para este servidor de seguridad, que de alguna manera redirige al usuario al dominio A (más específico: un URI que solicita una OTP)
  • Crear una authentication provider que maneja una OTP y crea una sesión para el dominio B
  • Cree otro detector que compruebe la validez de la sesión frente de la sesión en el dominio a

Sin embargo pude realmente use algunos consejos sobre cómo hacer esto en un paquete. Si alguien puede ayudarme aquí, sería genial.

Además, todavía no estoy seguro de cómo implementar la OTP, o cómo comparar las dos sesiones, y asegúrese de que ambas sean válidas. Eso vendrá después, necesito que este flujo de trabajo funcione primero.

+0

Esto suena como un gran paquete si usted puede ponerlo en marcha :-) – richsage

+1

@richsage vea mi propia respuesta :) –

Respuesta

Cuestiones relacionadas