ブログスマートフォン用の表示で見るブログこの広告は、90日以上更新していないブログに表示しています。対して思うことを書く。用いる伝統的なセッション機構に比べて、あらゆるセキュリティ上のリスクを負うことになります。大口叩いておいて、それに続く理由がほとんどお粗末な運用によるものなのはどうなのか。使わなくてはいけないか?とまで行っていますが、JWT認証のメリットはその実装のシンプルさとステートレスなことにあります。現実的には実際はDB参照とか必要になったりするんですが、ほとんど改ざん検証だけで済むのは魅力的です。トレードオフでリアルタイムでユーザー無効化ができないことくらいですかね。ライブラリなんて使う必要ないほどシンプルだし、トレードオフさえ許容できればむしろ、なぜこれ以上に複雑な認証システム使わないといけないの?複雑さゆえにライブラリが必要になったり、そのライブラリが脆弱性を抱えていたり、そもそも使い方を間違えてしまったりするんでしょう。ブコメでもありましたけど、FirebaseやAuth0でも対応している認証方法です。同じ問題を抱えるについて、セッションの無効化に難ありと以下のケースを出しておりますが。ユーザのパスワード変更時、そのユーザーのアクティブなセッションをすべて無効にし、再ログインを促すアクティブなセッションを無効にする必要ないでしょう。そのために有効期限は短く設定してリフレッシュトークン使うようにするんだから。ユーザのログイン履歴から、ユーザー自身の身に覚えのないセッションを選んで無効にするトークンが盗まれば場合のことですよね?一時的にユーザーをロックして、リフレッシュトークン発行時、ロックされてるユーザーは発行できないようにすればいいでしょう。パスワードリスト攻撃などによってアカウントが乗っ取られたユーザのセッションを無効化する即時は無理ですね。ユーザーを無効化して有効期限が切れるのを待ちましょう。ユーザの能動的な「ログアウト」はセッションを失効させないなにが問題なんだ?と思ったら次にこんなことが書いてありました。何らかの要因でトークンを外部に晒してしまい、そのトークンによるセッションハイジャックを自主的に防ぐためのアクションとしてのログアウトは期待通りに機能しません。この場合、ユーザがログアウトをおこなってもセッションハイジャックは止められません。乗っ取られてるような状況でログアウトすれば回避できると思う人はあまりいないとおもいますが・・・。有効期限を明示的にペイロードに含まない限り、セッションが恒久的に有効になるあたりめーだろ。秘密鍵の管理の問題ですね。JWTに限ったことではありません。いわゆる退職者バックドアになるまた秘密鍵の管理の話ですね。なんで別項目にしたんだろ。そもそも秘密鍵は定期的に更新しなければならないまた(ry。いやちょっと重要なこと言ってるな。なるともちろん、定期的な鍵の更新を考慮しておく必要があります。新旧鍵の併用期間が必要になってきます。いう運用は想定していますか?これはそう。見落としがちだけど、更新時期になってから実装しても遅くない。更新時期になったら、一斉ログアウトされちゃうことくらい気づくだろ。許容で即死など)ただの罠の話。どんな認証機構にも罠はある。JWTはシンプルなのでわざわざalgとか使ったライブラリとか使わなくてよし。(らしい)JWE使うケース、ほとんどないだろ。フラグの保護を受けないこれは著者がおっしゃってるとおり、XSSの脆弱性がある時点で論外。まあチャレンジは大いに結構。結構ですが、あえて危ない橋を渡るというのであれば、ここまで書き連ねたようなことくらいは一通り考え尽くしている必要があるかと思います。実際のところ、考慮が不充分過ぎる実装にばかり出会うのは僕の運が悪いだけなのでしょうか。あぁ、不運にも残念な実装に出会ってしまって起こってたのね。それでさ、JWT認証に使うなってのはどうなのよ。セキュリティリスクあるように見せかけて、ほとんどがかなりポカしてるケースじゃん。時代はパスワードレス認証とかもぼちぼち出始めてるのに。これも仕組みも実装も超簡単。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事JWT認証、便利やん?月別アーカイブはてなブログをはじめよう!auth0さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。