よろずやIT
用語辞典

OAuthとは?「Googleでログイン」の裏側の仕組み

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

用語辞典のイラスト

OAuthとは何か

OAuth(オーオース)とは、あるサービスに自分のパスワードを直接教えることなく、別のサービスが持つ自分の情報(の一部)へのアクセスを許可するための仕組みです。「Googleでログイン」「Xでログイン」といったボタンの裏側で、まさにこのOAuthという仕組みが動いています。

なぜパスワードを教えずに済むのか

従来の発想であれば、あるサービスに別サービスの情報を使わせたい場合、素直に考えるとID・パスワードをそのまま伝える必要がありそうです。しかしそれでは、パスワードを預けたサービス側でなりすまし放題になってしまい、大変危険です。

OAuthでは、パスワードの代わりに「特定の範囲だけ利用を許可する、期限付きの合鍵」のようなデータ(トークンと呼ばれます)を発行し、これを連携先のサービスに渡します。パスワードそのものは、発行元のサービス(Googleなど)の外に一切出ない仕組みになっています。

ホテルの「カードキー」に例えると

OAuthの仕組みは、ホテルのカードキーに例えるとイメージしやすくなります。

このように、必要な範囲・期間だけに絞った「合鍵」を発行する点が、OAuthの本質的な発想です。

「Googleでログイン」を押したときの大まかな流れ

  1. サービスのログイン画面で「Googleでログイン」を選択する
  2. Googleの画面に切り替わり、本人であることを確認する(パスワード入力はここだけで行われる)
  3. 「このサービスに、氏名やメールアドレスの共有を許可しますか?」といった確認画面が表示される
  4. 許可すると、Googleから連携先のサービスへトークンが渡され、ログインが完了する

途中でパスワードの入力を求められる画面が、常にGoogleなど発行元のドメインであることを確認する習慣も、なりすましサイトを見分けるうえで役立ちます。

利用者にとってのメリット

「ログインできない=パスワードが違う」とは限らない

OAuth関連で分かりにくいのは、「ログインできない=パスワードが間違っている」とは限らないことです。例えば「Googleアカウントでログインする」という仕組みを使っている場合、実際にはサービス側がGoogleに「この人を認証していいですか」と確認して、その結果を受け取っています。そのため、サービス側・Google側・権限設定など、複数の場所を見る必要が出てきます。企業のシステム連携でも、「認証は成功しているのに、その後の処理だけ失敗する」という切り分けの難しいケースがあります。OAuthは「ログイン方法」とだけ考えると分かりにくいですが、「本人確認を別のサービスにお願いする仕組み」と考えると理解しやすいと思います。

まとめると

OAuthは、パスワードそのものを渡すことなく、必要な範囲だけを区切った「合鍵」で安全にサービス同士を連携させる仕組みです。「Googleでログイン」のようなボタンを見かけたら、裏側でこうした仕組みが働いていることを思い出してみてください。

参考

※ 内容は変化することがあるため、最新の情報は各サービスの公式ヘルプもあわせてご確認ください。

あわせて読みたい:SSO(シングルサインオン)とは

PRフロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識 【電子書籍】[ 平野昌士 ]

フロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識 【電子書籍】[ 平野昌士 ]

¥2,970

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.「Googleでログイン」を使うと、そのサービスに自分のGoogleパスワードが伝わってしまいますか?

A.いいえ。OAuthの仕組みでは、パスワードそのものはGoogleのサーバーから外に出ません。連携先のサービスに渡されるのは、パスワードとは別の「合鍵」にあたる情報だけです。

Q.「Googleでログイン」の連携を後からやめることはできますか?

A.はい。GoogleアカウントやXアカウントなどの設定画面には「連携済みのアプリ」を確認・削除できるメニューが用意されており、そこから合鍵の発行を取り消すことができます。

関連記事

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。