0

Je regardais Khan Academy et je me demande comment fonctionne leur authentification (probablement beaucoup d'autres sites ont la même chose). Lorsque vous vous connectez avec un compte facebook qui a un email "[email protected]", vous vous déconnectez complètement, ouvrez une autre fenêtre anonyme, et connectez-vous avec un compte google qui a le même email "[email protected]", vous vous connectez dans le compte précédemment créé.Association de OAuth entre les fournisseurs

Mes questions sont les suivantes:

  1. font-ils association compte en fonction de votre compte e-mail sociale a?
  2. Je suis sûr que leur solution est sécurisée, mais est-ce commun et normalement faisable donc il n'y aura pas d'exploitation possible?
+1

1. Que pourraient-ils utiliser d'autre? 2. Si tous ces fournisseurs ne renvoient un email de l'utilisateur que s'il est confirmé/vérifié, alors oui, il est raisonnable sécurisé. – CBroe

Répondre

1

J'utilise un système de oauth2 d'accorder l'accès à mon application, dvouch

D'abord, vous avez un utilisateur enregistré sur votre site, avec un e-mail unique.

Alors ce qui se passe essentiellement est:

  1. utilisateur visite votre site (site web ne sait pas qui est l'utilisateur)
  2. utilisateur clique pour ouvrir une session dans l'un des fournisseurs oauth2
  3. Vos Encaissements site pour démarrer une négociation "OAuth2", il redirige l'utilisateur vers le point de terminaison oauth du fournisseur, avec quelques informations, comme les étendues que vous demandez (email, informations personnelles, informations publiques, etc), l'url pour renvoyer l'utilisateur une fois l'authentification terminée, vos jetons d'application (enregistrés dans le tableau de bord de l'application fournisseurs), etc.
  4. Disons que le fournisseur que vous avez choisi était facebook. Facebook reçoit votre demande d'authentification OAuth2. Il reçoit également les portées que vous demandez, l'URL vers laquelle vous souhaitez que l'utilisateur se rende après l'authentification et les informations d'identification de votre application.
  5. Il vérifie que les informations d'identification que vous envoyez sont valides, que l'URL de rappel est valide. demander à l'utilisateur d'être envoyé après correspond également à ce qu'il a enregistré pour votre application (afin que quelqu'un ne puisse pas simplement voler vos informations d'identification d'application et rediriger les utilisateurs ailleurs) et si tout va bien et dandy, il présentera alors la fenêtre de connexion à l'utilisateur. Cette connexion se passe sur la page du fournisseur. Pas sur votre site web.
  6. L'utilisateur se connecte (à l'intérieur de facebook ou google pas votre site Web). Le fournisseur les renvoie à l'URL de rappel que vous avez spécifiée au début de la négociation.
  7. Vous (votre site Web) reçoit l'utilisateur avec un tas d'informations, telles que le courrier électronique de l'utilisateur qui vient de terminer le flux Oauth2.
  8. À ce stade, vous utilisez l'e-mail qui est venu dans le rappel et identifier l'utilisateur par le biais de l'e-mail. Comme tous les e-mails sont uniques et que votre utilisateur doit être enregistré avec cet e-mail sur le fournisseur, vous pouvez supposer qu'il est le propriétaire de l'e-mail.

(techniquement les choses pourraient se produire un peu différemment)

Il est fondamentalement très sûr aussi longtemps que le site les mesures de sécurité régulières. Bien sûr, si quelqu'un a accès à votre compte Facebook (wtv) ou à un e-mail, il peut se connecter comme s'il s'agissait de vous, mais cela se produirait de toute façon avec Oauth ou non.

Ensuite, tant que vous vérifiez que vous vous connectez au site Web du fournisseur correct (comme Facebook ou google et pas quelque chose d'autre), tout ira bien puisque personne d'autre ne sera en mesure de voir votre connexion. Comme une "portée" des autorisations doit également être transmise, vous pouvez également voir en tant qu'utilisateur ce que l'application demande (email, accès à votre boîte de réception, wtv) et décider si vous souhaitez accorder ces étendues ou non, si vous décider de ne pas accorder l'accès, alors Facebook ne retransmettra pas cette information, ce qui à son tour rend le processus sûr.

La seule façon qu'il ne serait pas en sécurité serait si vous aviez un logiciel malveillant installé sur votre ordinateur pour vous connecter votre activité et dans ce cas, vous visser ou l'autre manière.