Dropbox・Evernote・Twitter を使うアプリで見かける「OAuth認証」って何?


AppBank の主任です。
Dropbox や Evernote のデータにアクセスするアプリ・Twitter クライアントに欠かせないのが「OAuth 認証」。アプリのアップデートで「OAuth 認証に対応しました」という形で書かれている事が多いのですが、それが何なのかという説明はありません。
かといって、何か使い勝手が大きく変わる訳でもありません。違いと言えば、最初に起動した際に Twitter などのページへ移動してログインするくらいです。しかし、このちょっとした違いがあなたのアカウントを不正利用から守ることに繋がります。
そこで今回は「OAuth 認証」について、分かりやすく解説いたします。
OAuth認証が使われる場面
Twitter などのウェブサービスにアプリが初めてアクセスする時に、以下のような画面が表示されます。アプリがウェブサービスへのアクセスを許可してほしいからです。
これらの画面はそのウェブサービスのページで、アプリの画面ではありません。また、OAuth 認証を使って Twitter などと連携するウェブサービスでも表示されますが、今回はアプリの場合をメインにご説明します。


なぜOAuth認証を使うの?
「ベーシック認証」に比べ、「OAuth 認証」はアカウントの乗っ取り・不正利用が防ぎやすいからです。
ベーシック認証とは?
ベーシック認証を使っているアプリでは、ウェブサービスへのログインに必要なユーザー名とパスワードをアプリに入力・記録します。そのため、悪意のある開発者が偽アプリを作成して入力されたユーザー名・パスワードを収集し、不正利用することも可能です。
その被害に遭うとユーザー名・パスワードを変更しない限り、無制限にアクセスできるので、勝手に書き込みを行ったり、アカウントを削除することもできます。こういったリスクがあるので Twitter は2010年にベーシック認証によるログインを廃止しました。
OAuth認証が比較的安全な理由
一方で OAuth 認証は、アプリにユーザー名・パスワードを入力しません。ウェブサービスの専用ページに入力して直接ログインするので、ユーザー名・パスワードをアプリが収集することはベーシック認証よりも難しくなります。
また、ウェブサービスがアプリ毎にアクセスする権限を管理しています。アクセスできる機能もベーシック認証より制限されています。万が一不正なアプリがあったとしても、そのアプリのアクセス権を削除するだけで済みます。
OAuth認証の仕組み
既にご紹介したように、ベーシック認証はアプリにユーザー名とパスワードを直接入力し、それをアプリがウェブサービスに送信し、アクセスを許可してもらう認証方法です。では、OAuth 認証はどういった方法でアプリのアクセスを管理するのでしょうか。
まず、アプリ開発者による下準備が必要です。アプリをウェブサービスに登録して、ユーザーがログインする時に、このアプリ専用の OAuth 認証ページを表示するようにプログラムします。このプロセスはベーシック認証にはありません。
次にユーザーが実際に使って、専用の OAuth 認証ページからウェブサービスにログインします。そしてアプリからのアクセスを許可します。すると、ウェブサービスからアプリへ利用許可証が発行されます。これを元にアプリはウェブサービスへアクセスします。
この利用許可証はユーザーが管理できます。例えば Twitter の場合は【設定】→【アプリ連携】で、アプリ・ウェブサービスごとに利用許可を取り消せます。
OAuth認証の注意点
OAuth 認証は比較的安全ですが、不審なアプリ・ウェブサービスのアクセスを許可すれば勝手にデータを操作されたり、サービスが利用されます。OAuth 認証を使う iPhone アプリでアクセス許可を悪用したものは見つかっていませんが、注意は必要です。
OAuth 認証を使う場合は、以下の3つをチェックしましょう。
アクセスを求めるアプリ・ウェブサービスに不審な点がないか
アプリ・ウェブサービスの素性が明らかでない場合は使わないようにしましょう。説明を読み、何をするアプリ・サービスなのかを理解することも重要です。
アプリ・ウェブサービスが求めているアクセス権の中身
アクセス権とは、例えば Twitter なら「タイムラインのツイートを見る」といったデータ・機能へアクセスする権利です。アプリ・ウェブサービスの機能とは関係ないデータや機能へのアクセス権を求めているのであれば要注意です。
定期的にツイート・投稿内容を確認する
OAuth 認証を悪用するサービスは主に身分を偽って被害を拡大しようとします。そのために勝手にツイートや投稿を行うので注意しましょう。
参考(順不同)
- ゼロから学ぶOAuth:第1回 OAuthとは?―OAuthの概念とOAuthでできること|gihyo.jp … 技術評論社
- 「OAuth」とは 日本のユーザー襲った“Twitterスパム”の正体 (1/2) – ITmedia ニュース
- 第147回 便利と危険は裏返し ~ 知っておきたい、OAuthの仕組み ~|テクの雑学|TDK Techno Magazine
- Twitterブログ: ベーシック認証について