【真面目版】OAuth 2.0とは?初心者向けに「合鍵」の例でやさしく仕組み解説

目次

はじめに

空子/情報セキュリティマネジメント担当

スマホやパソコンでアプリを使っていると、「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 でログイン」ボタンを押すたびに、裏側ではこの仕組みが静かに働いています。次にあのボタンを見かけたら、「ああ、今まさに合鍵が発行されているんだな」と思い出してみてください。インターネットの安全を支える、縁の下の力持ちの存在が、少し身近に感じられるはずです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITTIのアバター ITTI 運営長

ITTI運営長
調べものと学ぶことが止められなくなり、現在は以下の4ブログを運営中:
・DXブログ(今ここ!)
・CODEブログ
・INFRAブログ
・XRブログ

保有資格:ITパスポート
目標資格:情報処理安全確保支援士(学ぶこと多すぎて道のりは遠いですが、毎日コツコツ進めています…泣)

ブログでは、実務経験と最新技術を掛け合わせて、読者の「わかりにくい」を「わかる!」に変える記事を発信中!
最終目標は、これらの知識を活かして「ドラえもんのような万能AI」を開発すること(AIを副運営長任命が待ち遠しい!)。
DX・CODE・INFRA・XRに興味ある方、気軽にX(@llEqmDGOYZ4258)でDMください。一緒に学びましょう!

公務員のキャラがDXを解説!?パロディのブログ『ITTI DX』、発信中!

ITTI DXは企業の安心と持続をサポートするDXを特化したブログ

コメント

コメントする

CAPTCHA


目次