
Câu trả lời của 👹秋田の猫🐱
> 私が考える「バックエンドサーバーでなくパブリッククライアント(SPA/モバイルアプリ)がnonceの生成と検証を行う場合の攻撃/脅威」の具体例です。
ありがとうございます。
認識に相違ありません。
> バックエンドサーバーのプログラムが正しく実装されていれば、nonceと紐付いたセッションを持たない攻撃者は、盗んだIDトークンを使えません。
こちらも認識に相違ありません。
SPA/ネイティブアプリが単体でIDTokenを検証することは可能、しかしその結果を用いてバックエンドと「正しく認証されたユーザーである」ものとして通信なりをしてはいけないのです。
SPA/ネイティブアプリとバックエンド含めたアプリケーション全体をセキュアに保つためには、Public Client から Confidential Client 相当にする、つまりSPAやネイティブアプリをまさにUserAgentとして振る舞わせることが重要になる、という記事を書いたことがあります。
ご説明いただいた内容と同じような話ですよね。
https://zenn.dev/ritou/articles/d26c7861047a2d
なので、前回の説明においても「Implicit Flow = Public Clientのためのもの」という説明をしませんでした。
一方で、Implicit Flowを用いたIDTokenの検証のみであればClient Secretが不要ですよという記事も書いたことがあります。
https://zenn.dev/ritou/articles/2796b1cc8b6d32
これはPublic Clientでも検証可能ですよ、という意味合いですが、Public Clientのみつかえる、Public Clientのための仕組みではないことに注意が必要です。

Gửi tin nhắn ẩn danh
cho 👹秋田の猫🐱
cho 👹秋田の猫🐱