0

私はRobConeryの2010年のブログ投稿を(再)読んでいます。OpenIDはOpenID/OpenAuthの調査の一環として悪夢です。理想的には、単一のアカウントにリンクされた複数のOAuthプロバイダーを使用して、プロバイダーが利用できない場合の回復力を提供することを検討しています-Facebookでログインし、TwitterアカウントとGoogleアカウントをリンクし、次回Facebookにアクセスしたときにログインが機能しない場合関係ありません。TwitterまたはGoogleを使用して、自分のものにアクセスしてアクセスできます。実際には、パスポートで銀行口座を開設し、パスポートがない場合は運転免許証を使用して後でお金を引き出すことができます。利用可能。

彼の記事でのRobの主な懸念事項の1つは、OpenIDを使用しているユーザーを一貫して特定する方法がないことです。誰かがいつかGoogleにログインして製品を購入し、数日後に戻ってGoogleにログインできなくなる可能性があります。 2つのGoogle認証呼び出し間で一貫性を保つことが保証されている一意の識別子がないため、購入した製品にアクセスします。

これがOAuth2.0で対処されているかどうか、つまりプロトコル仕様を介して明示的に対処されているのか、主要プロバイダー間の実装コンセンサスを介して対処されているのかについて興味があります。特定のOAuthプロバイダーとのユーザーの関係の存続期間中、変更しないように信頼できるフィールド(ある場合)はどれですか?

4

2 に答える 2

2

ログインプロセスのOAuth2の一部として、Googleは、プロセスの早い段階で取得されたTokenInfo情報を検証および提供するために使用されるエンドポイントを提供します。access_token

トークン情報には次のものが含まれますuserid

「このフィールドの値は、ログインしたユーザーの不変の識別子であり、アプリケーションでユーザーセッションを作成および管理するときに使用できます。この識別子は、client_idに関係なく同じです。これにより、プロファイル情報を相互に関連付けることができます。同じ組織内の複数のアプリケーション。」

チケット(またはおそらくトークン)のように聞こえます!

useridスコープがアクセストークンリクエストに含まれている場合にのみ存在するhttps://www.googleapis.com/auth/userinfo.profileため、それを忘れないでください。

同様に、Facebook APIでは、IDを含むユーザーデータを取得できるアクセストークンを取得すると、グラフAPIにアクセスできます。

Twitterは、認証APIuser_idの一部としてアクセストークン応答にを含めます


.NETプロジェクトでOAuthを使用している場合、これは便利かもしれません... WebMatrix 2 BetaにはFacebook、Twitter、Windows Live、Google、YahooのOAuth2クライアントが含まれており、MVCプロジェクトから使用できることがわかりました。私はあなたがただ必要でありWebMatrix.Security.dll、あなたは行ってもいいと言われています。にインストールされていC:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assembliesます。ベータ版で非表示になっていますが、開始するのに適した方法であり、DotNetOpenAuthライブラリの学習曲線が少し緩やかになる可能性があります。

于 2012-05-26T20:45:54.123 に答える
1

OAuth2.0はこれを解決しません-それはアイデンティティ/SSOプロトコルではありません。

ただし、OpenID Connect(OAuth 2.0上に構築)はです。運が良ければ、OpenID Connectを介してユーザーの電子メールアドレスを取得できます(スコープによっては、ここを参照)。または、特定の証明書利用者に固有のPPIDを取得することもできます。いずれにせよ-それは可能であるはずです。

または、SAMLを使用することもできます。適したさまざまな種類のユーザー識別子をサポートします。

于 2012-05-22T21:52:23.417 に答える