プロトコルOAuth 2.0の動作|情報処理安全確保支援士 平成27年 秋期午前Ⅱ試験 問17
出典:平成27年秋期 午前Ⅱ 問17
分野:セキュリティ / セキュリティ実装技術
OAuth 2.0において,WebサービスAの利用者Cが,WebサービスBにリソースDを所有している。利用者Cの承認の下,WebサービスAが,リソースDへの限定的なアクセス権限を取得するときのプロトコルOAuth 2.0の動作はどれか。
- ア:WebサービスAが,アクセストークンを発行する。
- イ:WebサービスAが,利用者Cのディジタル証明書をWebサービスBに送信する。
- ウ:WebサービスBが,アクセストークンを発行する。
- エ:WebサービスBが,利用者Cのディジタル証明書をWebサービスAに送信する。
TSUNAGARU-ADVICE
まず押さえたいこと
OAuth 2.0は、利用者の承認に基づいて、あるWebサービスに対して別のWebサービス上のリソースへ限定的なアクセス権限を与える仕組みです。このとき、リソースを管理する側がアクセストークンを発行することで、パスワードそのものを渡さずに権限を委譲できます。
迷ったときの判断軸
OAuth 2.0では、WebサービスAはアクセスを受ける側ではなく、利用者の承認を得てリソースへアクセスするクライアント側です。アクセストークンは、リソースを管理するWebサービスB側の認可サーバが発行します。また、デジタル証明書を利用者間で送る仕組みではありません。誰がリソースを持ち、誰がトークンを発行するかを整理して判断しましょう。
科目Bにつなげるために
科目Bでは、OAuth 2.0・アクセストークン・認可サーバ・リソースサーバ・クライアントなどの役割を図や事例から読み取る問題が考えられます。認証と認可を混同せず、利用者の許可に基づいて、どのサービスへどの範囲の権限を委譲しているのかを追えるようにしておきましょう。
OAuth 2.0は、利用者のパスワードそのものを第三者のWebサービスに渡すことなく、アクセストークンを使って限定的なアクセス権限を与えるための仕組みです。
この設問では、OAuth 2.0の役割を次のように整理できます。厳密には「認可サーバ」という役割もありますが、この問題ではWebサービスB側がその役割も担うものとして考えます。
(Resource Owner)
(Resource Server)
(Client)
処理の流れは次のようになります。
つまり、アクセストークンを発行するのは、アクセスする側のWebサービスAではなく、リソースを管理するWebサービスB側の認可サーバです。
したがって、ウが適切です。
❌他選択肢が誤りの理由ア:WebサービスAが,アクセストークンを発行する。
⇒WebサービスAはアクセストークンを受け取って利用するクライアントです。アクセストークンを発行するのは、WebサービスB側の認可サーバです。
イ:WebサービスAが,利用者Cのディジタル証明書をWebサービスBに送信する。
⇒OAuth 2.0では、利用者のデジタル証明書をクライアントからリソースサーバへ送信して権限を与える仕組みではありません。利用者の認可に基づいて発行されたアクセストークンを使用します。
エ:WebサービスBが,利用者Cのディジタル証明書をWebサービスAに送信する。
⇒OAuth 2.0でWebサービスB側からWebサービスAへ渡されるのは、利用者Cのデジタル証明書ではなく、限定されたアクセス権限を示すアクセストークンです。