サイトアイコン PC CAFE パソコン、モバイル活用 プログラミング ピーシーカフェ

OAuth 2.0とは?仕組みから利用例まで、誰でも分かるように解説!

Webサービスやアプリを使っていると、「Googleでログイン」「Facebookで連携」といったボタンを一度は目にしたことがあるでしょう。この便利な機能の裏側で活躍しているのが、OAuth 2.0 (オーオース 2.0) という技術です。

この記事では、OAuth 2.0が一体何なのか、どのような仕組みで動いているのか、そして私たちのデジタルライフをどのように豊かにしてくれているのかを、具体例を交えながら誰にでも分かるように徹底解説します。

OAuth 2.0を一言でいうと?

OAuth 2.0は、「パスワードを教えずに、特定のことだけを許可するためのしくみ(認可)」です。

例えば、あなたがホテルのコンシェルジュに「部屋の掃除だけお願い」と頼むとします。このとき、あなたは部屋のマスターキーを渡すのではなく、「掃除の時間だけ部屋に入れる専用の鍵」を渡すはずです。マスターキーを渡してしまうと、金庫を開けられたり、プライベートなものを見られたりする危険がありますよね。

OAuth 2.0は、これと全く同じ考え方です。あるサービス(例:写真印刷サービス)が、あなたの別のサービス(例:Googleフォト)にあるデータを使いたいとき、Googleのパスワードそのものを写真印刷サービスに教えることなく、「写真データへのアクセスだけを許可する」ための一時的な鍵(アクセストークン) を発行する仕組みなのです。

ポイント: OAuth 2.0は「認証 (Authentication)」ではなく「認可 (Authorization)」の技術です。

OAuth 2.0の仕組み:登場人物と全体の流れ

OAuth 2.0の仕組みを理解するために、まずは4人の登場人物(役割)を紹介します。

そして、これらの登場人物が以下のような流れでやり取りを行います。ここでは最も一般的で安全な「認可コードフロー」という流れを例に見てみましょう。

  1. 【あなた→アプリ】:「Googleフォト連携したい!」と依頼
    • あなたが写真印刷サービス(クライアント)で「Googleフォトから写真を選ぶ」ボタンを押します。
  2. 【アプリ→Google】:「許可をもらってきて」とあなたをリダイレクト
    • アプリはあなたをGoogleの認可サーバーへ移動させます。「このアプリがあなたのGoogleフォトにアクセスしようとしています。許可しますか?」という同意画面が表示されます。
  3. 【あなた→Google】:「OK!」と同意
    • あなたは内容(どの権限を求めているか=スコープ)を確認し、Googleにログインして許可します。
  4. 【Google→あなた(経由でアプリへ)】:「仮の許可証(認可コード)です」
    • Googleは、あなたをアプリのサイトに戻します。このとき、一時的な認可コードというものを付けて返します。
  5. 【アプリ→Google】:「この許可証と引き換えに正式な鍵をください」
    • アプリは、受け取った認可コードを、事前に登録しておいた自分のIDなどと一緒にGoogleの認可サーバーへ直接送ります。(この通信は裏側で行われるため、あなたには見えません。)
  6. 【Google→アプリ】:「どうぞ、これが正式な鍵(アクセストークン)です」
    • Googleは認可コードが正しいことを確認し、アプリにアクセストークンを発行します。
  7. 【アプリ→Googleフォト】:「この鍵で写真データをください」
    • アプリは、受け取ったアクセストークンを使って、Googleフォトのリソースサーバーに「写真データをください」とリクエストします。
  8. 【Googleフォト→アプリ】:「はい、どうぞ」
    • リソースサーバーはアクセストークンが有効であることを確認し、アプリに写真データを提供します。

この流れにより、あなたのGoogleパスワードを写真印刷サービスに一切渡すことなく、安全にサービス連携が実現できるのです。

他にもある!認可フローの種類

上記で紹介した「認可コードフロー」が最も標準的ですが、他にも用途に応じていくつかのフローが存在します。

身近にあふれるOAuth 2.0の利用例

OAuth 2.0は、現代のWebサービスに欠かせない技術として、様々な場面で活用されています。

OAuth 2.0のメリットと注意点

メリット 

注意点 

OpenID Connect (OIDC) との違いは?

OAuth 2.0とよく似た技術に OpenID Connect (OIDC) があります。両者の違いを簡単にまとめると以下のようになります。

OIDCは、OAuth 2.0を拡張して作られています。つまり、「Googleアカウントでログイン」機能は、まずOAuth 2.0の仕組みで認可を行い、その上でOIDCの仕組みを使ってユーザーの身元情報(IDトークン)を取得することで実現されています。

OAuth 2.0は、パスワードを直接やり取りすることなく、安全にサービス間の連携を可能にする「認可」の仕組みです。この技術のおかげで、私たちは様々なサービスをシームレスかつ安全に利用でき、より豊かなデジタル体験を享受できています。

仕組みは少し複雑に見えるかもしれませんが、「必要な許可だけを与えるための一時的な鍵の受け渡し」というコンセプトを理解すれば、その重要性と利便性が見えてくるはずです。次に「〜でログイン」ボタンを見かけたら、その裏側で活躍するOAuth 2.0のスマートな働きがある事を思い出してみましょう。

モバイルバージョンを終了