«前の日記(2006-04-22 (土)) 最新 次の日記(2006-04-27 (木))»  

まちゅダイアリー


2006-04-24 (月)

はてなの認証 API リリース

はてなから認証 APIがリリースされた。 ざっとヘルプを読んでみたけど、2月の日記に書いたように Flickr 方式になってる。 下記は、去年の日記に書いた Flickr API の図。

flickr (2)

  • perm を削除して代わりに api_sig を追加する(はてな認証APIでは、まだはてなのサービスへはアクセスできないので、権限 (perm) は不要)
  • frob を cert に置き換える(単に用語が違うだけ)
  • トークンをユーザ情報に置き換える(はてな認証APIはユーザ情報を取ってくるだけなので、再利用可能なトークンではなくダイレクトにユーザ情報を返している)

これだけで、Flickr の図がはてな認証 API の図になる。

また、 api_key も、 Flickr と同じく偽サービスの防止のために使われている。

flickr (3)

はてなAPIでは、この図のトークンやメソッドを cert に置き換えて考えればいい。 SECRET (秘密鍵) を知らない限り署名 (api_sig) が作れないので、偽サービスがサービスになりすましてはてなAPIにアクセスすることはできない、と。

追記 (2006/5/7)

上記の記述を訂正します。 現状の方式では、ある条件を満たせば SECRET を知らなくても署名値を推測することができるそうです。 独自の方式ではなく、 HMAC を使うべきでしょう。

注意点

結城さんも指摘されているけど、はてなでの認証画面にコールバック先のURLが表示されないのは問題かな。

具体的には…

上記のリンクをクリックすると、はてな認証APIを使ったログイン画面が表示される(リンクをクリックするだけでは認証されないのでご安心を)。 ログイン画面では、以下のようなメッセージが表示される。

サンプルアプリが kmachuさんのアカウント情報の読み取り許可を要求しています。この要求を承諾すると、サンプルアプリ が kmachu さんのアカウント情報の一部を扱えるようになります。

あわせて、下記の情報も表示される。

もちろん、僕が Google のアプリを作っているわけが無い。 このURLは任意のアドレスが入れられるようになっているので、適当に Google のアドレスを入れてみただけ。 実際のコールバック先は http://www.machu.jp/sample/auth/ になっているが、ログイン画面を見ただけでは利用者には分からない。

この URL はコールバック先と違うドメインは指定できないようにするべきだろうね。

追記 (2006/4/29)

ログイン画面(アカウント読み取り許可画面)にて、コールバックURLも表示されるようになった。

本日のツッコミ(全3件) [ツッコミを入れる]
naoya (2006-04-25 (火) 03:31)

おお、丁寧な解説ありがとうございます。ヘルプよりわかりやすい! w<br><br>コールバックURL なんですが、表示URL とコールバックが同一ドメインしか指定できない、だと、例えば Movable Type で公開されているサイトのように、第三者に公開されるページとアプリケーションをおいてるドメインが異なったりするようなものでちょっと使いづらいかなと思って。<br><br>なのでいっそコールバックURLも表示してしまうのがいいと思ってるのですが、どうでしょう。

まちゅ (2006-04-25 (火) 03:53)

Flickrの図を流用しただけですので、きっと誰かが清書してくれると思います(笑)<br>表示URLとコールバックURLが異なるのであれば、両方表示する方式でよいと思います。<br>「あなたのはてなIDは以下のURLに送られます。このURLを信用できない場合は、○○ボタンをクリックしないでください」みたいな説明があるといいですね。

naoya (2006-04-25 (火) 04:35)

どうもです。そのメッセージいいですね、いただきますw