https://www.ipa.go.jp/shiken/mondai-kaiotu/gmcbt80000009sgk-att/2022r04h_sc_pm2_qs.pdf\
以下のおすすめ問題の解説となります。
良書。
[企画チームからの要望]
Cさんは、企画チームから要望を受けた。要望は、T社が運営しているメッセージ投稿サイト(以下、T社投稿サイトという)とX社動画サーバとを連携させ、T社投稿サイトの 認証サーバを用いた認証機能、及びT社投稿サイトの投稿サーバへの自動投稿機能をX社動画サーバに追加したいというものだった。この要望に対応することで、T社投稿サイトのアカウントをもつ動画サービスの会員は、T社投稿サイトにログインすればX社動画サーバも利用できる。また、X社動画サーバに動画を投稿すると、”動画の概要”がT社投稿サイトに自動で投稿されるようにもできる。Cさんは、T社投稿サイトとX社動画サーバの連携方法について、F氏に助言を求めた。次は、その際のF氏とCさんの会話である。
F氏:OpenID Connect(以下、OIDCという)を用いれば、T社投稿サイトとX社動画サーバを連携できます。例えば、図10のような流れです。
F氏:認可コードフローの場合、IDトークンは、図10中の(u)で送付されます。IDトークンは、JSON Web Token形式で表現され、ヘッダ、ペイロード、署名の三つの部分で構成されます。署名は、ヘッダとペイロードに対して、T社投稿サイトの認証サーバの秘密鍵を使って作成します。署名アルゴリズムは、ヘッダにおいて指定します。ヘッダ、ペイロード、署名は、それぞれ(v)でエンコードされます。
Cさん:T社投稿サイトでの セキュリティ対策について確認することはありますか。
F氏:ハイブリッドフローを用いる場合、stateパラメタのほか、nonce値を実装しているかを確認すべきです。まず、nonce値を生成し、(w)に含めて送信します。次に、送られてきた(x)に含まれるnonce値を検証することで、攻撃者によるIDトークンの不正利用を防ぐことができます。
Cさん:分かりました。
システム部は、T社投稿サイトと動画サービスとを、OIDCで連携することに決め、X社動画サーバの改修に着手した。
r:X社動画サーバ s認証サーバ t投稿サーバ
- X社動画サーバ
- T社投稿サイトの 認証サーバを用いた認証機能
- T社投稿サイトの投稿サーバへの自動投稿機能
今回追加する機能を整理すると答えは埋まる
u:8
T社投稿サイトの認証サーバ(s)で作成されるのは、図10の⑶認証要求、⑺トークン要求がありますが、IDトークンは⑺が該当し、⑻トークン応答で送付されるのでしょう。
v:base64url
JSON web Token形式のエンコード方式ですが、base64くらいしか選択できないと判断して選んでしまった。
w:認証要求 x:IDトークン
stateパラメタのほか、nonce値を実装しているかを確認すべきです。まず、nonce値を生成し、(w)に含めて送信します。次に、送られてきた(x)に含まれるnonce値を検証することで、攻撃者によるIDトークンの不正利用を防ぐことができます。
APIを使った投稿などをやったことあればわかるかなという内容。