情報処理試験を勉強していると、「OAuthって認証?認可?何が違うの?」と混乱しがちです。

「Googleアカウントでログイン」のような画面は日常的に見かけますが、その裏で動いている仕組みがOAuthです。

この記事では、OAuthの意味・動作の流れ・試験での問われ方を、IT初心者にも伝わるようにまとめました。

対象試験と出題頻度

OAuthは、基本情報技術者・応用情報技術者で出題されるテーマです。

「ユーザーのパスワードを渡さずに、外部サービスへアクセス権限を委譲する認可の仕組み」というポイントを確実に押さえておきましょう。

情報処理安全確保支援士ではH27秋期以降繰り返し出題されており、応用情報や基本情報のシラバスにも「OAuth」が明記されています。

詳細をクリックして確認
対象試験:
基本情報技術者
応用情報技術者
出題頻度:
★★★☆☆
ランクB(標準)覚えておくと有利

用語の定義

OAuth(オーオース)とは、一言で言うと

 「ユーザーのIDやパスワードを相手に渡さずに、外部のサービスに対してリソースへのアクセス権限を委譲する認可の仕組み」

 

のことです。現在はバージョン2.0(OAuth 2.0)が主流で、RFC 6749として標準化されています。

 

イメージとしては、「ホテルのフロントで渡される部屋の鍵(カードキー)」です。

 

ホテルに泊まるとき、フロントで本人確認(=認証)をした後、部屋のカードキー(=アクセストークン)を渡されます。このカードキーがあれば、部屋のドアを開けることができます。

しかし、カードキーが使えるのは自分の部屋だけで、他の客室や従業員エリアには入れません。さらに、チェックアウトすればカードキーは無効になります。

 

OAuthはこの仕組みとほぼ同じです。ユーザーが「この外部サービスに、私の写真データだけ見せてOK」と許可すると、認可サーバーが外部サービスにアクセストークン(=カードキー)を発行します。

外部サービスはユーザーのパスワードを知らなくても、トークンを使って許可された範囲のデータだけにアクセスできます。

📊 OAuthの基本情報

項目 内容
正式名称 OAuth 2.0(Open Authorization 2.0)
目的 ユーザーの認証情報を渡さずに、外部サービスへリソースのアクセス権限を委譲する
種別 認可プロトコル(認証プロトコルではない)
標準仕様 RFC 6749(IETF)
身近な利用例 「Googleアカウントでログイン」「Facebookアカウントで新規登録」など

解説

OAuthが登場した背景には、「パスワードを他サービスに渡す危険性」があります。

従来、WebサービスAの情報をWebサービスBで使いたい場合、ユーザーはBにAのIDとパスワードを直接入力していました。

しかし、この方法ではBにパスワードが漏えいするリスクがあり、Bが不正利用してもユーザーは止める手段がありませんでした。OAuthは「パスワードの代わりにアクセストークンを使う」という発想で、この問題を解消しました。

 

「認可」と「認証」の違い

OAuthを正しく理解するうえで、ここだけは確実に押さえてください。

OAuthは「認可(Authorization)」のプロトコルであり、「認証(Authentication)」のプロトコルではないという点です。

📊 認証と認可の違い

比較項目 認証(Authentication) 認可(Authorization)
意味 「あなたは誰か?」を確認すること 「あなたに何を許可するか?」を決めること
例え パスポートで本人確認する 入場チケットで入れるエリアを指定する
OAuthの扱い OAuth単体では行わない OAuthの本来の役割

この区別は過去問で直接正誤を問われているポイントです。

「OAuthは認証プロトコルである」は不正解、「OAuthは認可プロトコルである」が正解——この一語の違いで合否が分かれます。

 

OAuth 2.0の登場人物と動作の流れ

OAuth 2.0には3つの主要な登場人物がいます。それぞれの役割を整理したうえで、動作の流れを追います。

📊 OAuth 2.0の3つの登場人物

登場人物 役割 具体例
リソースオーナー データの持ち主であり、アクセスを許可するユーザー あなた自身
リソースサーバー
(+認可サーバー)
保護されたデータを保持するサービス。認可サーバーを兼ねてアクセストークンを発行する Google、Facebookなど
クライアント リソースオーナーの許可を得て、リソースサーバーにアクセスする外部アプリケーション 「Googleアカウントでログイン」するWebサービス

