情報処理安全確保支援士試験 令和6年秋期午前Ⅱ OAuth2.0

出典:令和6年秋期 午前Ⅱ 問16 分野:セキュリティ / セキュリティ実装技術
利用者Aが所有するリソースBが,WebサービスC上にある。OAuth2.0において,利用者Aの認可の下,WebサービスDからリソースBへの限定されたアクセスを可能にするときのプロトコルの動作はどれか。ここでWebサービスCは,認可サーバを兼ねているものとする。
  • ア:WebサービスCが,アクセストークンを発行する。
  • イ:WebサービスCが,利用者Aのデジタル証明書をWebサービスDに送信する。
  • ウ:WebサービスDが,アクセストークンを発行する。
  • エ:WebサービスDが,利用者Aのデジタル証明書をWebサービスCに送信する。
解説

OAuth 2.0では、利用者(リソースオーナー)の認可に基づき、認可サーバがクライアントにアクセストークンを発行します。

この問題では、リソースBはWebサービスC上にあり、WebサービスCが認可サーバを兼ねています。WebサービスDは、発行されたアクセストークンを使って、リソースBへ限定的にアクセスします。OAuth2.0の役割は以下の3つです。

役割 内容
リソースオーナー 保護されたリソースの持ち主。多くの場合は「ユーザー」。例:Google Drive内の自分のファイルを持つユーザー
リソースサーバ 保護されたリソースを管理・提供するサーバ。アクセストークンを確認して、許可されたアクセスだけを通す。例:Google Drive API
クライアント リソースオーナーの許可を得て、リソースサーバにアクセスするアプリ。例:Google Driveのファイルを読み取る外部アプリ

利用者A(リソースオーナー)・リソースB・WebサービスC(リソースサーバ)・WebサービスD(クライアント)の関係は下記の通りです。

OAuth 2.0

したがって、が適切です。

❌他選択肢が誤りの理由
イ:WebサービスCが,利用者Aのデジタル証明書をWebサービスDに送信する。
⇒デジタル証明書を送信する、という点で違います。OAuth 2.0では、認可サーバがアクセストークンを発行してアクセス権限を委譲します。
ウ:WebサービスDが,アクセストークンを発行する。
⇒アクセストークンの発行主体、という点で違います。アクセストークンを発行するのは認可サーバであり、この問題ではWebサービスCです。
エ:WebサービスDが,利用者Aのデジタル証明書をWebサービスCに送信する。
⇒デジタル証明書を送信する、という点で違います。OAuth 2.0では、WebサービスDはアクセストークンを用いてリソースへアクセスします。
TSUNAGARU-ADVICE

まず押さえたいこと

OAuth 2.0では、利用者の認可に基づいて、認可サーバがアクセストークンを発行し、クライアントが限定された範囲でリソースにアクセスできるようにします。

迷ったときの判断軸

この問題では、WebサービスCがリソースを持つサービスであり、認可サーバも兼ねています。そのため、アクセストークンを発行するのはWebサービスDではなく、認可サーバであるWebサービスCと整理すると判断しやすくなります。

科目Bにつなげるために

科目Bでは、OAuth 2.0を「ログインの仕組み」としてではなく、誰がリソースを持ち、誰が認可し、誰がアクセストークンを発行し、誰がそれを使うのかの流れで理解しているかが問われます。リソースオーナー、クライアント、認可サーバ、リソースサーバの役割を切り分けて整理しておきましょう。