Keito

© 2024 Keito

技術ブログとポートフォリオ

認証・認可の基礎に戻る

OAuth 2.0

「Googleでログイン」「Facebookでログイン」の裏側の仕組み
パスワードを共有せずに、安全に情報をやり取りする技術を理解しよう

OAuth 2.0とは?

OAuth 2.0(オーオース2.0)は、あるサービスが別のサービスのユーザー情報や機能を安全に利用するための仕組みです。

最大の特徴は、パスワードを教えずに済むこと。代わりに「許可証(アクセストークン)」を使って、必要な情報だけを共有します。

安全性

パスワードを他のサービスに教える必要がない

制御可能

どの情報を共有するか選択でき、いつでも取り消し可能

期限付き

アクセス権限には有効期限があり、自動的に失効する

身近な例で理解しよう

🏢 オフィスビルの入館証

シナリオ:
大企業のオフィスビルで会議がある時、受付で「訪問者用の入館証」をもらいます。この入館証で特定のフロアだけ入れます。

OAuth 2.0との関係:
OAuth 2.0のアクセストークンは、この入館証のようなもの。限定的なアクセス権限を持ち、時間が来たら無効になります。

🚗 カーシェアリング

シナリオ:
カーシェアで車を借りる時、スマホアプリで予約して、ICカードで車のドアを開けます。車の鍵は渡されません。

OAuth 2.0との関係:
OAuth 2.0も同様に、マスターキー(パスワード)は渡さず、特定の期間・用途で使える権限だけを付与します。

🏨 ホテルのコンシェルジュ

シナリオ:
高級ホテルで、コンシェルジュにレストラン予約を頼む時、クレジットカード情報は教えず、「私の名前で予約して」と頼みます。

OAuth 2.0との関係:
OAuth 2.0では、アプリがユーザーの代わりに動作しますが、パスワードなどの機密情報は知りません。

📮 郵便物の受け取り代行

シナリオ:
不在時に、隣人に「荷物を代わりに受け取って」と頼む時、受領印の権限だけ与えて、家の鍵は渡しません。

OAuth 2.0との関係:
OAuth 2.0も、必要最小限の権限(スコープ)だけを与えて、全権限は渡しません。

OAuth 2.0の動作フロー

各ステップをクリックして詳細を確認してください

ステップ 1 の詳細説明

例:Instagram で「Facebookでログイン」を選択すると、このフローが始まります。

ユーザー

アプリ

認証プロバイダー

(Google等)

トークン

よくある誤解を解消しよう

実際のサービス例

🔍

Google

最も広く使われているOAuth 2.0プロバイダー

利用例:

YouTubeへのログイン
Gmailとの連携
Googleドライブへのアクセス
カレンダー同期
👥

Facebook

ソーシャルログインの代表例

利用例:

Instagramへのログイン
ゲームアプリとの連携
友達リストの共有
写真の共有
🐙

GitHub

開発者向けサービスの認証

利用例:

CI/CDツールとの連携
コードエディタの認証
プロジェクト管理ツール
デプロイサービス
🐦

Twitter/X

SNS連携の定番

利用例:

ニュースアプリへのログイン
ツイートの自動投稿
フォロワー分析ツール
予約投稿サービス

セキュリティのポイント

安全に使うための注意点

公式サイトか確認

ログイン画面のURLが正しいか必ず確認(google.com、facebook.comなど)

許可する権限を確認

「このアプリが要求している権限」を必ず読んで、不要な権限は拒否

HTTPSを確認

URLバーに鍵マークがあることを確認(暗号化通信)

定期的な確認

Google/Facebookの設定で、連携済みアプリを定期的に確認・整理

不要な連携は削除

使わなくなったアプリの連携は、セキュリティ設定から削除

二要素認証を有効化

Google/Facebookアカウント自体の二要素認証を必ず有効に

🎯 まとめ

OAuth 2.0は、パスワードを共有せずに安全に情報をやり取りするための仕組みです。

「Googleでログイン」などの便利な機能の裏側で、
あなたの大切な情報を守りながら、必要な権限だけを安全に共有しています。

正しく理解して使えば、とても便利で安全な技術です。
定期的に連携アプリを確認し、不要なものは削除する習慣をつけましょう。

認証・認可の基礎に戻る