Au boulot, pour la gestion de l'authentification de l'ensemble de nos
applis web, on utilise un Serveur CAS <http://www.jasig.org/cas/>.
L'implémentation est en base Java, mais il existe une version ruby du
serveur <https://github.com/rubycas/rubycas-server>, mais je n'ai jamais
pris le temps de la tester. Je ne connais pas assez le fonctionnement
interne de oAuth pour comparer cela dit.

L'utilisation du client CAS est simplissime : un request_auth te renvoie
sur la page d'authentification centralisée si tu n'as pas de ticket de
session, sinon il te renvoies un ticket qui te permet d'obtenir des infos
sur le user. L'auth s'appuie sur un backend bdd ou ldap (ou meme google) et
peut renvoyer au client CAS des informations issues de ce backend (en
général et au minimum un id).

La gestion des autorisations s'effectue au niveau des applis clientes, ça
reste classique à ce niveau et rien n'empêche de l'appuyer sur une API
privée.

A noter que CAS gère le single sign off, en envoyant une requete à tous les
clients (qu'il convient de gérer également au niveau client bien entendu).

My 2 cents.

Le 4 août 2012 14:24, Camille Roux <[email protected]> a écrit :

> Hello les rubyistes !
>
> On se prend la tête avec Matthieu depuis plusieurs jours sur
> l'implémentation d'une fonctionnalité qu'on souhaiterait ajouter à notre
> plateforme. Comme on arrive pas à se décider sur la solution, on voulait en
> parler ici pour avoir votre avis.
>
> L'idée est qu'on puisse se logger sur tout nos sites (sites d'actu, job
> board, Human Talks...) avec un seul et même compte Human 
> Coders<http://humancoders.com>.
> A plus long terme, nous souhaiterions regrouper des infos des différents
> sites sur un même profil. Par exemple, que sur la même page, on puisse
> savoir les actu que la personne a postées, les talks qu'elle a fait au
> Human Talks, le nombre de commentaires postés...
>
> *L'environnement :*
> • Chaque appli est sur une instance Heroku à part (tous les sites d'actu
> sont gérés par la même instance)
> • Toutes les applis sont en Rails 3
> • Une seule appli a de l'authentification (les sites d'actu) pour le
> moment et c'est géré par Devise
>
> *Le début de la solution à laquelle on pense :*
> • Créer une nouvelle appli "Account" qui servirait pour le SSO et qui
> afficherait les profils des users à terme.
> • Utiliser 
> Doorkeeper<http://www.bonjourgem.com/post/27400677797/mardi-cest-doorkeeper>pour
>  faire provider OAuth 2
> • Migrer les comptes utilisateurs de l'appli des sites d'actu vers la
> nouvelle appli "Account"
>
> Ensuite, soit on pourrait assurer des synchro de données entre appli soit
> avec des crons soit avec des delayed jobs en passant par des API privées et
> un peu de cache. Une autre idée serait d'avoir une base de données commune
> pour les utilisateurs qui serait partagée à travers toutes applis. En
> revanche, je sais pas comment gérer ça proprement avec Heroku.
>
> Qu'en pensez-vous ?
>
> Merci beaucoup pour votre aide. On vous prépare un paquet de nouveautés
> pour la rentrée :)
>
> Bon weekend,
> Camille
>
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à