第1回 OAuthとは?―OAuthの概念とOAuthでできること:ゼロから学ぶOAuth|gihyo.jp … 技術評論社
OAuthは,以下の特徴を持つ「認可情報の委譲」のための仕様である。「おーおーす」と読む。
- あらかじめ信頼関係を構築したサービス間で
- ユーザの同意のもとに
- セキュアにユーザの権限を受け渡しする
ということ。
OAuthに対応したサービスでは,ユーザが外部サービスにパスワードを教えることなく、
認可情報の委譲が可能である。
つまり、
パスワードを使わずにサービスの
情報の取得/追加/更新/削除 が可能になるというわけだ。
OAuthで出てくるアクターは以下の3つ。
- OAuth Consumer(以下Consumer) Service Providerから認可情報を受け取り,ユーザに代っていろいろな情報にアクセスしたり変更/追加を行ったりするサービス Twitterのアプリとか。
- User UserはService ProviderがConsumerに認可情報を渡すことを許可したり,すでに受け渡した認可情報を無効にするといったことができる ユーザー。そのまんま。
流れとしては、
- UserがConsumerに,Service Providerから認可が必要な情報へのアクセス権を取得するように指示
- ConsumerはバックグラウンドでService Providerにアクセスし,未認可のRequest Tokenを取得
- ConsumerはUserをService Providerにリダイレクトさせて、Consumerは未認可のRequest TokenをURL Parameterに付加
- UserはService Provider上でConsumerへのアクセス権委譲を許可 この際Service Providerは未認可のRequest Tokenを認可済とする
- Service ProviderはUserをConsumerにリダイレクトさせる この際Service Providerは認可済のRequest TokenをURLに含める
- ConsumerはバックグラウンドでService Providerと通信を行い,認可済のRequest Tokenを実際のアクセス権を示すAccess Tokenと交換
- Consumerは6)で得られたTokenを利用して,特定の情報にアクセス
重要なのは、トークンのやりとりであり、Service ProviderがUserからのトークンを認可済みにしたりアクセス権を有するトークンにしたりすることである。
Twitterのアカウントがハックされた人が外部アプリの作者にサービスの全停止を要求 - Togetter
つまり、この流れでいうと、アプリ作成者に非はなく、アカウントのパスワードが盗まれたのはTwitterかユーザーのアカウント管理に問題があったのではないかと…