OAuth・ソーシャルログインとは?Googleでログインする仕組みを簡単解説

まずは、これだけ

ソーシャルログインは、Googleなどの外部サービスに本人確認を手伝ってもらうログイン方法です。
OAuthは、その裏側で「どの情報へのアクセスを許可するか」を安全にやり取りするための考え方です。今のWebでは、主にOAuth2というバージョンが使われます。

利用者がアプリからGoogleなどの認証サービスへ移動し、許可後にアクセストークンでログインする全体像
ソーシャルログイン:外部サービスで本人確認 OAuth:許可とトークンを扱う仕組み

ソーシャルログインは「代理確認」

ソーシャルログインは、「Googleでログイン」「Xでログイン」「GitHubでログイン」のように、すでに使っている外部サービスのアカウントでアプリへ入る方法です。

アプリがあなたのGoogleパスワードを受け取るわけではありません。本人確認は外部サービス側で行い、アプリは「この人は確認済みです」という結果を受け取ってログイン状態にします。

利用者

新しいパスワードを作らず、見慣れた外部アカウントでログインできる。

アプリ

パスワードを直接預からず、外部サービスの確認結果を使える。

外部サービス

本人確認を行い、許可された範囲の情報だけをアプリに渡す。

ログインの途中で「許可画面」が出る

ソーシャルログインでは、アプリから外部サービスのログイン画面へ移動することがあります。そこで本人確認をしたあと、「このアプリにプロフィール情報やメールアドレスの利用を許可しますか」という画面が表示されます。

この許可画面が大事です。利用者が許可すると、外部サービスはアプリへ「許可された範囲で使えるしるし」を返します。アプリはそれを使って、必要な情報を確認したり、ログイン状態を作ったりします。

ソーシャルログインで認証サービスへ移動し、許可画面を確認してトークンを受け取りログイン完了する流れ
利用者はアプリから認証サービスへ移動し、許可したあと、アプリ側でログインが完了します。
1 選ぶ Googleでログインなどを押す
2 移動 外部サービスで本人確認する
3 許可 使ってよい情報の範囲を確認する
4 受け取る アプリがトークンなどを受け取る
5 完了 アプリ側でログイン状態になる

OAuthとOAuth2の関係

OAuthは、外部サービスの情報をアプリに使わせるときの「許可の渡し方」として広く使われる呼び名です。会話の中では「OAuthでログインする」とまとめて呼ばれることも多くあります。

その中でも、現在のWebサービスでよく使われるのがOAuth2です。この記事では、初心者向けにOAuthという大きな名前で全体像を見つつ、実際によく登場するOAuth2を中心に説明します。

ここで少しややこしいのは、OAuth2の中心は本来「認証」ではなく認可だという点です。つまり、「あなたが誰か」を確認する話だけでなく、「このアプリが何をしてよいか」を決める話でもあります。

パスワードログイン、ソーシャルログイン、OAuth2の役割を比較した図解
ソーシャルログインはログイン体験の名前、OAuth2は許可とトークンのやり取りを支える仕組みとして捉えると整理しやすくなります。
認証

利用者が誰なのかを確認すること。ログインでよく出てくる考え方。

認可

そのアプリが、どの情報や操作にアクセスしてよいかを決めること。

OAuth2

認可を安全にやり取りするための仕組み。トークンを使って範囲を表す。

アクセストークンは「許可証」のようなもの

OAuthの流れでは、アクセストークンという言葉がよく出てきます。これは、アプリが外部サービスへアクセスするときに使う「許可証」のようなものです。

アクセストークンには、有効期限や使える範囲が設定されます。たとえば「プロフィールは読めるが、勝手に投稿はできない」のように、必要な範囲だけに絞る考え方が大切です。

範囲を絞る

プロフィール、メールアドレスなど、必要な情報だけを許可する。

期限を持つ

ずっと使える許可証にせず、期限や再発行の仕組みを持たせる。

秘密として扱う

トークンが漏れると、許可された範囲で悪用される可能性がある。

パスキーや多要素認証とは役割が違う

最近はパスキーや多要素認証もよく聞きます。これらは主に「本人確認をどう強くするか」に関わる仕組みです。一方、OAuth2は「アプリにどこまで許可するか」を安全に渡す仕組みです。

実際のサービスでは、外部サービス側のログインにパスキーや多要素認証が使われ、その結果をもとにソーシャルログインが進むこともあります。似た場面に出てきますが、担当している役割は分けて考えると混乱しにくくなります。

パスキー

パスワードの代わりに、端末や生体認証などで本人確認する。

多要素認証

パスワード以外の確認を足して、ログインを強くする。

OAuth2

本人確認後、アプリに渡す許可の範囲をトークンで扱う。

ここまでのまとめ

ソーシャルログインは、Googleなどの外部サービスに本人確認を手伝ってもらい、アプリ側でログイン状態を作る方法です。OAuthはその裏側にある許可の考え方で、今のWebではOAuth2として使われる場面が多くあります。

OAuthは「外部サービスの情報を使う許可を渡す考え方」。OAuth2は「そのために今よく使われる仕組み」と覚えると、全体像をつかみやすくなります。