これは要チェック。OAuthプロバイダ実装のノウハウをコードから知る「OAuth Provider Demo」
OAuth Provider DemoはRails3で実装された、OAuthプロバイダのデモプログラム。
[/s2If]
OAuth Provider DemoはRuby on Rails3製のフリーウェア(ソースコードは公開されている)。WebサービスでWeb APIを公開することは決して珍しいことではなくなっている。そして最も多いのは手軽に利用できるRESTfulのものが多い。
ユーザ情報のJSON
そんなWeb APIを提供する場合、認証についてはOpenIDを使うのがセキュリティ的にも安心できる。そして各機能についてはOAuthを使うのが良い。そうすればアプリケーションにパスワードを保存しなくて済む。その時の参考になるのがOAuth Provider Demoだ。
個人的にこれはかなり欲しかったソフトウェアだ。OAuthを利用する側のライブラリは数多いが、提供する側のやり方についてはプロトコルは公開されているものの、実際のコードでは見たことがなかった。OAuth Provider Demoはそのデモプログラムとして最低限の機能を備えている。
機能単位の認証
認証を通るとJSONコードを得られるようになる。そしてアプリケーションを登録し、機能単位でコードを生成する。利用する側は認証トークンを使ってアクセスし、ユーザ情報と取得し、さらに各機能単位でトークンを得ることでWeb APIを使えるようになる。
デモプログラムなのでOAuth Provider Demoがそのまま使えるということはない。だがOAuthプロバイダとしてのやり方を学ぶ上でとても貴重なソフトウェアだ。
[s2If !current_user_can(access_s2member_level1)]
MOONGIFTは読者の皆さまのサポートによって運営されています。ぜひプレミアム登録お願いします!月 額500円の他、半年(3,000円)、年間パック(6,000円)もあります。! プレミアムユーザのログインはこちらから
[/s2If]
MOONGIFTはこう見る
OAuthはプロトコルなので、適当に実装してもできない訳ではない。だが参考になるコードがあればより分かりやすい。特にアプリケーションの登録や機能単位での承認など、OAuthを提供する上での工夫をコードの中にかいま見ることができる。
OAuth Provider Demoはライセンスがないが、コードが公開されているのでじっくりと研究することが可能だ。まさにノウハウをコードに落とし込んだものと言えるだろう。自社WebサービスでOAuthを実装する際にはぜひ。
[/s2If]