動作の流れは次の通りです。

(1)ユーザー(リソースオーナー)がクライアントを利用しようとする

→ (2)クライアントがリソースサーバーへリダイレクトし、ユーザーに「この情報へのアクセスを許可しますか?」と確認

→ (3)ユーザーが許可

→ (4)リソースサーバー(認可サーバー)がクライアントへアクセストークンを発行

→ (5)クライアントはアクセストークンを使って、許可された範囲のデータにアクセス

 

ポイントは、この一連の流れの中でユーザーのパスワードがクライアントに渡ることは一切ないという点です。

 

関連プロトコルとの違い

OAuthと混同しやすいプロトコルを整理しておきます。

📊 OAuth・OpenID Connect・SAMLの比較

プロトコル 目的 扱う範囲
OAuth 2.0 リソースへのアクセス権限を委譲する 認可のみ
OpenID Connect(OIDC) OAuth 2.0をベースに「この人は誰か」も確認する 認証+認可
SAML 主に企業向けシングルサインオン(SSO)を実現する 認証+認可(XMLベース)

基本情報・応用情報レベルでは「OAuthは認可、OpenID Connectは認証+認可」という違いを押さえれば十分です。

 

SAMLはSSO(シングルサインオン)の文脈で出題されることが多いので、OAuth とは出題パターンが異なります。深追いは不要です。

 

では、この用語が試験でどのように出題されるか見ていきましょう。

💡 OAuthの核心を3行で

・ユーザーのパスワードを渡さずに、アクセストークンを介してリソースへの限定的なアクセス権限を委譲する仕組み
認可(何を許可するか)のプロトコルであり、認証(誰であるか)のプロトコルではない
・認証も必要な場合はOAuth 2.0をベースにしたOpenID Connectを使う

📌 試験対策のポイント

試験では、OAuth 2.0のフロー詳細(認可コードグラント等)までは問われません。
「認可のプロトコルであること」「アクセストークンをリソースサーバー側が発行すること」「ユーザーのパスワードをクライアントに渡さないこと」の3点を答えられれば得点できます。


試験ではこう出る!

OAuthは、情報処理安全確保支援士の午前II・午後問題で繰り返し出題されているテーマです。

 

基本情報技術者・応用情報技術者のシラバスにも「OAuth」が明記されており(経済産業省の出題範囲資料でも言及)、今後これらの試験区分でも出題が見込まれます。

📊 過去問での出題実績

試験回 出題内容 問われたポイント
支援士
H27秋 午前II 問17
OAuth 2.0において、利用者Cの承認の下、WebサービスAがリソースDへの限定的なアクセス権限を取得するときの動作を問う問題。正解は「WebサービスB(リソースサーバー側)がアクセストークンを発行する」。 ・アクセストークンの発行元はリソースサーバー側
・デジタル証明書の送信ではない
支援士
R5秋 午前II 問14
「OAuth 2.0に関する記述のうち、適切なものはどれか」を問う問題。正解は「認可を行うためのプロトコルであり、認可サーバが利用者の許可を得てクライアントに適切な権限を付与する」。 ・「認可」プロトコルであり「認証」ではない
・本人確認を行う仕組みではない
支援士
R3春 午後I 問1
OAuthを用いたソーシャルログインの実装とセキュリティに関する記述式問題。認可コードの受け渡しやアクセストークンの利用範囲が出題された。 ・OAuthを使ったソーシャルログインの流れ
・認可コードとアクセストークンの区別
支援士
R7春 午前II 問16
R5秋 午前II 問14と同一の問題が再出題された。 ・同上(再出題を確認)

注目すべきは、午前問題では「認可か認証か」を問うパターンが鉄板だという点です。

 

R5秋 午前II 問14では、選択肢に「認可を行うためのプロトコル」と「認証を行うためのプロトコル」が並び、さらに「本人確認をするもの」と「適切な権限を付与するもの」が組み合わされた4択で、正確な区別が求められました。

この問題はR7春にもそのまま再出題されており、出題者が「認可と認証の混同」を狙っていることは明白です。

【頻出キーワード】

  • 認可(Authorization)プロトコル
  • アクセストークンの発行
  • リソースオーナー、リソースサーバー、クライアント
  • パスワードを渡さずに権限を委譲
  • OpenID Connect(認証+認可)との対比

 

