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 ?
Réponses
Trop de publicités?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
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 :
- 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é )
- 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 fichiersettings.py
pour chaque client Django :SESSION_COOKIE_NAME = 'client1_sess'
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é.
- Réponses précédentes
- Plus de réponses
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)