質問

最近、ユーザーが自分のサイトにアカウントを作成しないように、GoogleとYahooのOpenIDエンドポイントを自分のサイト上の認証システムに実装しました。かなり一般的な練習、右?

私は具体的な質問をしていますが、最初に少し背景情報を持っています。

3脚認証を受けたとき、私は属性交換を使用してユーザーの名前と電子メールアドレスを取得しました。現在、私は彼らのOpenIDを保存しています(このような長い文字列: https://me.yahoo。 COM / A / 2Z7LPLQSNI_DGTAW ユーザーテーブルの特別なフィールドにある[英数字の束)。

私のユーザーのテーブルはこのように見えましょう。

type  id  password                          email             key
1     1   0e9212587d373ca58e9bada0c15e6fe4  test@example.com
2     1   b8d2f4a50d2b364ff2766556ba50da48  me@gmail.com      https://www.google.com/accounts/o8/id?id=AItOawll6-m_y…
2     2   6687d5d88b359ee1340717ebf0d1afc6  you@gmail.com     https://www.google.com/accounts/o8/id?id=AItOawm3-C_9…
3     1   fd193c2fa449c9d6dc201d62d5ca86d3  him@yahoo.com     https://me.yahoo.com/a/2Z7LplQsnI_DgtAw…
1     2   2e710b13b3dd787e2b15eab3dde508c2  person@site.com

types
1 = native account
2 = Google OpenID
3 = Yahoo OpenID
.

ネイティブアカウントでユーザーがログインすると、Eメールとパスワードは認証(DUH)に使用されます。

ユーザーがGoogleまたはYahoo OpenIDを使用すると、OpenID(キーフィールド)が認証に使用されます。

大丈夫、今の背景情報はすべて邪魔にならないようになっています... OpenID自体を保存することを忘れ、単に属性交換から戻ってくる電子メールを使用してユーザーを認証することができますか? OpenIDトランザクションの3番目の脚を偽装することも、Googleで@ gmail.comを取得するたびに、それが本物で偽装されていないことがわかりますか?

役に立ちましたか?

解決

プロトコルの意図的な侵入は、長期的に頭痛を主張します。たとえば、ユーザーがカスタム構築されたOpenIDサーバーを使用してログインしているが@ gmail.comのEメールアドレスを提供する場合を検討してください。

OpenID認証交換がID URLであった後、絶対に一貫性と信頼性が保証されている唯一の情報。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top