OAuth(オーオース)とは、パスワードを渡すことなく、別のサービスに自分のデータへの限られた権限を与えるための取り決めのことです。「他のサービスと連携する」ときの裏側で、広く使われています。
現実世界に例えると、OAuthはホテルで渡される、決まった部屋だけ開くカードキーのようなものです。マスターキーを預ける必要はありません。使える場所も期間も限られており、いつでも無効にできます。
OAuth図解
パスワードを渡す場合との違い
| 項目 | パスワードを渡す | OAuth |
|---|---|---|
| 渡すもの | パスワードそのもの | 期限付きの通行証 |
| できる範囲 | 本人と同じすべて | 許可した範囲だけ |
| 取り消し | パスワード変更が要る | 設定画面から解除できる |
| 期限 | なし | あり |
どんな場面で使われるか
身近な例で言うと分かりやすくなります。「Googleアカウントで続ける」を押したとき、写真編集アプリにクラウドの写真を読ませたいとき、予定表を別のサービスへ同期させたいとき。いずれもこの仕組みが動いています。
登場するのは三者
やり取りには三つの立場があります。データの持ち主である利用者、データを預かっているサービス、そして使わせてほしいと頼む側のアプリです。利用者が許可を出すことで、アプリに通行証が渡される、という流れになります。
許可の範囲を選べる
ここが要になる考え方です。「写真を読むことだけ」「予定を追加することだけ」といった具合に、渡す権限を絞れます。許可を求める画面に何ができるかが並ぶのは、このためです。読むだけでよいはずのアプリが書き換えまで求めていたら、疑ってよい合図です。
認証ではなく認可の仕組み
よくある誤解を正しておきます。OAuthは「何をしてよいか」を決める認可の仕組みであって、「誰であるか」を確かめる認証の仕組みではありません。ログインに使うために、この上へOpenID Connectという別の取り決めを重ねる形が取られます。
あとから取り消せる
見落とされがちですが、大切な利点です。各サービスの設定画面には、連携中のアプリを一覧で確認し、解除できる項目があります。使わなくなったアプリの許可が残っていないか、ときどき眺めてみてください。
偽の許可画面に注意
安全面での注意点です。本物そっくりの許可画面を用意し、権限を渡させようとする手口があります。画面の住所欄が本当にそのサービスのものか、求められている権限が用途に見合っているか。この二つを確かめる習慣が守りになります。
現在の版
版の話も押さえておきましょう。いま使われているのはOAuth 2.0で、旧来の1.0とは互換性がありません。2.0は仕組みが柔軟な反面、実装の仕方によって安全性に差が出るため、決められた手順に沿って作ることが求められます。


コメント