OAuthが分からなかったので調べた
OAuthについて何も知らなかったので調べました。
◆OAuthとは、何?
「認可情報の委譲」のための仕様
◆OAuthとは、どのような場合に利用されるのか?
いろいろあると思う。
-
- ユーザが外部サービスにパスワードを教えることなく,認可情報の委譲をしたい場合
- ユーザが外部サービスにすべての権限を渡すこと無く,自分が利用したいサービスに最低限必要な権限のみを委譲したい場合
etc
◆OAuthを実現する登場人物は?
主役は3人。
- OAuth Service Provider
- ユーザの認可情報を第三者に渡すサービス
- OAuth Consumer
- Service Providerから認可情報を受け取り,ユーザに代っていろいろな情報にアクセスしたり変更/追加を行ったりするサービス
- User
- UserはService ProviderがConsumerに認可情報を渡すことを許可したり,すでに受け渡した認可情報を無効にする
◆OAuthはどのように実現されるのか?
GAEでtwitter botサービスを作成する場合を例に、まとめてみた。
簡単に説明すると、Userが事前にtwitterにGAEで作成したボットをサービスとして登録しておく。その後、UserがGAEへアクセスすると、ボットがtwitterからtokenを取得し、ボットはそれを使用してtwitterへ投稿することができる。
ちなみに、実装中のボットは下記のようなシーケンスで処理を行うように作成している。
なお、OAuthの理解のために、下記ページを参照させて頂いた。