DRF-SSO
DRF-SSO est une librairie Python open-source pour Django REST Framework qui unifie l'intégration des quatre standards SSO majeurs : CAS, SAML v2, OAuth 2.0 et OpenID Connect.
Problématique
En entreprise, j'ai rencontré à plusieurs reprises le besoin d'intégrer différentes solutions d'authentification unique. Chaque implémentation nécessitait un travail de recherche et d'intégration spécifique. DRF-SSO résout ce problème en offrant une solution unifiée.
Innovation Technique Majeure
Architecture JWT Stateless pour SAML
Contrairement aux implémentations traditionnelles qui s'appuient sur les sessions Django, DRF-SSO utilise une approche stateless innovante :
- Élimination de la dépendance aux sessions serveur
- Réutilisation de l'infrastructure PKI du Service Provider
- Signatures RSA/ECDSA pour tokens de corrélation
- Compatibilité avec architectures distribuées
Fonctionnalités Clés
Configuration Unifiée
Configuration déclarative via Django settings pour tous les protocoles :
SSO_CONFIG = {
'provider_type': 'saml', # ou 'cas', 'oauth', 'oidc'
'settings': {...}
}
Handover Token Pattern
Pattern sécurisé pour le transfert frontend :
- Tokens courte durée
- Validation cryptographique
- Protection contre le vol de session
Gestion Flexible des Utilisateurs
- Mapping automatique des attributs
- Custom handlers pour logique métier
- Création ou mise à jour automatique
Sécurité Robuste
- Système d'exceptions personnalisées
- Validation des signatures
- Tokens à durée de vie limitée
Stack Technique
- Python : Langage principal
- Django REST Framework : Framework API
- JWT : Tokens d'authentification
- Cryptographie : RSA, ECDSA pour signatures
- Protocoles : SAML, CAS, OAuth 2.0, OIDC
Installation
pip install drf-sso
Package disponible sur PyPI avec documentation complète et exemples d'intégration.
Démonstration d'Expertise
Ce projet met en avant :
- Sécurité applicative avancée
- Cryptographie et signatures numériques
- Design d'API pythoniques
- Architecture stateless moderne