JugemKey 認証 API リリース
追記
CPAN モジュールが Perl 5.8.7 じゃないとインストールできない、という指摘が宮川さんからありましたので、修正しました。CPAN に反映されるまで時間がかかりますので、
ここから取得してください
。モジュール作るのに h2xs を使うのはやめます。今は Module::Starter の時代らしいです。
JugemKey 認証 API がリリースされました。 PHP4, PHP5, Perl の 認証 API ライブラリも提供しています 。
基本的には、Flickr や はてなの認証 API とほぼ同等のものなのですが、 Kazuho@Cybozu Labs , Tociyuki::Diary , まちゅダイアリー のはてな認証 API 関連エントリを参考にさせて頂きつつ、以下の様な独自の仕様を加えています。
- 署名コードの生成には HMAC_SHA1 を利用。
- frob や token を認証 API に渡す際に、クエリストリングではなく、HTTP リクエストヘッダを利用。これは、特に今後の他サービス API の認証に token を利用するにあたって、クエリストリングはあくまでもサービス固有のクエリストリングとして使いたい、ということと、frob や token が Authorization や X-WSSE などの認証用 ヘッダの代わりになるものなので、ヘッダに入れるのが自然ではないか、という考え。
- frob や token を認証 API に渡す際に、リクエスト時の日時もヘッダに含め、署名コードも日時を含めて生成する。API サーバ側では、署名とともに日時のチェックも行い、現在時刻から5分以上ずれているリクエストはリジェクトする。
- コールバック URL はリクエスト毎に自由に設定可能。ただし、API キーの設定で指定された URL を含む URL である必要あり。
はてな認証 API への攻撃シナリオ にあるような、frob(はてなの場合は cert) の漏洩対策に関しては、今後の課題とさせてください。
API の仕様決めや Perl ライブラリを作成するにあたって、はてな認証 API や Hatena::API::Auth を大いに参考にさせて頂きました。なので、naoya さんに一言お伝えするのが礼儀だろうと思い、事前にメールさせて頂いたのですが、「全然気にしなくていいですよ。」と快いお返事が頂けました。naoya さん、ありがとうございました!
また、PHP5 用ライブラリは オオヒダさん に作成して頂きました。しかもオオヒダさんはライブラリだけでなく…、とこれは後ほどのお楽しみ、ということで。オオヒダさん、ありがとうございます!