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のアクセス権限についての話でした。