質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
JWT(JSON Web Token)

JWT(JSON Web Token)とは、JSONをベースとしたアクセストークンの仕様。電子署名付きのURL safeなJSONのことを指します。電子署名が付いているため、改ざんをチェックできる点がメリットです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

OpenID

OpenIDは、様々なWebサイトで 1つのID情報のみで認証が可能にするサービスです。

Q&A

1回答

2944閲覧

OpenIdにおけるIDトークン(JWT)の有効期限の存在価値

ixa

総合スコア5

JWT(JSON Web Token)

JWT(JSON Web Token)とは、JSONをベースとしたアクセストークンの仕様。電子署名付きのURL safeなJSONのことを指します。電子署名が付いているため、改ざんをチェックできる点がメリットです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

OpenID

OpenIDは、様々なWebサイトで 1つのID情報のみで認証が可能にするサービスです。

0グッド

2クリップ

投稿2021/08/05 04:51

OpenIdで利用するIDトークンにはJWTのexp項目として有効期限が設定されているかと思うのですが、この有効期限は設定することでどういったメリットが得られるのでしょうか?
無かった場合に、どういった問題が発生しうるか等の実際の事例も含め、具体的に教えて頂けると幸いです。
自分が調べた限りだと、「JWTが漏洩した際の悪用を防げる」という曖昧な回答がほとんどだったのですが、自分の考えでは特に悪用を防ぐ効力は無いと考えています。
理由としては、そもそもこの有効期限を検証することは任意であって、実際には有効期限が切れていた場合でも中の値(ユーザー識別子等)の情報を取り出し、利用(悪用)することは可能なためです。

ご回答の程よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

有効期限内であればJWTの情報のみで認証状態とできるため、認証・認可サーバーに問い合わせやデータベースアクセスすることなく、低負荷で認証状態の確認が可能というメリットがあります。一方、JWTのみでは厳密なログアウト処理等ができないことから、有効期限は短めに設定することが推奨されます。
有効期限が「ない」場合の仕様解釈、実装は3通り考えられます。

  1. JWTの期限を無期限とする
  2. JWTにデフォルトの有効期限(例えば30分)を適用する
  3. JWTは一回限りのものとして、アクセスのたびにリフレッシュトークンによりIDトークンを再生成する

1.は前者はセキュリティ的に許容できず、3.は負荷が高すぎて現実的でないと思います。2.は実質的に有効期限は「ある」ということですね。

実際には有効期限が切れていた場合でも中の値(ユーザー識別子等)の情報を取り出し、利用(悪用)することは可能なためです

JWTの場合、中身を見ることは可能ですが、ユーザー識別子だけではサーバー側のAPI等は利用できないため、悪用はできません。ユーザー識別子が見えることは、JWTが漏洩している状況では他の方法でも取得可能なので、許容可能な範囲です。

投稿2021/08/05 13:01

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問