2011-01-11 30 views
38

Me gustaría utilizar Django para implementar el inicio de sesión único (SSO) para varias aplicaciones que actualmente utilizamos. ¿Cómo implementar SSO usando Django? ¿Hay algún paquete de Django que se pueda utilizar para implementar SSO?Implementación del inicio de sesión único (SSO) con Django

Por favor ayuda Gracias

+0

¿Ya está utilizando un mecanismo de SSO para las otras aplicaciones? ¿Son aplicaciones de Django también? (En caso afirmativo, están alojados en el mismo dominio) – AndiDog

Respuesta

1
+0

Gracias por la respuesta nmichaels. Veo que hay al menos tres bibliotecas openid para django, django-openid y django-openid-auth que sugirió. También me encontré con django-authopenid. ¿Cuál es el mejor para elegir? – tomrs

+18

OpenID no es single * sign-on *, es single * identity * (o una contraseña, múltiples sitios). – AndiDog

10

Estamos utilizando OpenAM. http://forgerock.com/openam.html

OpenAM Cookie significa que el usuario está autenticado.

Un back-end de autenticación para esto es bastante simple. Menos de 50 líneas de código.

https://docs.djangoproject.com/en/1.7/topics/auth/customizing/#other-authentication-sources

escribimos un poco de código que hace una petición REST al servidor OpenAM para obtener la información de usuario, grupo y papel. Luego usamos los roles para determinar las autorizaciones del usuario.

11
+13

En este punto, usar bibliotecas de autenticación que no se han tocado en años parece una mala idea, ya que las nuevas vulnerabilidades suelen salir a la luz cada año y las cosas se rompen cuando django sale con nuevas versiones. –

+0

django-mama-cas es fresco y mantenido http://stackoverflow.com/a/36539275/1783439 –

4

django-sso es un paquete bastante ordenado que implementa inicio de sesión único

2

En el ámbito comercial, se puede utilizar Stormpath (https://stormpath.com) y es Django plug-in (https://github.com/stormpath/stormpath-django). Descargo de responsabilidad: yo trabajo allí.

La forma en que funciona es sinceramente muy bien:

  • Instala el plugin Django modificando algunas cosas settings.py.
  • Cuando un usuario inicia sesión, se lo redirecciona a login.yourdomain.com, que es un sitio estático que combina host con un formulario de inicio de sesión, registro, inicio de sesión social, contraseña olvidada, etc.
  • Configura el sitio estático para que parezca lo que quieras presionándolo a un repositorio github.
  • Las bibliotecas inician sesión automáticamente en los usuarios y les permiten mantener su sesión en cualquier subdominio/proyecto.

Eso es todo.

8

MamaCAS parece ser una buena solución. (Ganó 104 estrellas en el momento de la escritura.)

https://github.com/jbittel/django-mama-cas

Mamacas es un único servidor de inicio de sesión y cierre de sesión único servicio de autenticación central Django (CAS). Implementa los protocolos CAS 1.0, 2.0 y 3.0, incluidas algunas de las características opcionales.

CAS es un protocolo web de inicio de sesión único y de inicio de sesión único que permite al usuario acceder a varias aplicaciones después de proporcionar sus credenciales una sola vez. Utiliza tickets de seguridad, cadenas de texto únicas generadas y validadas por el servidor, lo que permite que las aplicaciones autentiquen a un usuario sin acceso directo a las credenciales del usuario (generalmente una identificación de usuario y contraseña).

Cuestiones relacionadas