OAuth2.0の動作|情報処理安全確保支援士 平成29年 春期午前Ⅱ試験 問14

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

OAuth2.0は、利用者のIDやパスワードを別のアプリに渡さずに、必要な範囲だけアクセスを許可するための仕組みです。

たとえば、「WebサービスBに、WebサービスA上の自分のデータを使わせたい」という場合に使われます。このとき、利用者はWebサービスAで認証し、WebサービスBにはアクセストークンが渡されます。

ロール 意味 この設問での例
リソースオーナー 保護された情報へのアクセスを許可する利用者本人 利用者
リソースサーバ 保護された情報を持ち、サービスを提供する側 WebサービスA
クライアント 利用者の許可を得て、リソースサーバにアクセスするサードパーティアプリ WebサービスB

OAuth2.0のポイントは、利用者がWebサービスBにパスワードを渡すのではなく、WebサービスAがWebサービスBにアクセストークンを発行する点です。

  1. 利用者が、WebサービスBを利用しようとする
  2. WebサービスBは、利用者をWebサービスAの認証・認可画面へリダイレクトする
  3. 利用者は、WebサービスAでログインし、WebサービスBによる利用を許可する
  4. WebサービスAは、利用者の許可に基づいて、WebサービスBにアクセストークンを発行する
  5. WebサービスBは、そのアクセストークンを付けてWebサービスAへHTTPリクエストを送る
  6. WebサービスAは、アクセストークンが正当か確認する
  7. 正当であれば、WebサービスAは必要なリソースをWebサービスBに返す
用語 かみ砕いた意味
認証 利用者本人かどうかを確認すること
認可 どこまでアクセスを許可するかを決めること
アクセストークン 許可された範囲でアクセスするための一時的な許可証

アクセストークンは、利用者のパスワードそのものではありません。そのため、WebサービスBにパスワードを預けずに、必要な範囲だけWebサービスAの情報へアクセスさせることができます。

OAuth 2.0

つまりOAuth2.0は、「利用者の許可をもとに、サードパーティアプリへ限定的なアクセス権を渡す仕組み」です。この設問では、WebサービスAからWebサービスBにアクセストークンが発行される点を押さえると分かりやすいです。

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

❌他選択肢が誤りの理由
イ:WebサービスAが,利用者のデジタル証明書をWebサービスBに送信する。
⇒OAuth 2.0では、利用者のデジタル証明書をサービス間で送信することによって認可を実現するわけではありません。アクセストークンを用いてアクセス権限を委譲します。
ウ:WebサービスBが,アクセストークンを発行する。
⇒アクセストークンを発行するのは、WebサービスA側の認可サーバです。WebサービスBは、発行されたアクセストークンを受け取り、リソースへのアクセスに利用します。
エ:WebサービスBが,利用者のデジタル証明書をWebサービスAに送信する。
⇒OAuth 2.0は、利用者のデジタル証明書を送信する方式ではありません。利用者の認可後に発行されたアクセストークンを用いて、限定されたアクセスを実現します。
TSUNAGARU-ADVICE

まず押さえたいこと

OAuth2.0は、利用者のパスワードをWebサービスBに渡さず、利用者の認可に基づいて、WebサービスBがWebサービスA上のリソースへ限定的にアクセスできるようにする仕組みです。このとき、リソースを管理しているWebサービスA側が、アクセストークンを発行します。

迷ったときの判断軸

OAuth2.0でやり取りする中心は、利用者のデジタル証明書ではなくアクセストークンです。また、アクセストークンを発行するのは、リソースを保護している側、つまりWebサービスA側です。WebサービスBは、そのアクセストークンを使って、許可された範囲だけWebサービスAのリソースへアクセスします。判断するときは、誰がリソースを持ち、誰がアクセス権限を発行するかに注目しましょう。

科目Bにつなげるために

科目Bでは、OAuth2.0・認可サーバ・リソースサーバ・クライアント・アクセストークン・スコープなどを組み合わせて問われることがあります。OAuth2.0は認証そのものではなく、第三者アプリに限定的なアクセス権限を与える認可の仕組みとして整理しましょう。