リフレッシュトークン:動作とライフサイクル
リフレッシュトークンのアクター、エントリポイント、状態、遷移、回復経路、メッセージ、およびエッジケースを定義します。このリファレンスは採用境界、障害時の動作、および観測可能な証拠を固定しつつ、環境固有の制限は設定可能なままにします。
パッケージステータス: 人間によるレビュー準備が整ったリファレンスコンテキストです。契約およびテストシナリオは完了していますが、採用実装がこれらを通過したという主張はありません。
決定
リフレッシュトークンについては、明示的な保証を伴うサーバーサイドの認証情報およびセッションライフサイクルを採用します。可視化された状態、可能な限り可逆的な選択、入力の保持、およびアクセス可能な回復を備えた決定論的なユーザージャーニーを定義します。このUXブロックは特に動作とライフサイクルに焦点を当てています。このパッケージはリファレンス契約であり、採用チームは自環境の証拠に基づいて数値制限、プロバイダー、管轄区域、および運用責任者を選択する必要があります。
範囲
- リフレッシュトークンのアクター、入力、出力、状態、ポリシーまたはスキーマバージョン、およびこのUXブロックの動作とライフサイクルに必要な外部に見える結果。
- 主要および代替インターフェース、バックグラウンド作業、キャッシュ、統合、サポート経路、および同じ境界を検証できる証拠。
- リファレンスを安全に適用するために必要な採用固有の設定、展開、回復、および検証の責任。
このブロックの外側
- すべての採用者に対して普遍的なベンダー、フレームワーク、管轄区域、数値閾値、保持期間、またはサービスレベル目標を選択すること。
- パッケージ化されたシナリオが下流の実装で実行されたことや、このリファレンスが法的、セキュリティ、またはアクセシビリティ認証を付与することを主張すること。
契約
- 保護された認証情報のみを保存し、署名および回復用の秘密鍵をローテーションし、認証情報をURL、ログ、分析、サポートビューから除外する。
- 発行、使用、有効期限切れ、取り消し、回復、およびリプレイ処理を名前付きの主体および意図されたアクションに紐づける。
- 列挙耐性のある公開レスポンスを返しつつ、サポートおよび不正利用対応のために十分な内部理由および相関データを保持する。
- 主体、デバイス、認証器、リスク、またはセッション状態の変更後に敏感なアクションを再評価し、古いログインを永遠に信用しない。
- 実際に作業が保留中の間のみ進行状況を表示し、ユーザーの確定した意図を隠すことなく重複アクティベーションを防止する。
- 検証、許可、接続、競合、および致命的失敗を区別する平易でアクション固有のメッセージを使用する。
- 各リフレッシュ認証情報を発行者、クライアント、主体、セッションまたは付与ファミリー、スコープ、保証、発行および有効期限、デバイスコンテキスト、および取り消し状態に紐づけて保護された状態で保存する。
- 使用時にローテーションを行い、リプレイを検出して影響を受けたファミリーを取り消し、トークンをログやURLに決して露出させず、ログアウト、パスワード変更、同意撤回、非アクティブ状態、およびプロバイダー障害を定義する。
- 動作とライフサイクルのバリアントについては、この宣言された境界を強制する:リフレッシュトークンのアクター、エントリポイント、状態、遷移、回復経路、メッセージ、およびエッジケースを定義する。
実装ガイダンス
- 最長、空、遅延、オフライン、拒否、および支援技術パスをプロトタイプ化してから、ハッピーパスのレイアウトを確定する。
- フレームワークやベンダーの詳細を選択する前に、リフレッシュトークンの入力、出力、アクター、状態、不変条件、副作用、および証拠をモデル化する。
- 適用されるリフレッシュトークン契約またはポリシーバージョンをマテリアル状態と共に保存し、マイグレーション、リプレイ、およびサポートの判断が帰属可能な状態にする。
- 制御された展開の背後にパスを導入し、期待される結果と観測された結果を比較し、採用証拠が完了するまでテスト済みの回復ルートを維持する。
障害処理と安全策
- 認証証拠が欠落、期限切れ、リプレイ、または矛盾している場合はアクションを拒否し、レート制限された回復経路に従う。
- 無効または矛盾したリフレッシュトークン状態は拒否または隔離される。実装は権限を広げたり効果を重複させる値を推測しない。
- リトライは制限され耐久的なIDを使用し、使い果たした後は検査可能な終端状態に達し、責任者が明確である。
検証と運用
- キーボード、タッチ、スクリーンリーダー、狭いビューポート、遅延ネットワーク、および回復可能なサーバーエラーでジャーニーを完了する。
- リフレッシュトークンの成功、拒否、検証失敗、依存失敗、リトライ枯渇、および契約バージョンごとの回復を、機密ペイロードの詳細なしで監視する。
- ポリシー、スキーマ、依存関係、マイグレーション、または境界の変更後に正負のフィクスチャを再実行し、得られた証拠を保持する。
採用の前提
- 例の名前と値は具体的なフィクスチャであり、普遍的なデフォルトではない。採用者は文書化された証拠と所有権を通じてこれらを置き換える。
- 採用システムは認証済みのID、耐久的な操作またはレコードバージョン、制限されたテレメトリ、および変更のための制御されたパスを提供できる。
このパッケージの実行可能に見える例はフィクスチャおよび受け入れ契約です。構造とメタデータを検証するためにコレクションバリデーターを実行し、ターゲットリポジトリでシナリオを翻訳および実行してから実装証拠を記録してください。