Single sign-on de flux à l'aide de JWT pour les croix, l'authentification de domaine

Il y a beaucoup d'informations sur le web sur l'utilisation de JWT (Json Web Token) pour l'authentification. Mais je n'ai toujours pas trouver une explication claire de ce que le débit doit être lors de l'utilisation de JWT jetons pour une solution d'authentification unique dans plusieurs domaines de l'environnement.

Je travaille pour une société qui a beaucoup de sites sur des hôtes différents. Nous allons utiliser example1.com et example2.com. Nous avons besoin d'une solution d'authentification unique, ce qui signifie que si un utilisateur s'authentifie sur example1.com, nous voulons lui aussi être authentifié sur example2.com, automatiquement.

À l'aide de la OpenId Connect flux, je comprends que l'utilisateur qui veut s'authentifier sur example1.com va d'abord être redirigé vers le serveur d'authentification (ou OP : "OpenId Fournisseur"). L'utilisateur s'authentifie sur le serveur qui redirige ensuite de retour à l'original example1.com site de signé, JWT jeton. (Je comprends, il y a un autre flux qui retourne un intermédiaire jeton que lui-même peut être échangé pour le réel JWT jeton plus tard, mais je ne pense pas que cela est nécessaire pour nous)...

Alors maintenant, l'utilisateur est de retour sur example1.com et est authentifié! Il peut faire des demandes, en passant le JWT jeton dans une Authentication en-tête et le serveur est en mesure de vérifier la signature de JWT et est donc en mesure d'identifier l'utilisateur. Nice!

Première question :

Comment le JWT jeton être stocké sur le client? Il est, encore une fois, beaucoup d'informations à ce sujet, et les gens semblent d'accord pour dire que l'utilisation de Web Storage est le chemin à parcourir plutôt que le bon vieux cookies. Nous voulons que le JWT être persistant entre le redémarrage du navigateur donc, nous allons utiliser Local Storage, pas Session Storage...

L'utilisateur peut maintenant redémarrer son navigateur et il sera toujours authentifié sur example1.com, aussi longtemps que le JWT jeton n'est pas expiré!

Aussi, si example1.com besoin de faire une requête Ajax à un autre de nos domaines, je comprends la configuration De la SCRO permettrait que. Mais notre principal cas d'utilisation n'est pas des requêtes inter-domaine, c'est d'avoir un solution d'authentification unique!

Par conséquent, la principale question :

Maintenant, quel doit être le débit, si l'utilisateur passe à example2.com et nous voulons qu'il soit authentifié, à l'aide de la JWT jeton qu'il a déjà? Local Storage ne semble pas permettre l'accès à d'autres domaines, de sorte à ce point, le navigateur ne peut pas lire le JWT jeton de faire des demandes de example2.com!

Doit :

  • L'utilisateur est redirigé vers la serveur d'authentification de nouveau? Lorsque l'utilisateur est authentifié pour example1.com, l'
    serveur d'authentification peut enregistrer un cookie sur l'utilisateur, de sorte que cette nouvelle demande d'authentification pour example2.com pourrait utiliser le cookie de voir que l'utilisateur est déjà authentifié et redirige immédiatement à son retour de
    example2.com avec la même JWT jeton?
  • Ou peut le navigateur, sur example2.com, l'accès à l'JWT jeton sans avoir à aller à la serveur d'authentification de nouveau? Je vois que croix-des solutions de stockage, mais sont celles qui sont généralement utilisées? Sont-ils la solution proposée pour une croix de domaine de l'environnement SSO?

Nous ne voulons pas quelque chose de compliqué, nous serons très heureux avec la plupart du temps utilisé la solution!

  • Puis-je utiliser l'authentification unique + open ID dans les formulaires web? je vous disposer d'un modèle de travail ou de l'article pour comprendre ce sur webforms, car jamais où je trouve MVC et .net de base
InformationsquelleAutor electrotype | 2015-11-15