はじめに
空子/情報セキュリティマネジメント担当スマホやパソコンでアプリを使っていると、「Googleアカウントでログイン」「LINEでログイン」といったボタンを目にしたことはありませんか? あのボタンの裏側で動いているのが OAuth 2.0(オーオース 2.0) という仕組みです。
名前だけ聞くと難しそうですが、日常のたとえ話を使えば誰でも理解できます。この記事では、OAuth 2.0 が「なぜ必要なのか」「どう動くのか」「何が安全なのか」をやさしく解説します。
パスワードを渡す危険性 ― そもそもなぜ OAuth が生まれたのか



たとえば、あなたが写真編集アプリを使っていて、そのアプリから Google フォトの写真を読み込みたいとします。もし OAuth がなかったら、写真編集アプリに Google のメールアドレスとパスワードをそのまま教える しかありません。
これはとても危険です。なぜなら、その写真編集アプリがあなたのパスワードを悪用すれば、メールを読んだり、連絡先を盗んだり、何でもできてしまうからです。
OAuth 2.0 は、こうした問題を解決するために生まれました。ひとことで言えば、パスワードを渡さずに、必要な権限だけを安全に渡す仕組み です。
マンションの「合鍵」で理解する OAuth 2.0





OAuth 2.0 の仕組みは、マンションの合鍵にたとえるとわかりやすくなります。
あなた(ユーザー)はマンションの一室に住んでいます。ある日、家事代行サービス(アプリ)に部屋の掃除を頼むことにしました。
このとき、あなたはマスターキー(パスワード)を渡すのではなく、マンションの管理人(Google や LINE などのサービス提供者)に頼んで、「掃除の間だけ使える合鍵」を発行してもらいます。
この合鍵には、次のような制限がかかっています。
- 使える範囲が限定されている ― 玄関と掃除する部屋にしか入れず、金庫や書斎は開けられない(アプリが使える機能を限定できる)
- 有効期限がある ― 数時間で使えなくなる(アクセストークンの有効期限)
- いつでも無効にできる ― あなたが管理人に連絡すれば、すぐに合鍵を使えなくできる(アクセス権の取り消し)
OAuth 2.0 で発行される「合鍵」のことを、専門用語では アクセストークン と呼びます。
OAuth 2.0 の登場人物



OAuth 2.0 の世界には、4 人の登場人物がいます。先ほどのたとえに当てはめると、次のようになります。
| 登場人物 | たとえ | 役割 |
|---|---|---|
| リソースオーナー | あなた(住人) | 自分のデータの持ち主 |
| クライアント | 家事代行サービス | あなたのデータを使いたいアプリ |
| 認可サーバー | マンション管理人 | 合鍵(トークン)を発行する係 |
| リソースサーバー | マンションの部屋 | 実際にデータが保管されている場所 |
Google の場合、認可サーバーとリソースサーバーはどちらも Google が運営しています。
実際の流れをかんたんに追ってみよう



写真編集アプリで Google フォトの写真を読み込む場面を例に、ステップを追います。
ステップ 1 ― アプリが許可を求める 写真編集アプリの画面に「Google アカウントでログイン」ボタンが表示されます。あなたがこれをタップすると、Google のログイン画面に飛びます。
ステップ 2 ― あなたが許可を与える Google の画面に「写真編集アプリが、あなたの Google フォトの写真を読み取ることを許可しますか?」と表示されます。ここで「許可する」を押します。
ステップ 3 ― 合鍵(トークン)が発行される Google が許可を確認し、写真編集アプリに対してアクセストークン(合鍵)を発行します。この合鍵には「Google フォトの閲覧のみ」という制限がついています。
ステップ 4 ― アプリが合鍵を使ってデータを取得 写真編集アプリは受け取ったアクセストークンを使って、Google フォトから写真を読み込みます。メールや連絡先など、許可されていないデータにはアクセスできません。
ここで重要なのは、写真編集アプリはあなたの Google パスワードを一切知らない という点です。アプリが知っているのは、期限付きのアクセストークンだけです。
OAuth 2.0 が安全な理由



OAuth 2.0 が広く使われている理由は、その安全性にあります。
まず、パスワードが第三者に渡らない ことが最大のメリットです。たとえアプリに不具合があったとしても、流出するのはアクセストークンだけであり、あなたのパスワードは守られます。
次に、権限を最小限にできる ことも重要です。アプリに許可する範囲(スコープと呼びます)を細かく設定できるため、「写真は見せるけどメールは見せない」といったコントロールが可能です。
さらに、トークンには有効期限がある ため、万が一トークンが漏れても、時間が経てば自動的に無効になります。加えて、あなた自身がいつでもアクセス権を取り消すこともできます。Google アカウントの設定画面から「サードパーティのアクセス」を確認すれば、どのアプリにどんな権限を許可しているかを一覧でき、不要なものを削除できます。
「認証」と「認可」の違い



OAuth 2.0 は厳密に言うと 認可(Authorization) の仕組みであり、認証(Authentication) の仕組みではありません。
認証とは「あなたが誰であるかを確認すること」、認可とは「あなたに何を許可するかを決めること」です。パスポートで身元を確認するのが認証、ビザで入国を許可するのが認可、とイメージするとわかりやすいでしょう。
「Google でログイン」ボタンで本人確認もしているように見えますが、あれは OAuth 2.0 の上に OpenID Connect(OIDC) という追加の仕組みを組み合わせて実現しています。OAuth 2.0 そのものは、あくまで「合鍵を発行するルール」であることを覚えておくと、より正確に理解できます。
まとめ
OAuth 2.0 は、パスワードを渡さずに、必要な権限だけを安全にアプリへ渡す仕組み です。マンションの合鍵のように、使える範囲と有効期限が決まったトークンを発行することで、あなたの大切なデータを守っています。



「Google でログイン」ボタンを押すたびに、裏側ではこの仕組みが静かに働いています。次にあのボタンを見かけたら、「ああ、今まさに合鍵が発行されているんだな」と思い出してみてください。インターネットの安全を支える、縁の下の力持ちの存在が、少し身近に感じられるはずです。










コメント