Qiita APIの仕様に対する懸念点

OAuthを使っていないことに対して疑問を投げたところ、セキュリティとログインのお二人が議論してくださいました。
6
Hiraku @Hiraku

予習 / “Qiita APIドキュメント - Qiita:Developer” http://t.co/RHh78iDJ

2012-10-10 12:03:34
Hiraku @Hiraku

“QiitaAPIを公開しました! - The Official Qiita Blog” http://t.co/NIQ0TVnT

2012-10-10 13:06:13
Hiraku @Hiraku

ユーザー名とパスワードを渡さないと使えないって仕様はまずいと思う。。 OAuth2にはできないのかな。 / “Qiita APIドキュメント - Qiita:Developer” http://t.co/RHh78iDJ

2012-10-10 12:10:56

ドキュメント転載

token取得

POST /api/v1/auth
認証: ユーザー名+パスワードによる認証

input

  • url_name (必須) String
    Qiitaのユーザー名(twittername or githubname@github)
  • password (必須) String

※このAPIで取得したtokenをパラメータにつけることで、他のAPIもユーザー認証済みの挙動になる模様

👹秋田の猫🐱 @ritou

Qiitaって「プログラマのための 技術情報共有サービス」なのにAPIにはどうしてOAuth使わないの?Disではなく疑問です。 http://t.co/ZeirMbWe

2012-10-10 12:10:49
mala @bulkneets

@Hiraku @ritou そもそもAPI用のパスワードですよ ログインに使えない。

2012-10-10 12:18:23
👹秋田の猫🐱 @ritou

@bulkneets 「投稿の削除」とかする際に必須ってことはそのユーザーのパスワードではないのでしょうか?

2012-10-10 12:27:02
👹秋田の猫🐱 @ritou

clientが存在しないからかな

2012-10-10 12:34:02
mala @bulkneets

@ritou ん?何か区別する必要があるんですかね。削除が付いてると特別?

2012-10-10 12:38:58
👹秋田の猫🐱 @ritou

@bulkneets リソースアクセス用にユーザーが設定したパスワード使わせるのに違和感を覚えました。

2012-10-10 12:59:10
mala @bulkneets

@ritou ログインは元々Twitterかgithubで、パスワードはkobitoってアプリを使う際に設定してたものです。デスクトップアプリからTwitterやgithubのログイン叩くのが現実的ではないからパスワード作ったのでしょう。

2012-10-10 13:12:36
Hiraku @Hiraku

@bulkneets @ritou なるほど、twitterのログインパスワードを要求するわけではないのですね。

2012-10-10 12:49:57
mala @bulkneets

@ritou で、このパスワードはログインに使えないので、このパスワード単体でパスワードを変更するということが出来ない(はず) かつ、ユーザーが直接入力するものなので、まあユーザーが自分で好きな文字入れるのは妥当かと思います

2012-10-10 13:13:49
mala @bulkneets

@ritou で、API用のtokenを取得するのに、このパスワードが必要。元々他人に権限委譲するのはあまり想定してなさそうですが、もし他人に権限委譲したい時にパスワード渡すのが困るのであれば、tokenを渡せばいいですね。

2012-10-10 13:14:55
👹秋田の猫🐱 @ritou

設定のページ見たらMacのアプリ連携用のパスワードっぽいけど、それ使わなくていい環境で動く開発者にはxAuth使わせない方が良いと思ってるし、アクセスもととか気にしなくて良いのかなとかもろもろ考えてOAuthでいかない理由が知りたかっただけです。

2012-10-10 13:14:42
👹秋田の猫🐱 @ritou

@bulkneets ログインできない、アカウント操作に関わる処理はできなくても別のサービスと同じパスワード設定する人出てくるだろうし、この「API連携のためだけのPW設定させて連携」方式が簡単だとかいって流行ったりしないかなってとこが心配ですね。

2012-10-10 13:57:20
mala @bulkneets

vimとブラウザ連携させてOAuthトークン受け取るの大変だろうし、API用パスワードでいいやろ。

2012-10-10 20:13:12

とりあえずまとめ

Hiraku @Hiraku

・API専用パスワードなのでアカウント乗っ取りのリスクはない

2012-10-10 21:42:01
Hiraku @Hiraku

・Qiita内で「パスワード」と表記しているので、他サイトと同じパスワードをAPI用に設定する人が出るかも。その場合アプリ開発者は「パスワードの可能性の高い」文字列を収集できてしまう

2012-10-10 21:46:02
Hiraku @Hiraku

『ぐへへ、ユーザーが入力してきたAPIパスワードを使って、主要なSNSにログインアタックできるぜ!』

2012-10-10 21:48:49
Hiraku @Hiraku

・Qiita側でAPI用パスワードを自動生成し、ユーザーが自由な文字列をセットできないようにした方がよさそう。

2012-10-10 21:51:08