OAuthが分からなかったので調べた

OAuthについて何も知らなかったので調べました。

◆OAuthとは、何?
「認可情報の委譲」のための仕様

◆OAuthとは、どのような場合に利用されるのか?
いろいろあると思う。

    • ユーザが外部サービスにパスワードを教えることなく,認可情報の委譲をしたい場合
    • ユーザが外部サービスにすべての権限を渡すこと無く,自分が利用したいサービスに最低限必要な権限のみを委譲したい場合

etc

◆OAuthを実現する登場人物は?
主役は3人。

  1. OAuth Service Provider
    • ユーザの認可情報を第三者に渡すサービス
  2. OAuth Consumer
    • Service Providerから認可情報を受け取り,ユーザに代っていろいろな情報にアクセスしたり変更/追加を行ったりするサービス
  3. User
    • UserはService ProviderがConsumerに認可情報を渡すことを許可したり,すでに受け渡した認可情報を無効にする

◆OAuthはどのように実現されるのか?
GAEでtwitter botサービスを作成する場合を例に、まとめてみた。

簡単に説明すると、Userが事前にtwitterにGAEで作成したボットをサービスとして登録しておく。その後、UserがGAEへアクセスすると、ボットがtwitterからtokenを取得し、ボットはそれを使用してtwitterへ投稿することができる。

ちなみに、実装中のボットは下記のようなシーケンスで処理を行うように作成している。

なお、OAuthの理解のために、下記ページを参照させて頂いた。

ゼロから学ぶOAuth