OAuthの概要(簡単な言葉で)

ソーシャルネットワークは私たちの生活にますます深くなっています。 多くの場合、これは収入を得る手段であると同時に仕事の主な手段でもあります。 BitlyからのTwitterへの自動投稿など、あるサイトが別のサイトからあなたの個人情報を要求する場合があります。 そのようなプロセスを実行するには、ユーザー名とパスワードをあるリソースから別のリソースに開示する必要があります。 これは正しい方法ではありません。 True-OAuthを使用する必要があります。



OAuthは、第三者(ユーザー)にログインとパスワードを与えることなく、ユーザーの保護されたリソースへの制限されたアクセスを第三者に提供できるようにするオープンな認証プロトコルです。



この短いガイドは、OAuthの動作よりも簡単であることを示しています。



会員



OAuthトランザクションには、ユーザー、コンシューマー、サービスプロバイダーの3つの主要な参加者が関与します。 この三位一体は、愛情を込めてOAuth愛の三角形と呼ぶことができます。



この例では、Joeがユーザー、Bitlyが消費者、TwitterがJoeの安全なリソース(フィード)を制御するプロバイダーです。 Joeは、Bitlyにフィードへの短縮リンクを投稿してほしいと考えています。 仕組みは次のとおりです。



ステップ1-ユーザーが願い事をする



ジョー(ユーザー) :「こんにちは、ビットリー、リンクを私のフィードに直接投稿してほしい。」



Bitly(消費者): 「問題ありません! 許可を求めに行きます。」



ステップ2-消費者が許可を取得



Bitly: 「ここに、自分のストリームに公開してほしいユーザーがいます。 リクエストトークンを頂けますか? 」



Twitter(プロバイダー): 「良い。 これがトークンと秘密の言葉です。誰にも言わないでください。」

シークレットは、偽のリクエストを防ぐために使用されます。 コンシューマはこれを使用して各リクエストに署名するため、サプライヤはリクエストが実際にコンシューマアプリケーションからのものであることを確認できます。



ステップ3-ユーザーはサービスプロバイダーにリダイレクトされます



ビットリー: 「OK、ジョー。 Twitterに送信します。そこで確認する必要があります。 トークンを持って行きます。」

ジョー:「同意します!」



<承認のためにJoe Twitterを少しリダイレクト>



ステップ4-ユーザーが許可を与える



ジョー: 「Twitter、このトークンを承認してほしい。Bitlyがくれた。」



Twitter: 「わかりました。念のために、Bitlyにこれをやらせてください。 」



ジョー: 「はい!」



Twitter: 「まあ、Bitlyにリクエストトークンを使用できることを伝えることができます」



Twitterは、このトークンに確認済みのマークを付け、ユーザーがアクセスを要求したときに、トークンを受け取るようにします(共通の秘密の言葉で署名されている限り)。



ステップ5-消費者はアクセストークンを受け取ります



Bitly: 「Twitter、リクエストトークンをアクセストークンに変更できますか?」



Twitter: 「もちろん。 これがアクセストークンと秘密の単語です。」

ステップ6-保護されたリソースへの消費者アクセス



Bitly: 「Twitter、Joeのフィードへのリンクを投稿したい。 これが私のアクセストークンです。」



Twitter: 「トークンは有効です。 完了!」



おわりに



このシナリオでは、ジョーは自分のTwitterアカウント情報をBitlyと共有する必要がありませんでした。 彼は、セーフモードでOAuthを使用してアクセスを委任しました。 ジョーはいつでも自分のTwitterアカウントにログインして、許可したすべてのアクセスを確認し、必要に応じてそれらのいずれかを取り消すことができます。 OAuthを使用すると、さまざまなレベルでアクセスを共有できます。 Bitlyに公開する権利を与えることができますが、LinkedInには読み取り専用の許可を与えます。



OAuthは完璧ではありません...今のところ



OAuthはWebアプリケーション向けの強力なソリューションであり、通常のHTTP認証よりも大幅に改善されています。 ただし、特にOAuth 1.0には特定の制限があります。



OAuth 2.0は、プロトコルのより新しく安全なバージョンであり、Web、モバイル、デスクトップアプリケーション向けにさまざまな情報の「ストリーム」が登場しています。 また、トークンの有効期限(Cookieと同様)の概念があり、SSL上で機能し、複雑な認証手順を採用することで開発の複雑さを軽減します。



追加のソース



これが、OAuthの概念を「一般的に」示した良い例であったことを願っています。 そのため、次に「Twitterでサインイン」ボタンなどを表示したときに、クリックするとどうなるかがわかります。



仕事の仕組みをさらに詳しく知りたい場合、役に立つリンクをいくつか紹介します。

hueniverse.com/oauth

marktrapp.com/blog/2009/09/17/oauth - dummies

dev.twitter.com/docs/auth/oauth/faq

stackoverflow.com/questions/4113934/how-is-oauth-2-different-from-oauth-1

googlecodesamples.com/oauth_playground

www.justin.tv/hackertv/b/259433315



All Articles