保護機能の設定
設定の読み取りと変更は、アプリケーションのAuthentication管理APIのprotection/に対するGETとPATCH、またはコンソールから行えます。
enabledとbreached_password_checkはデフォルトでfalseです。保護機能を有効にすると、上記のモードがデフォルトで適用されます。
ポリシー
vpnとtravelのポリシーはDiditのIP分析を使用します。この照会が利用できない場合、試行は続行されます。これを理由にサインインが失敗することはありません。travelの位置情報は、サインインが完了した後にのみ更新されます。
ブルートフォースとロックアウト
5回の失敗後の動作はbruteのモードによって決まります。
- Block: 再びサインインするには、本人がパスワードをリセットする必要があります。
- Challenge: アカウントが15分間ロックされ、次の試行では追加の証明が必要になります。
- OffまたはLog: ロックされません。
ボットスコアとデバイスシグナル
ランタイム呼び出しでは、以下のヘッダーでデバイスシグナルを送信します。ホスト型ページは自動で送信します。
これらのシグナルは判定のためのコンテキストであり、本人であることの証明ではありません。各サインインイベントにも含まれ、ルールから
event.device.bot_scoreとして読み取れます。
AUTOMATION_FRAMEWORK_DETECTEDは別のチェックです。これは検証セッションにおけるIP・デバイス分析の警告で、検証SDKがブラウザ自動化フレームワークを報告したときに発生します。サインイン時には実行されません。サインイン時の自動化は、上記のbotsポリシーで検出されます。追加確認
追加確認の対象となった試行は、サインインコードの代わりに次のレスポンスを返します。POST protection/complete/で完了させます。
- 本人のメールアドレスに送信された6桁のコードを使う場合は、
{"challenge", "method": "email_code", "code"} - WebAuthnのレスポンスを使う場合は、
{"challenge", "method": "passkey", "response"}
403 {"error": "protection_factor_unavailable"}を返します。
漏洩パスワード
breached_password_check: trueを指定すると、Diditは新規パスワードとリセット後のパスワードを既知の漏洩パスワードと照合します。パスワード自体がどこかに送信されることはありません。漏洩パスワードはpassword_breachedとして拒否されます。サインイン時には、漏洩パスワードはstuffingの一致としてカウントされます。チェックが利用できない場合、パスワードは受け入れられます。
攻撃モード
攻撃を受けている最中は攻撃モードを有効にします。{"duration_hours": 1}(または6、24)を指定したPOST protection/attack-mode/は201を返します。DELETE protection/attack-mode/で早期に終了できます。指定した期間が過ぎると自動的にも終了します。
- すべてのサインアップとサインインでパスキーチャレンジを通過する必要があります。メールコードは受け付けられません。新規サインアップや、パスキーを持たない人は、攻撃モードが終了するまで完了できません。
- VPN、Tor、またはデータセンターのネットワークからのサインアップはブロックされます。
レート制限
すべてのランタイムルートは、アプリケーションごとにIP単位で制限されます。
制限を超えると、リクエストに対して
429が返されます。Retry-Afterヘッダーが送信された場合は、それに従ってください。サインインの試行も1分あたりで制限されます。IPごとに60回、アカウントごとに15回、デバイスごとに30回、アプリケーションごとに1,000回、電話番号のプレフィックスごとにSMSまたはWhatsAppのコードリクエストが20回です。
イベント
各判定は認証イベントとして記録されます。risk_logged、attempt_challenged、attempt_blocked、challenge_passed、challenge_failed、attack_mode_started、attack_mode_endedとして記録されます。イベントには、どのポリシーに一致したかが表示されます。