2803
Commentaire:
|
2803
|
Texte supprimé. | Texte ajouté. |
Ligne 60: | Ligne 60: |
http://authentification.auf.org/auth/user/?filter_email=blabla&filter_password=<md5 du mot de passe>@auf.org&format=json | http://authentification.auf.org/auth/user/?filter_email=blabla@auf.org&filter_password=<md5 du mot de passe>&format=json |
ROA
Le projet django-roa permet de créer un système de sérialisation/dé-sérialisation d'objets en passant par une couche HTTP, tout en maintenant un API compatible avec l'ORM de Django.
Authentification
Un système d'authentification centralisé utilisant django-roa est en ce moment en essai sur certains systèmes à Montréal (ex. http://pypi.auf.org/).
Voir le projet sur redmine.
Service
Le service a été installé sur authentification.auf.org. L'application en arrière est sur git, auf_roa_authentification.
Clients
Django
Pour nimporte quelle application Django souhaitant utiliser ce système, un backend existe: auf_roa_authentification_backend. Il est publié sur le pypi de l'AUF, donc dans le cas d'un buildout, on peut simplement l'ajouter dans la section eggs.
Ce backend nécessite plusieures options de configuration:
INSTALLED_APPS += ( 'django_roa', 'auf_roa_authentification_backend', ) AUTHENTICATION_BACKENDS = ( 'auf_roa_authentification_backend.backends.CascadeBackend', ) AUTH_PASSWORD_REQUIRED=True ROA_MODELS = True # set to False if you'd like to develop/test locally ROA_FORMAT = 'django' ROA_HEADERS = { 'Content-Type': 'application/x-www-form-urlencoded', } ROA_DJANGO_ERRORS = True # useful to ease debugging if you use test server ROA_BASE_URL = 'http://authentification.auf.org/auth/' SERIALIZATION_MODULES = { 'django' : 'auf_roa_authentification_backend.serializers', }
Le backend s'appelle Cascade puisqu'il va vérifier d'abord par ROA si le compte existe et si le mot de passe est valide. Dans ce cas, il fait une copie locale de compte. Le cas échéant, il va regarder s'il existe un compte local valide, ce qui nous permet de valider les comptes de l'AUF automatiquement, mais aussi de pouvoir avoir des utilisateurs locaux, au cas ou ce serait nécessaire.
Autres
Le service d'authentification est suffisamment souple pour pouvoir être utilisé dans d'autres contextes que Django. Le client a besoin des choses suivantes:
- Capable de lire et écrire en http
- Capable de parser du json ou du xml
Par exemple, pour vérifier l'utilisateur blabla@auf.org en json, il faut charger l'url suivante:
http://authentification.auf.org/auth/user/?filter_email=blabla@auf.org&filter_password=<md5 du mot de passe>&format=json
Le contenu retourné sera assez explicite: une erreur 404 signifie que l'utilisateur n'existe pas, par exemple.