平成27年秋期試験問題 午前Ⅱ 問17

OAuth2.0において,WebサービスAの利用者Cが,WebサービスBにリソースDを所有している。利用者Cの承認の下,WebサービスAが,リソースDへの限定的なアクセス権限を取得するときのプロトコルOAuth2.0の動作はどれか。

  • WebサービスAが,アクセストークンを発行する。
  • WebサービスAが,利用者Cのデジタル証明書をWebサービスBに送信する。
  • WebサービスBが,アクセストークンを発行する。
  • WebサービスBが,利用者Cのデジタル証明書をWebサービスAに送信する。
正解 問題へ
分野:テクノロジ系
中分類:セキュリティ
小分類:セキュリティ実装技術
解説
OAuth2.0は、異なるドメインやプラットフォーム間で、 サードパーティアプリケーションによるHTTPサービスへの限定的なアクセスを可能にするオープンな認可フレームワークです。
17_1.gif
簡単に言うとユーザー本人の認可の下、サードパーティアプリケーションに対してWebサービス側からアクセストークン(委任状のようなもの)が発行され、サードパーティアプリケーションがユーザーに代わりそれを使用してWebサービス(API)にアクセスできるようにする仕組みです。

OAuth2.0では以下の3種類のロール(役)が登場します。
リソースオーナー(resource owner)
リソースサーバ内の保護された情報へのアクセスを許可するエンドユーザーであり、クライアントの利用者のこと。この設問では利用者Cが該当する。
リソースサーバ(resource server)
保護された情報を保持し、Webサービスを提供するアプリケーションのこと。リソースオーナーを認証しクライアントにアクセストークンを発行する認可サーバ(authorization server)の役割を兼ねることが多い。この設問ではWebサービスBが該当する。
クライアント(client)
リソースオーナーの認可を得てリソースサーバにアクセスするサードパーティアプリケーションのこと。この設問ではWebサービスAが該当する。
この設問におけるOAuth2.0のザックリしたフローは次のようになります。
  1. 利用者Cが、WebサービスAにアクセスする。
  2. WebサービスAは、利用者CをWebサービスBにリダイレクトし、認証・認可手続きを促す。
  3. 利用者Cは、WebサービスB上で認証・認可手続きを行う。
  4. WebサービスBは、利用者Cからの認証・認可が得られると、WebサービスAに対してアクセストークンを発行する。
  5. WebサービスAは、アクセストークンなどを含めたHTTPリクエストをWebサービスBに送信する。
  6. WebサービスBは、HTTPリクエストが正当なものであるかを検証し、妥当であればリソースDを含むHTTPレスポンスをWebサービスAに返す。
17_2.gif
したがって、選択肢のうちOAuth2.0の動作として適切な記述は「ウ」になります。

Webサイトにおいて「Twitterでログインする」「Facebookでログインする」などのSNSアカウントでログインする方法を見かけますが、これらは一般的にはOAuth(又はOpenID)を使用して実装されています。

この問題の出題歴


Pagetop