試験問題で「利用者の許可を得て、クライアントに対しリソースへの適切な権限を付与する認可プロトコル」という記述があれば、それは「OAuth 2.0」です。

逆に、「アクセスしてきた者が本人であるかどうかを確認する」という記述は認証の話であり、OAuth単体の機能ではありません。

📝 IPA試験での出題パターン

午前問題では2パターンあります。

パターン1は「OAuth 2.0の説明として適切なものを選べ」形式で、「認可 vs 認証」の区別が問われます。

ひっかけ選択肢として「認証を行うためのプロトコル」「本人確認を行う仕組み」が定番です。

 

パターン2は「OAuth 2.0の動作として正しいものはどれか」形式で、「アクセストークンの発行元はリソースサーバー(認可サーバー)側である」が正解の鍵になります。

「クライアント側がアクセストークンを発行する」「デジタル証明書を送信する」は不正解です。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。

Q. OAuth 2.0に関する記述として、最も適切なものはどれでしょうか?

  • A. 認証を行うためのプロトコルであり、認可サーバーがアクセスしてきた者がリソースオーナー本人であるかどうかを確認する仕組み
  • B. 認可を行うためのプロトコルであり、認可サーバーがリソースオーナーの許可を得て、クライアントに対してリソースへの適切な権限を付与する仕組み
  • C. 認証と認可を同時に行うプロトコルであり、IDトークンとアクセストークンの両方を発行して、ユーザーの識別とリソースアクセスの両方を実現する仕組み

正解と解説を見る

正解:B

解説:
OAuth 2.0は認可を行うためのプロトコルであり、認可サーバーがリソースオーナー(ユーザー)の許可のもと、クライアント(外部サービス)に対してアクセストークンを発行し、リソースへの適切な権限を付与します。R5秋・R7春の支援士 午前II問題でも、この記述がそのまま正解でした。
選択肢Aは「認証を行うためのプロトコル」とありますが、OAuthは認可のプロトコルであり、本人確認(認証)は行いません。「認証」か「認可」かの一語の違いが正誤を分ける典型的なひっかけです。選択肢Cは「OpenID Connect(OIDC)」の説明です。OIDCはOAuth 2.0をベースに認証機能を追加した仕組みで、IDトークンによるユーザー識別を行います。OAuth 2.0単体では認証機能を持たない点が決定的な違いです。


よくある質問(FAQ)

Q. 「Googleアカウントでログイン」はOAuthだけで実現していますか?

厳密にはOAuthだけでは「ログイン(=誰であるかの確認)」はできません。実際には、OAuth 2.0をベースに認証機能を追加したOpenID Connect(OIDC)が使われています。Googleが発行するIDトークンでユーザーの識別を行い、アクセストークンで必要なデータへのアクセスを認可する——この二段構えが「Googleでログイン」の実態です。

Q. アクセストークンが盗まれたらどうなりますか?

アクセストークンが漏えいすると、攻撃者がそのトークンを使ってリソースに不正アクセスできてしまいます。対策として、トークンには有効期限が設定されており、短時間で失効するよう設計されています。また、必要最小限の権限だけをトークンに付与する「スコープ」の仕組みや、通信をTLS(HTTPS)で暗号化するなどの防御策が組み合わされています。

Q. OAuth 1.0とOAuth 2.0の違いは?試験ではどちらが出ますか?

OAuth 1.0は署名ベースの認可方式で実装が複雑でした。OAuth 2.0はアクセストークンとTLSの組み合わせにより簡素化され、現在の主流です。IPA試験で問われるのはOAuth 2.0のみです。過去問でも「OAuth 2.0」と明記されて出題されているため、1.0との細かな違いを覚える必要はありません。

Q. OAuthとSAMLは何が違いますか?

OAuthは認可に特化したプロトコルで、主にWebアプリやモバイルアプリ間のAPI連携で使われます。SAMLは認証+認可を行うXMLベースのプロトコルで、主に企業内のシングルサインオン(SSO)に使われます。試験ではOAuthは「外部サービスへの権限委譲」、SAMLは「企業内のSSO」という文脈で出題が分かれるため、この使い分けを頭に入れておくと迷いません。