Twitter Access Level

なんかちょっと気になったので調べた。

事の発端は「診断君」というTwitter連携アプリの騒ぎ。

あらかじめ言っておきますが、実際「診断君」は変な挙動をしているらしいです(まとめを眺める限り)。

擁護する気なんて全然無いです。怪しいアプリケーションは許可しない。が一番だと思います。

さて、前置きは兎も角、Access Levelについての解説。

なお自分はTwitterのAPIに関してExpertでもなんでもないので、外してたら すいません。

TwitterのAccess Level

TwitterのAPIをOAuthを使って行う場合、Twitter側が持っているユーザに関する情報等に対して「Applicationがしても良い事」というのを設定します。

これをAccess Levelと言います。

現状私の調べた限りではこの要求は3段階しかありません。

  • Read Only
  • Read Write
  • Read Write and Direct Messages

Request Token

アプリケーションはTwitterに対して「私が このユーザのこういう情報を使える・操作できるようにしてください」と要求を出します。

これをRequest Tokenの取得と言います。

この要求をTwitterが受け取ると「このアプリは こんな事するアプリケーションですけど良いですか?」という確認画面を「Twitter側が」出します。

この画面に対してApplication側は「アプリケーションの詳細」「アイコン画像」ぐらいしか手が出ません。

確認画面

Request Tokenを取得するときの画面は上の指定するAccess Level毎に決まります。

以下はRead Onlyのときの画面。

許可されていることはタイムラインのツイートを見るのと、フォローしている人を見る事が出来ます。

アプリケーションは(ある意味アプリケーションを作っている人は)、あなたのタイムラインを見たり、フォローしている人を見ることができるわけです。

これだけだとあまり出来る事は ないですね(^^;

続いてRead Writeはこちら。

三つしか増えないんですけど、気になる項目がありますよね。

「プロフィールを更新する」

「新しくフォローする」

「ツイートする」

この権限をもらうと、アプリケーションは「あなたのユーザアカウントを使って」上の三つをする事が出来るようになります。

この権限があると自動ツイートさせたり、アプリケーションを使った結果などを「あなたのツイートとして」TL上に出すことが可能になります。

※ ちなみに、Web上でツイート画面を出すだけなら(ユーザにツイートの操作をさせる事になります)、こんな権限を使わなくてもTwitter側に全部まかせてしまう事も可能です。

※ 結構ニュースサイトとかのTweetはこの仕組みが多いと思う。

次は最上位。Read Write and Direct Messages

出来ないのはパスワード変更だけ。それ以外は全部出来る。

気になるあの子に送ったDMも、飲み会の連絡DMも アプリケーションは見ることが出来ます。

画面に表示されている一覧だけだと分かりませんけど、一般的なクライアントアプリケーションが使ってる権限なので、DMを出すことも出来るはずです(自分は試してみてないですが、、、。すいません)。

アプリケーションが要求するアクセス権

ここまで見てきた様に、現状、「プロフィールを更新する権利なんていらないんですけど、、、」とアプリケーション開発者側が思っても、細かく権限を指定する事はできないんです。自分が確認した限り(弱気である)。

以下はRequest Tokenを出すためのTwitter APIのドキュメント。

ここではオプションとして アクセス権限を read もしくは write として指定する事ができます。

以下はTwitter側のApplication管理画面にある設定。

これはRequest Tokenを実行する際にDefault値の設定。

この通り、最低でもRequest Tokenを要求する(確認画面をTwitterに出してもらう)タイミングではこのAccess Levelの3段階以上の細かい指定をする方法は無いと思います。

確認の仕方

さて、では実際にアプリケーションがどういう権限を要求しているのかを確認する方法です。

TwitterにWebでログインして、設定を見ます。

左のペインでアプリ連携をクリック

アプリケーションの一覧に書かれているパーミッションを確認します。

この画面から、アプリケーションのアクセスを取り消すこともできます。

なお、アプリケーションが途中でAccess Level設定を変えたりした場合でも、ユーザが最初に許可した権限でしかアクセスは出来ません。

再度、確認画面を出して(Request Tokenを取得しなおして) ユーザがそれを許可する事で権限が変更されることになります。

結論:自衛の方法

そんなこんなで結論になりますが。

本当に、本当に、Write権限を必要とするApplicaitonの場合、たとえ不要であっても「プロフィールの更新」「新しいフォロー」の権限はついてまわります。

「Write権限が本当に必要なアプリケーション」であれば、「プロフィールの更新」「新しいフォロー」があるから「こいつはMalwareだ!!!!」と決めつけることはできません。

って事で「じゃー、悪いアプリケーションかもしれないのを どうしたら判断できるの?」という話なのですが、

  • Write権限が本当に必要かどうかを考える
  • DMまでアクセスする権限はクライアントアプリぐらいで通常は不要

ぐらいしかないんじゃないかと。

あとは信用するかしないかだけと思います。変なことになりたくなければ、怪しいアプリケーションは使わない方が良いでしょう。

怪しいアプリケーションを追加しちゃったら、人に迷惑かける前に さっさとアプリケーションのアクセスを取り消してしまいましょう。

って事で、Twitterのアクセス権限についての話でした。