2009-08-24 6 views
1

Je développe actuellement plusieurs applications qui nécessiteront un système de comptes global pour toutes les applications et je ne suis pas sûr de la meilleure façon de procéder. L'option la plus évidente est d'avoir chaque application connectée à une base de données, mais cela nécessiterait de dupliquer le code de connexion MVC dans toutes les applications, ce qui rendrait la mise à jour du système quelque peu pénible. Peut-être séparer le système de connexion dans sa propre application et avoir chaque application authentifier via une API?Comment créer un système de comptes globaux à utiliser dans plusieurs applications?

Toutes les idées sont appréciées. Merci!

Répondre

4

Même si vous divisez la connexion en une application distincte, vous aurez toujours un code de connexion dupliqué, car les formulaires et les contrôleurs qui utilisent l'API devront être dupliqués. Sauf si vous utilisez une bibliothèque commune pour encapsuler des fonctionnalités communes. Ensuite, vous avez besoin de plus de fonctionnalités, des cloches et des sifflets. Si vous suivez ce chemin assez longtemps, vous réimplémenterez votre propre roue carrée :)

Vous pouvez simplement utiliser quelque chose que les gens ont déjà construit. De loin le moyen le plus simple serait de supprimer complètement tout ce matériel et de ne supporter que openid. Tout comme stackoverflow. Livré avec une génération intelligente open-de-fournisseur-et-nom d'utilisateur (encore comme stackoverflow) cela peut accommoder presque tout le monde, pensé que cela nécessitera un peu plus de travail (mais pas beaucoup, les règles de génération devraient être triviales). Si vous avez vraiment besoin du formulaire de connexion utilisateur/mot de passe standard et que vous voulez simplement des utilisateurs centralisés, vous pouvez toujours utiliser openid dans les coulisses (voir ruby-openid pour l'implémentation de pièces client et serveur), ou simplement utiliser une solution CAS simplifiée (comme ruby-cas)

1

Votre meilleur pari est d'utiliser un système d'authentification éprouvé, tel que LDAP. Vous pouvez utiliser Authlogic comme système d'authentification de base, avec le plugin Authlogic LDAP Addon.

Si vous voulez un exemple de fonctionnement d'Authlogic, vous pouvez en voir un here.

2

Le rubycas-server est une autre option qui vous permet d'utiliser une page de signature unique qui authentifiera les utilisateurs sur plusieurs applications.

Questions connexes