OAuth2.0の動作|情報処理安全確保支援士 平成29年 春期午前Ⅱ試験 問14
出典:平成29年春期 午前Ⅱ 問14
分野:セキュリティ / セキュリティ実装技術
特定の利用者が所有するリソースが,WebサービスA上にある。OAuth2.0において,その利用者の認可の下,WebサービスBからそのリソースへの限定されたアクセスを可能にするときのプロトコルの動作はどれか。
- ア:WebサービスAが,アクセストークンを発行する。
- イ:WebサービスAが,利用者のデジタル証明書をWebサービスBに送信する。
- ウ:WebサービスBが,アクセストークンを発行する。
- エ:WebサービスBが,利用者のデジタル証明書をWebサービスAに送信する。
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は認証そのものではなく、第三者アプリに限定的なアクセス権限を与える認可の仕組みとして整理しましょう。
OAuth2.0は、利用者のIDやパスワードを別のアプリに渡さずに、必要な範囲だけアクセスを許可するための仕組みです。
たとえば、「WebサービスBに、WebサービスA上の自分のデータを使わせたい」という場合に使われます。このとき、利用者はWebサービスAで認証し、WebサービスBにはアクセストークンが渡されます。
OAuth2.0のポイントは、利用者がWebサービスBにパスワードを渡すのではなく、WebサービスAがWebサービスBにアクセストークンを発行する点です。
アクセストークンは、利用者のパスワードそのものではありません。そのため、WebサービスBにパスワードを預けずに、必要な範囲だけWebサービスAの情報へアクセスさせることができます。
つまり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は、利用者のデジタル証明書を送信する方式ではありません。利用者の認可後に発行されたアクセストークンを用いて、限定されたアクセスを実現します。