Quelle est la meilleure solution pour implémenter une connexion unique sur une application .NET? J'ai googlé et trouvé peu de solutions mais je ne suis pas très convaincu de ces solutions. P>
Les journaux utilisateur sur la site Web1, puis se déplacent sur Website2. Comment SIGNITEZ2 SAIIT SAILLER L'UTILISATEUR est connecté? Je suppose que en passant des jetons dans l'URL qui sera vérifié par Website2 dans la base de données pour la validité. Cela signifie que j'ai besoin de marshall toutes les URL de la site Web1 qui prend sur le site Web2? P>
Deuxièmement, si l'utilisateur continue à naviguer sur le site Web2 pour dire 1 heure, puis passez à la site Web1. À ce moment-là, la session de site Web1 a expiré de sorte que l'utilisateur verra une page de connexion, n'est-ce pas? Mais ce comportement est faux selon la fonction unique sur la fonctionnalité. P>
6 Réponses :
MS a fait un article sur celui-ci au sein de l'entreprise quelques années de retour - nous configurons les échantillons mais je ne l'ai jamais mis en œuvre pour real - Connexion unique P>
J'ai déjà vu ce papier mais ça ne répond pas à mes doutes.
L'approche officielle Microsoft est via des services de fédération Active Directory (qui enveloppe SAML avec authentification AD). Cela présente les caractéristiques que vous recherchez - mais est peut-être trop épaisse pour une application Web publique. P>
Je suppose que vous ne voulez pas utiliser l'authentification Windows avec Active Directory, etc. Une méthode consiste à remettre à partir d'une session authentifiée à l'autre à l'aide d'un jeton de sécurité sur la chaîne de requête, comme vous le décrivez. p>
Les deux applications utilisent la même clé de cryptage public pour encoder / décoder le jeton de sécurité. Comme vous le dites, cela fonctionne bien si vous avez des liens de transition prédéfinis limités entre les sites, mais si vous souhaitez pouvoir utiliser des liens de page entre les applications, vous devez générer ces URL à la volée afin qu'ils contiennent le jeton. p>
La façon dont vous traitez avec les délais d'expiration est que le jeton de sécurité contient également un délai d'expiration. Vous générez un nouveau jeton de sécurité chaque page de page ou lorsque vous créez un nouveau lien entre les applications. p>
Typiquement, le jeton de sécurité contient un UTIALID et un délai d'attente et le vérificateur de connexion renvoie l'ID utilisateur ou NULL si le délai d'attente a expiré. P>
Ce n'est pas une solution rapide pour coder correctement et sécurisé. Peut-être que vous pouvez trouver un projet pré-construit sur le code? P>
Je pense que vous êtes mal compris que les œuvres de connexion unique. P>
permet de considérer le site web1 et website2 qui souhaitent utiliser un seul signon. P>
Un site Web de connexion est créé à IdentityProvider. C'est le seul endroit où un écran de connexion apparaît. P>
Lorsque l'utilisateur visite le site Web1 et choisissez de vous connecter au site Web1 envoie l'utilisateur à l'écran de connexion de IdentityProvider. L'utilisateur se connecte à IdentityProvider qui laisse tomber son propre cookie de connexion pour son domaine (et permet également à l'utilisateur d'enregistrer leurs informations d'authentification afin qu'elles ne soient jamais invitées). Il redirige ensuite le navigateur sur le site Web1, y compris un jeton dans la demande quant au site Web1 fissures ouvertes, obtient des informations d'identité de et effectue ses propres bits de connexion (déposition de son propre cookie d'authentification qui dure comme il le souhaite). P>
Ensuite, l'utilisateur visite le site Web2 et sélectionne la connexion. Site Web2 rebondit l'utilisateur à IdentityProvider, qui sait déjà qui l'utilisateur est déjà et, s'ils l'ont choisi d'enregistrer leurs informations de connexion, authentifient silencieusement, puis redirige vers le site Web2 avec un autre jeton que Site Web est ouvert, puis effectue ses propres bits de connexion. p>
Il y a un tas de sécurité autour de lui, limitant les jetons à des sites Web particuliers, ne permettant que des jetons d'être envoyés à des sites Web blanchissants, etc. P>
afin de répondre à vos préoccupations p>
Ceci est une authentification unique et non sur une connexion unique, vous devez vous connecter n Times pour n sites avec la même authentification.
Je pense que l'étape "Puis l'utilisateur visite le site web" i> sélectionne la connexion i> "est ce que l'OP veut éviter. Comment est-ce possible?
Vous pouvez utiliser différents mécanismes SSO pour différentes applications en fonction de votre application. p>
à l'aide de la configuration de la machine p> li>
connexion unique dans un deuxième niveau de domaine p> li>
domaines croisés à l'aide de la base de données commune (la mise en œuvre doit être prise soins par nous) p> li> ul>
Cependant, je pouvais voir " Si vous avez besoin d'une compréhension de base Comment le travail SSO, vous pouvez vous référer ici p>
Consultez ce lien avec l'utilisation de OAuth et des fournisseurs sociaux, il offre une multitude de capacités d'authentification déjà cuites à .NET. vidéo de formation Microsoft sur OAuth et Single Sign sur les fournisseurs sociaux a> p>
Ceci est une authentification unique et non sur une connexion unique, vous devez vous connecter n Times pour n sites avec la même authentification.
Vous devez distinguer entre l'authentification et l'autorisation. Vous pouvez autoriser un utilisateur qui signifie que vous savez qu'ils sont ceux qu'ils prétendent être, mais vous devez toujours autoriser cet utilisateur, sur vos 2 sites Web, pour accéder au contenu qu'ils peuvent et ne peuvent pas accéder sur chaque site. Le jeton expirera mais peut généralement être rafraîchi pour maintenir l'accès.