リフレッシュトークン(Refresh Token)は、OAuth 2.0やOpenID Connect(OIDC)の認証フローにおいて使用されるトークンで、主に以下の目的で利用されます:
リフレッシュトークンの概要
- 新しいアクセストークンの取得: アクセストークン(Access Token)は有効期限が設定されているため、期限切れ後もユーザーが再ログインすることなく新しいアクセストークンを取得するためにリフレッシュトークンを使用します。
- 長期間のセッション維持: ユーザー体験を向上させるため、リフレッシュトークンを使うことでシームレスなセッション延長が可能です。
リフレッシュトークンの仕組み
- 発行: ユーザーが認証される際、アクセストークンと一緒に認可サーバーからリフレッシュトークンが発行されます。これには
offline_access
スコープが必要です。 - 保存: クライアントアプリケーションはリフレッシュトークンを安全に保管する必要があります。漏洩するとセキュリティリスクとなるため、厳重な管理が求められます。
- 再発行プロセス:
- アクセストークンの有効期限が切れると、クライアントはリフレッシュトークンを使用して認可サーバーに新しいアクセストークンを要求します。
- 認可サーバーはリフレッシュトークンを検証し、新たなアクセストークン(場合によっては新しいリフレッシュトークンも)を発行します。
利用シナリオ
- モバイルアプリケーション: ユーザーが頻繁にログインし直す必要がないように設計されています。
- セキュリティ強化: アクセストークンの有効期限を短く設定し、リフレッシュトークンで再発行することで、不正利用のリスクを軽減します。
注意点
- リフレッシュトークンは通常長期間有効ですが、認可サーバーによって無効化される場合があります(例: ユーザーの同意取り消しやセキュリティポリシー変更)。
- 漏洩防止のため、安全なストレージと通信方法が必須です。
このように、リフレッシュトークンはユーザー体験とセキュリティの両方を向上させる重要な役割を果たしています。