63 votes

Mise en œuvre de l'authentification unique (SSO) avec Django

J'aimerais utiliser Django pour mettre en œuvre l'authentification unique (SSO) pour plusieurs applications que nous utilisons actuellement. Comment puis-je mettre cela en œuvre en utilisant Django ?

0 votes

Utilisez-vous déjà un mécanisme SSO pour les autres applications ? S'agit-il également d'applications Django ? (si oui, sont-elles hébergées sur le même domaine)

3voto

Sergey Points 162

Vous pouvez mettre en œuvre le SSO de la manière suivante :

  • Shibboleth comme fournisseur d'identité
  • Site web Django en tant que fournisseur de services

Je viens de terminer la rédaction d'un guide détaillé sur mon blog : http://codeinpython.blogspot.com/2015/11/how-to-setup-shibboleth-identity.html

3voto

Benyamin Jafari Points 2126

CAS (Central Authentication Service) est une bonne solution qui supporte le SSO (Single Sign-On) et le SLO (Single Logout) pour Django et Flask. Voici une instruction d'installation pour avoir un serveur CAS et plusieurs clients avec le même login/logout :

  1. Un client CAS est nécessaire, j'ai donc utilisé la nouvelle génération de Django-CAS appelée Paquet django-cas-ng y Voici sa configuration pour créer votre propre client. (Voici également un repo client pré-configuré )
  2. Un serveur CAS est nécessaire, j'ai donc utilisé un fichier repo pré-configuré .

[ NOTE ] :

  • Il prend en charge Django 1.11, 2.x, 3.x

[MISE À JOUR] :

  • Il convient également de mentionner que vous devez modifier les paramètres par défaut des clients. SESSION_COOKIE_NAME afin de créer des sessions distinctes pour éviter les conflits lors de la connexion et de la déconnexion. Dans Django, vous devez ajouter la ligne suivante dans le fichier settings.py pour chaque client Django :

    SESSION_COOKIE_NAME = 'client1_sess'

2voto

aedry Points 157

J'ai utilisé https://github.com/onelogin/python3-saml avec Azure AD et Google - une configuration très simple avec une documentation et une assistance de qualité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X