多要素認証:データ、API、および運用
多要素認証のストレージ、エンドポイント、イベント、エラー処理、監視、およびサポート手順を定義します。採用の境界と観測可能な障害証拠を固定しつつ、環境固有の制限は設定可能なままにします。
パッケージステータス: 人間によるレビューのための参照コンテキストが準備完了。契約およびテストシナリオは完了していますが、採用実装がこれらを通過したという主張はしていません。
決定
多要素認証については、明示的な保証を伴うサーバーサイドの認証情報およびセッションライフサイクルを採用します。安定した識別、認可、検証、冪等性、互換性、および明示的なエラーを備えたリソースまたはイベント契約を公開します。このパッケージは参照契約であり、採用チームは自身の環境の証拠に基づいて数値制限、プロバイダー、管轄区域、および運用責任者を選択しなければなりません。
範囲
- このAPIブロックで記述される多要素認証のアクター、入力、出力、状態、ポリシーまたはスキーマバージョン、および外部に見える結果。
- 主要および代替インターフェース、バックグラウンド作業、キャッシュ、統合、サポート経路、および同じ境界を行使できる証拠。
- 参照を安全に適用するために必要な採用固有の設定、展開、回復、および検証の責任。
このブロックの外
- すべての採用者に対して普遍的なベンダー、フレームワーク、管轄区域、数値閾値、保持期間、またはサービスレベル目標を選択すること。
- パッケージ化されたシナリオが下流の実装で実行されたことや、この参照が法的、セキュリティ、アクセシビリティの認証を付与することを主張すること。
契約
- 保護された認証情報のみを保存し、署名および回復用シークレットをローテーションし、認証情報をURL、ログ、分析、サポートビューから除外する。
- 発行、使用、有効期限、取り消し、回復、およびリプレイ処理を名前付き主体および意図されたアクションに紐付ける。
- 列挙耐性のある公開レスポンスを返しつつ、サポートおよび不正対応のために十分な内部理由および相関データを保持する。
- 主体、デバイス、認証器、リスク、またはセッション状態の変更後に機微なアクションを再評価し、古いログインを永続的に信用しない。
- メソッドまたはイベントの意味論、必須フィールド、条件付き動作、制限、および機械可読なエラー語彙を文書化する。
- 不明なセキュリティに敏感なフィールドを拒否し、明示的に拡張可能なデータの将来互換性を保持する。
- 要素の登録、検証、命名、交換、回復、ステップアップ、取り消し、および保証レベルを独立してモデル化し、要素変更には最近の認証済み意図を要求する。
- 高影響アクションにはフィッシング耐性のある要素を優先し、リプレイおよびダウングレードを防ぎ、回復コードを保護し、信頼できるチャネルを通じて通知し、弱いチャネルの2つのインスタンスを独立した要素としてカウントしない。
実装ガイダンス
- 新バージョンへの本番トラフィックルーティング前に契約フィクスチャおよびコンシューマーテストを公開する。
- フレームワークやベンダーの詳細を選択する前に、多要素認証の入力、出力、アクター、状態、不変条件、副作用、および証拠をモデル化する。
- 適用される多要素認証契約またはポリシーバージョンをマテリアル状態と共に保存し、マイグレーション、リプレイ、およびサポートの判断が帰属可能であるようにする。
- 制御された展開の背後にパスを導入し、期待される結果と観測された結果を比較し、採用証拠が完了するまでテスト済みの回復ルートを維持する。
障害処理および安全策
- 認証証拠の欠落、有効期限切れ、リプレイ、または矛盾はアクションを拒否し、レート制限された回復経路に従う。
- 無効または矛盾する多要素認証状態は拒否または隔離される。実装は権限を広げたり効果を重複させる値を推測しない。
- リトライは制限され耐久的な識別子を使用し、使い果たした後は検査可能な終端状態に達し、責任者が明確である。
検証および運用
- リトライ、重複リクエスト、条件付き更新、ページネーションまたは再開、無効な認証情報、制限、および依存タイムアウトをテストする。
- 多要素認証の成功、拒否、検証失敗、依存失敗、リトライ使い果たし、および契約バージョンごとの回復を、機微なペイロードの次元なしに監視する。
- ポリシー、スキーマ、依存関係、マイグレーション、または境界の変更後に正負のペアフィクスチャを再実行し、結果の証拠を保持する。
採用の前提
- 例の名前と値は具体的なフィクスチャであり普遍的なデフォルトではない。採用者は文書化された証拠と所有権を通じてこれらを置き換える。
- 採用システムは認証済みの識別、耐久的な操作または記録バージョン、制限されたテレメトリ、および変更のための制御されたパスを提供できる。
このパッケージの実行可能に見える例はフィクスチャおよび受け入れ契約です。
構造とメタデータを検証するためにコレクションバリデータを実行し、ターゲットリポジトリでシナリオを翻訳および実行して実装証拠を記録してください。