2012-11-10 2 views
0

mon organisation veut pouvoir créer un certain nombre de sites, c'est-à-dire avec différents sous-domaines mais sur le même domaine, par exemple foo.organization.com, bar.organization.com etc. De préférence, les utilisateurs n'auront qu'à se connecter à un site, puis à se connecter aux autres sites. Il pourrait y avoir différentes plates-formes côté serveur utilisées pour implémenter ces sites de sous-domaines (certains ASP.NET MVC, peut-être Django, peut-être Ruby, etc.), donc cette solution devrait de préférence être multi-plateforme. L'un de ces sous-domaines hébergera l'API pour la base de données principale, et de préférence il devrait prendre en charge à la fois l'authentification de serveur à serveur et l'utilisation de l'API à partir d'un code côté client.connexion unique sur plusieurs sites sur un même domaine

Toutes les suggestions quelle route nous devrions aller dans ce?

Cordialement, Daníel

Répondre

0

Très intéressant! Je me demande si ce ne serait pas la même chose qu'un wamp ou un serveur de lampe. J'ai 44 sites Web fonctionnant sur un serveur Lamp sous l'espace de noms Localhost/each_sites_name/index.php. Pour faire des sous-marins, vous devez créer un site_name et placer les autres à un niveau en dessous.

mainsite site1 site2 site3 place4 etc.

+0

Eh bien, étant donné que ces sites peuvent utiliser des frameworks différents et donc utiliser des serveurs web différents, je préférerais une solution qui fonctionne sur différentes machines. – dabs

0

Qu'est-ce que vous cherchez est Single Sign On. Il existe plusieurs bonnes solutions qui répondraient au besoin que vous décrivez. Vous pouvez rechercher SAML, CAS, OpenID et autres.

Je recommanderais personnellement RubyCAS - c'est une implémentation de Jasig's CAS protocol dans Ruby. Je l'ai trouvé plus facile à mettre en place, bien que les deux fonctionnent très bien.

Toute application Web (et même non basée sur le Web) peut déléguer son authentification. Cela fonctionne de la même manière que vous authentifiez sur google apps. Si vous n'avez pas de session ouverte sur le site particulier que vous visitez, vous êtes redirigé vers le formulaire de connexion sur le serveur CAS, puis renvoyé avec un ticket si vous pouvez vous authentifier. Le ticket est ensuite vérifié sur le backend pour s'assurer qu'il est valide.

Il existe de nombreux clients CAS pour une variété de plates-formes. Je peux personnellement témoigner de rubycas client et phpCAS. On dirait qu'il y a some for Django, et pour les applications héritées apache-servies, vous pouvez utiliser mod_auth_cas, qui est essentiellement auths de base HTTPs CASsified.

+0

Cela semble prometteur. Seriez-vous capable de savoir si cela serait utilisable dans une application qui consisterait essentiellement en des pages HTML statiques contenant du code JavaScript pour afficher les vues, et interagir avec une API pour lire/écrire des données? C'est à dire. les utilisateurs pourraient-ils se connecter à cette application, et les informations de connexion (c'est-à-dire le ticket/cookie d'accès) transmises à l'API? – dabs

+0

Cela ressemble à un exemple où vous voudriez utiliser le module apache mod_auth_cas. Vous protégerez le sous-répertoire dans lequel se trouve votre application et, si un utilisateur non authentifié tente d'accéder à ce répertoire, il sera envoyé à la page de connexion du serveur CAS. Cela ne nécessiterait aucune modification de votre code, ce qui est bien. – dearlbry

Questions connexes