Twitterのアプリケーション認証の権限はどんぶり仕様過ぎる

 Twitterを使用していると、Twitterと連携させて使う便利な連携アプリケーションが多数あるが、この連携機能を使うたびにTwitter側のどんぶり仕様ゆえに、意図しない権限を連携Webサービス側に渡してしまうのではないかと考えることがある。
 これを知覚したのは、『Twitter歴診断というTwitter連携サービスが「危険」だと騒がれている「その理由」について納得出来ないという話。 » Otapps』だ。これの主張を端的にいうならば「Twitterの仕様通りに使っているのだからWebサービス側に文句を言うな。」でしかなく、かの株式会社ミログの姿勢そのままで、ユーザーのことを顧みていない。
 しかし、ユーザーは、その連携アプリケーションの振る舞いをすべて想像できて、その振る舞いをTwitterの仕様に落としたときに妥当な権限要求だと認識できるだろうか?(Androidのパーミッションセキュリティシステムに通じる)

 さて、Twitterの仕様は「TwitterでOAuth認証を行う(1:Twitterへのアプリケーション登録) | Tech Booster」で、「以下の表はApplication Typeの種類です。」として、まとめてくださっている。
 この中で注目すべきは、

Read only
 タイムラインの読み込みなど、Twitterの情報を取得する場合のみが目的の場合に設定します。つぶやきやDMの送信、フォローしたりなどのデータの更新は行えません。(=タイムラインのツイートを見る)

Read and Write
 データ取得の他につぶやきやフォローなどのデータを更新する操作を行う場合に設定します。DMに関する操作は行えません。(=タイムラインのツイートを見る、フォローしている人を見る。新しくフォローする、プロフィールを更新する。ツイートする。)

Read, Write and Access direct messages
 全ての機能にアクセスできる権限です。(=タイムラインのツイートを見る。フォローしている人を見る、新しくフォローする。プロフィールを更新する。ツイートする。ダイレクトメッセージを見る。Twitterのパスワードを見る。)

()内は当方が追記したが、このように、Read only、Read and Write、6個の権限が組み合わされて、連携アプリケーション側に許可される。個別の権限と連携させようとしているアプリケーションの振る舞いが理解できたとして、権限を組み合わせた振る舞いを行う/行わないことも理解できるだろうか?
 つまり、Twitterアプリケーション連携機能の権限付与はどんぶり仕様であり、連携するアプリケーション側からユーザに対して説明を怠けているのだ。

 Twitterで相互followしているアカウントさんが作ってくれた非常に有用なWebアプリケーションである即吊キャプチャーでも説明が足りていない。
 このWebアプリケーションでは、次のレベルの説明が必要だと考える。

使用するTwitter権限は次のとおりです。
・ご要望の石版をぶん投げツイートします。(ツイートする)
使用しないTwitter権限は次のとおりです。
・タイムラインのツイートを見る
・フォローしている人を見る、新しくフォローする
・プロフィールを更新する
権限自体を要求しないTwitter権限は次のとおりです。
・ダイレクトメッセージを見る
・Twitterのパスワードを見る

「APIがあるから叩いているだけ、仕様通りなのだからその仕様を上書きする説明はいらない」とするエンジニアは滅びれろ。

広告
Twitterのアプリケーション認証の権限はどんぶり仕様過ぎる