0

私はKhan Academyを見ていて、認証がどのように機能しているのだろうと思います(他の多くのWebサイトでも同様です)。プロバイダ間のOAuthの関連

電子メール "[email protected]"を持つfacebookアカウントでログインすると、完全にログアウトし、別の匿名ウィンドウを開き、同じ "[email protected]"電子メールを持つGoogleアカウントでログインすると、以前に作成したアカウントに追加します。

私の質問は以下のとおりです。彼らは協会がソーシャルアカウントが持っている電子メールに基づいてアカウントに

  1. 作るのですか?
  2. 私は彼らのソリューションが安全だと確信していますが、これは一般的であり、通常は実行可能なので、いかなる可能性もありません。
+1

1.他に何を使用しますか? 2.すべてのプロバイダが確認/確認された場合にのみユーザーの電子メールを返す場合は、はい、合理的な安全です。 – CBroe

答えて

1

私はあなたが一意の電子メールで、あなたのウェブサイトに登録されているユーザを持っているdvouch

まず、私のアプリへのアクセスを許可するためのOAuth2のシステムを使用しています。

それでは基本的に起こることである:ユーザーがのOAuth2プロバイダーの1

  • あなたのウェブサイトが進むからログインしてクリック

    1. ユーザーの訪問あなたのウェブサイト(ウェブサイトは、ユーザーが誰であるか知っていません)
    2. 「OAuth2」ハンドシェイクを開始するために、ユーザは、要求する範囲(電子メール、個人情報、公開情報など)、ユーザを返送するためのURLなど、いくつかの情報とともに、プロバイダのoauthエンドポイントにユーザをリダイレクトします認証が完了すると、アプリケーショントークン(プロバイダのダッシュボードに登録されている)などが表示されます。
    3. あなたが選んだプロバイダがfacebookだったとします。 FacebookはあなたのOAuth2認証要求を受け取ります。また、あなたが要求しているスコープ、認証された後にユーザが行くURL、アプリケーションの資格情報を受け取ります。
    4. 送信している認証情報が有効であること、あなたがコールバックしているURLあなたのアプリに登録したものとマッチした後に送信するようにユーザーに依頼する(誰かがあなたのアプリの認証情報を盗んで、別の場所にリダイレクトすることはできない)、すべてがうまくいけば、ログインウィンドウを表示するユーザに提供する。このログインはプロバイダのページで行われています。あなたのウェブサイトではありません。
    5. ユーザーはログインします(あなたのウェブサイトではなく、Facebook内またはGoogle内)。プロバイダは、ハンドシェイクの開始時に指定したコールバックURLにそれらを送り返します。
    6. あなた(あなたのウェブサイト)は、Oauth2のフローを完了したばかりのユーザーの電子メールなど、多数の情報を持つユーザーを受け取ります。
    7. この時点で、コールバックに含まれている電子メールを使用して、電子メールでユーザーを識別します。すべての電子メールは一意であり、ユーザーはプロバイダの電子メールに登録する必要があるため、電子メールの所有者であると想定することは安全です。

    (技術的に物事が少し違っ起こるかもしれない)

    それは限り、ウェブサイトは、定期的なセキュリティ対策を持っているとして、基本的には非常に安全です。もちろん、誰かがあなたのFacebook(wtv)アカウントや電子メールにアクセスしている場合、彼らはあなたのようにログインすることができますが、Oauthを提供するかどうかはどちらの方法でも起こります。

    正しいプロバイダのウェブサイト(FacebookやGoogleのようなものではなく他のものではない)にログインしていることを確認している限り、誰もあなたのログインを見ることができないので問題ありません。承認の「スコープ」も渡されなければならないため、ユーザーはアプリケーションが何を求めているか(電子メール、受信トレイへのアクセス、wtv)を見て、それらのスコープを許可するかどうかを決定することもできます。アクセスを許可しないと決めると、Facebookはその情報を戻さず、プロセスを安全にします。

    あなたのコンピュータに悪意のあるソフトウェアがインストールされていて、あなたのアクティビティをログに記録していて、どちらの方法でもうまくいけば、それは安全ではありません。

  • 関連する問題