👋 はじめに
Webサービスを開発していると必ず目にする 「OAuth(オーオース)」。
-
「Googleでログイン」
-
「GitHubでログイン」
-
「X(Twitter)でログイン」
こうしたボタンの裏側で動いている仕組みです。
この記事では、
- OAuthって何?
- なぜ必要?
- どう動く?
を図解付きでやさしく解説します。
🔍 1. OAuthとは?
OAuthとは、
「ユーザーの代わりに、他のサービスの 認可 を借りる仕組み」
「GoogleやGitHubに、代わりに本人確認をしてもらう仕組み」
「本人確認はプロ(Google・GitHub)に任せて、その結果だけ借りてくる仕組み」
のようなことです。こんな表現でどうですか。
もっとシンプルに言うと、「Google でログインしていいよ」と許可してもらう方式です。
-
サービスはパスワードを扱わない
-
本人確認は 「Google / GitHub / X など」 が担当してくれる
とても安全な仕組みです。
🔒 2. OAuthは「認証」ではなく「認可」
初心者が最初に混乱するポイントですが、OAuthは本来
-
認証(Authentication)=本人確認
-
認可(Authorization)=操作の許可
のうち 認可 の仕組みです。
🧠 でも「なにを誰が誰に認可しているの?」が混乱ポイント
これを正確に分解するとこうなります:
🧍 ユーザー
→ Google に「このアプリに私の情報を教えてもいいよ」と 許可 する。
🖥️ Web アプリ(クライアント)
→ Google に「ユーザーの許可をもらったので、認可コードをください」と 要求 する。
🟦 Google(認可サーバー)
→ 「よし、ユーザーに許可されたから認可コードをWebアプリに発行します」
→ その後アクセストークンを発行する。
🔁 認可の流れを超シンプルにすると…
① Webアプリ → Google
「ユーザーの情報にアクセスする許可をください」
② Google → ユーザー
「このアプリに情報を渡していいですか?」(許可画面)
③ ユーザー → Google
「はい、いいですよ」ボタン
④ Google → Webアプリ
「OK!この“許可”の証拠(認可コード)を渡します」
つまり本質的には:
-
ユーザーがアプリに許可を与える
-
Googleがアプリに“ユーザーデータにアクセスしていいよ”と 認可 を与える
という2段階構造になっています。
🎯 3. OAuthが使われる理由
✔️ ① パスワードを扱わずに安全
サービス側はユーザーのパスワードを保存しない。
パスワードの漏洩リスクが圧倒的に減ります。
✔️ ② 外部サービスの信頼を利用できる
ユーザーは Google や GitHub でログインできる安心感があります。
✔️ ③ ユーザーが便利
新しいパスワードを作らずに済み、ボタンひとつでログインできます。
🏠 4. OAuthを生活の例で理解しよう
▼ マンションの “管理人が本人確認してくれる” イメージ
もっとシンプルに考えると、アプリがユーザーの身元を直接確認するのではなく、Google(管理人)に本人確認を任せる イメージです。
-
住 民:「アプリさんこんにちは。僕だけど入ってもいい?」
-
アプリ:「管理人さん、この人は住民ですか?」
-
管理人:「この人は本物の住民ですよ」
-
アプリ:「OK、通ってどうぞ」
これが OAuth の概念。
🔁 5. OAuthの流れ(図解)
📘 Authorization Code Flow の全体像
ポイントは
-
認可コード → トークンをもらうための「引換券」
-
アクセストークン → ユーザー情報にアクセスする鍵
という流れです。
🔑 6. OAuthで使われる3種類のトークン
🔹 認可コード(Authorization Code)
アクセストークンをもらうための短命で安全な「引換券」。
🔹 アクセストークン(Access Token)
ユーザー情報を取得するための鍵。
🔹 リフレッシュトークン(Refresh Token)
アクセストークンの更新時に使用する。
アクセストークンは期限が短いため、期限が切れたときに使用し、サーバーにアクセストークンを再発行してもらう。
長寿命なので厳重な管理が必要。
🧭 7. OAuthの方式(Grant Type)
✔️ Authorization Code Flow(最も一般的)
Webアプリやサーバーアプリで使われる標準。
✔️ Authorization Code Flow + PKCE(現代の主流)
-
SPA(React)
-
モバイルアプリ
など、フロントエンド中心のアプリで強く推奨されます。
いま新しく OAuth を実装するなら これ一択 です。
⚠️ 8. OAuthログインの注意点
🔐 HTTPSは必須
トークンが盗まれると危険だから。
🎯 リダイレクトURLの設定が重要
GoogleやGitHub側に登録されていないURLを使うとエラーになる。
🔄 外部サービスの仕様変更に注意
Google、Facebook は仕様変更が時々あるので注意が必要です。
📝 9. まとめ
この記事では、OAuthの次のポイントを解説しました。
-
🌟 OAuth=外部サービスに本人確認を任せる仕組み
-
🔐 パスワードを扱わないため安全
-
🎉 ユーザーが便利になる
-
🔄 認証ではなく認可
-
🧭 Authorization Code Flow + PKCE が現代の標準
-
👀 「Googleログイン」はOAuthの典型例
OAuthは最初こそ難しく感じますが、
「Googleが代わりに本人確認してくれる仕組み」
と理解すれば一気にイメージが掴めます。
🏁 10. さいごに
最後までご覧いただきありがとうございました。これからもいろいろな初心者向けの記事を作成していきますでの、よろしくお願いします。
よかったら他の記事もご覧いただけると嬉しいです。今後もよろしくお願いいたします。