最近社内ツール(ウェブサービス)のAPIの認証について考えてる。 ユーザーがブラウザからIDとパスワードを使ってログインする伝統的な感じのサービスだけど、Mechanizeとかを使ってブラウザ以外から操作する要望が高まってきているのでAPIを用意しようみたいになってる。そのAPIでの認証をどうするかという話。特定少数用の小規模なものを想像してもらうといい。 ざっと思いつく案は、 ID/パスワードを使ったBASIC認証 ID/パスワードを使ったBASIC認証以外の認証方式 OAuth SSH key pair ブラウザから設定画面でAPIキー/トークンの発行をするやつ くらい。SSL経由なので盗聴リスクやリプレイ攻撃や改竄については無視していいし、TwitterやFacebookみたいに不特定多数のサードパーティが居るわけでもない。1は便宜的にBASIC認証と書いたけどDigest認証でもあ