2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

回転型リフレッシュトークンの仕組み

Posted at

回転型リフレッシュトークン(Rotating Refresh Token)は、トークンのセキュリティを高めるために使用される仕組みです。この方式では、リフレッシュトークンが使われるたびに新しいリフレッシュトークンが発行され、古いトークンは無効化されます。これにより、リフレッシュトークンの漏洩による不正使用を防ぐことができます。

回転型リフレッシュトークンの仕組み

  1. 初回発行:
    • クライアントが初回の認証を行うと、アクセストークンとリフレッシュトークンが発行されます。
  2. アクセストークンの期限切れ:
    • アクセストークンの有効期限が切れた場合、クライアントはリフレッシュトークンを使用して新しいアクセストークンを取得します。
  3. リフレッシュトークンの更新:
    • 新しいアクセストークンを発行する際、サーバーは新しいリフレッシュトークンも発行します。この新しいリフレッシュトークンがクライアントに送信されます。
    • 古いリフレッシュトークンは無効化され、以降のリクエストでは使用できなくなります。
  4. 不正使用の防止:
    • サーバーはリフレッシュトークンが一度だけ使用されることを確認することで、不正使用を防ぎます。もし古いリフレッシュトークンが再度使用された場合、不正アクセスの兆候として対処が必要です。

セキュリティの利点

  • トークン漏洩の防止: 回転型リフレッシュトークンの仕組みにより、リフレッシュトークンが漏洩しても一度使われると無効化されるため、攻撃者が使用することが難しくなります。
  • 監視と対策: サーバーは古いリフレッシュトークンの使用を検知できるため、セキュリティ監視の一環として不正行為を素早く特定し、対策を講じることが可能です。

実装のポイント

  • トークンのストレージ: クライアントがリフレッシュトークンを適切に保管する必要があります。Webアプリケーションの場合、Secure Cookieやセキュアなストレージを使用します。
  • トークンの期限管理: サーバー側では、各リフレッシュトークンに期限を設け、長期間未使用の場合は無効化されるようにします。
  • データベースの更新: サーバーは、トークンの回転時に新しいリフレッシュトークンの記録をデータベースに保存し、古いトークンを無効にするためのトラッキングを行います。

この仕組みにより、セッションを安全に保ちながら、クライアントがスムーズにアクセストークンを更新できるようになります。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?