最近どこもかしこもAPI公開なご時勢ですが、FlipClipもクリップ検索用のフィードをAPI第1段として公開しました。
FlipClip開発者向け情報のページ
http://www.flipclip.net/developer/
フィードと言うよりAPIといったほうが世間の受けはよさそうな気がしますが、フィードはフィードなんで、フィードという名前にしときました。
今のところ、以下のクリップを取得できます。
- 一般公開クリップ
- 特定ユーザーのクリップ
- 特定ユーザーの友だちのクリップ
- 特定ユーザーのお気に入りクリップ
フィードのフォーマットはAtomフィード、JSONフィード、RSS2.0を用意しました。
フォーマットの指定はクエリパラメータでできるんですが、別の方法として、Acceptヘッダを使った指定ができるようにしてあります。
リソースを取得するためのURLがあって、そのURLに対してこのフォーマットでくれというと、その形式で返す、というようにRESTっぽくしたかったので、つけました。
それと、絞り込み機能を充実させています。
タグやフリーワード、カテゴリ、撮影日時に位置情報など、対応できそうなのにはひととおり対応してみました。
また、ソートもいろいろな基準でできるようにしてあります。
フィードなんで基本日付以外でソートできるのは、よろしくないような気もしましたが、
使い勝手を考えて、再生回数とか投票の数などでソートできるようにしてあります。
もうひとつ、フィードの認証も実装してあります。
認証にはWSSEを採用しました。
フィードのリクエストの際にWSSEヘッダを付与してリクエストを送れば、
認証されたユーザの権限でクリップが取得できるようになります。
たとえば、自分のクリップなら、プライバシー設定に関係なくすべて取得できますし、
自分の友だちのクリップで友だち公開なクリップも取得できます。
使ってみて、気づいた点、使いにくい点などありましたら、お知らせいただけるとうれしいです。
2007年2月2日金曜日
2006年4月13日木曜日
WSSE認証で使用するパスワードにハッシュ化した文字列を使うのはどうか?
ここ最近APIの認証について、考えてます。
AtomAPIの認証として事実上標準的に使われているWSSE認証ですが、APIを提供しているサービスにログインするためのパスワードとAPIの認証用パスワードを共通にした場合、APIを利用するクライアント側に生のパスワードを持たせる必要があるので、APIを利用したサービスでパスワードがもれた場合、そのパスワードを使って、提供側のサービスにもログインできてしまうということになりえてしまいます。
かといってサービスログイン用のパスワードと、API認証用のパスワードを別々に設定するようにすると、ユーザはパスワードを二つ覚えておく必要があるので、ちょっと、めんどくさーとか、わすれたーとなってしまいそうです。
そこで、パスワードは1つで済んで、APIを利用する側のアプリでパスワードがもれたりした場合も、本サービスではそのパスワードを使ってログインできないようにする方法として、APIで使用するパスワードは生のパスワードをハッシュ化したものを使うというのはどうだろうかと考えています。
こうしておけば、APIを利用するアプリ側も生パスワードを持たなくて済むので、なんとなく気持ちが楽になるのかなと。結局ハッシュ化した文字列がパスワードのかわりになるだけなので、これがもれるとAPIの認証はできてしまうんですが、APIで触れる範囲はログインしてできる範囲より小さいと考えられるので、被害は小さくなるのかなと思いました。
AtomAPIの認証として事実上標準的に使われているWSSE認証ですが、APIを提供しているサービスにログインするためのパスワードとAPIの認証用パスワードを共通にした場合、APIを利用するクライアント側に生のパスワードを持たせる必要があるので、APIを利用したサービスでパスワードがもれた場合、そのパスワードを使って、提供側のサービスにもログインできてしまうということになりえてしまいます。
かといってサービスログイン用のパスワードと、API認証用のパスワードを別々に設定するようにすると、ユーザはパスワードを二つ覚えておく必要があるので、ちょっと、めんどくさーとか、わすれたーとなってしまいそうです。
そこで、パスワードは1つで済んで、APIを利用する側のアプリでパスワードがもれたりした場合も、本サービスではそのパスワードを使ってログインできないようにする方法として、APIで使用するパスワードは生のパスワードをハッシュ化したものを使うというのはどうだろうかと考えています。
こうしておけば、APIを利用するアプリ側も生パスワードを持たなくて済むので、なんとなく気持ちが楽になるのかなと。結局ハッシュ化した文字列がパスワードのかわりになるだけなので、これがもれるとAPIの認証はできてしまうんですが、APIで触れる範囲はログインしてできる範囲より小さいと考えられるので、被害は小さくなるのかなと思いました。
登録:
投稿 (Atom)

