Retour aux projets

DRF-SSO

1 semaine - Mai 2025 Genavir - Plouzané
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

🔗 Documentation
🔗 PyPI Package