不審なIPのスロットリング
不審なIPのスロットリングは、短時間に頻繁にログインやサインアップを試みるIPアドレスが見つかった場合に、そのIPアドレスからのトラフィックをブロックします。そうすることで、アプリケーションが複数のアカウントを狙った高速な攻撃から保護されます。
不審なIPのスロットリングは、Auth0テナントの作成時にデフォルトで有効になります。Auth0は、IPアドレスからのサインアップ試行またはログイン試行の失敗回数が多いことを検出すると、そのIPアドレスのスロットリングが解除されるまで、後続の試行に対してHTTP 429 Too Many Requestsステータスコードで応答します。
不審なIPのスロットリングを設定する
不審なIPスロットリングは、Auth0 DashboardまたはAuth0 Management APIを使用して構成できます。
[Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]に移動し、[Suspicious IP Throttling(不審な IP スロットリング)]を選択します。
ページ上部にあるトグルを選択して不審なIPのスロットリングを有効または無効にします。

信頼できるIPアドレスにスロットリング制限の超過を許可する
IP AllowListに最大100個の個別のIPアドレスおよび/またはCIDRレンジ(IPv4またはIPv6)を追加することで、不審なIPスロットリングを除外することができます。これらのIPアドレスが上限値を超えても、ブロックされず、テナント管理者にアラートが送られることもありません。
[Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]に移動し、[Suspicious IP Throttling(不審な IP スロットリング)]を選択します。
[IP AllowList]フィールドに、無制限のログインおよびサインアップ試行を許可するIPアドレスおよび/またはCIDRレンジを入力します。IPアドレス・CIDRレンジが複数ある場合は、カンマで区切ります。
応答を構成する
デフォルトでは、あるIPアドレスが不審であるとマークされると、Auth0がテナント管理者宛てにメールを送ります。
高速なログイン・サインアップに対してAuth0がどのように応答すべきか設定することができます。
[Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]に移動し、[Suspicious IP Throttling(不審なIPスロットリング)]を選択します。
[Response (応答)]セクションを見つけます。
[Block Settings(ブロック設定)]セクションで、[Limit high-velocity traffic targeting too many accounts(多数のアカウントをターゲットとする高速トラフィックを制限する)]を有効にして、ログインまたはサインアップしきい値を超えるIPアドレスからのトラフィックを制限します。
[Notifications(通知)]セクションで、[Send notification to account administrator(アカウント管理者に通知を送信する)]を有効にして、IP アドレスがログインまたはサインアップしきい値を超えたときにテナント管理者に自動的にメールを送信します。
[Save(保存)]を選択します。
スロットリングの制限値とレートを設定する
Auth0では、不審なIPのスロットリングをカスタマイズできます。次の設定が変更できます。
1つのIPアドレスに対して許可されるログイン・サインアップ失敗の最大回数。
スロットリング対象となったIPアドレスが新たなログイン・サインアップを試行できるレート。
最大試行回数とスロットリング率、およびその仕組みの詳細については、[How suspicious IP throttling works(不審なIPスロットリングの仕組み)]をお読みください。
[Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]に移動し、[Suspicious IP Throttling(不審なIPスロットリング)]を選択します。
[Detection(検出)]セクションを見つけます。
[Suspicious IP Thresholds(不審なIPしきい値)]で[カスタム(Custom)]を選択します。
[Login Threshold(ログインしきい値)]設定を構成します。
最大試行回数:1つのIPアドレスが失敗できるログイン試行回数(1日当たり)を入力します。この値を超えるとAuth0にブロックされます。
スロットリングレート:新しいログイントークンを付与するレートを入力します。
[Signup Threshold(サインアップしきい値)]設定を構成します。
最大試行回数::1つのIPアドレスからのサインアップ試行回数(1分当たり)を入力します。この値を超えるとAuth0にブロックされます。
スロットリングレート::新しいサインアップトークンを付与するレートを入力します。
[Save(保存)]を選択します。
不審なIPのスロットリングの仕組み
Auth0では、ログインの試行とサインアップの試行が別々にカウントされます。ログイン試行がブロックされているIPアドレスでもサインアップの試行は可能で、サインアップ試行がブロックされているIPアドレスでもログインの試行は可能です。
ログイン試行
Auth0は、1日にログイン試行とログイン失敗の回数が多すぎるIPアドレスを制限します。ログインのスロットリング率によって、Auth0が1つのIPアドレスに対して24時間に容認するログイン試行回数が決まります。たとえば、スロットリング率が100の場合、Auth0は約15分ごとに1回のログイン試行を許容します。
サインアップ試行
Auth0は、1分間にサインアップ試行の合計回数が多すぎるIPアドレスを制限します。たとえば、1つのIPアドレスが50回サインアップしようとした場合、Auth0はそれ以降のサインアップ試行をブロックします。ログインの場合とは異なり、サインアップ試行では失敗は考慮されません。
サインアップスロットリングレートによって、1つのIPアドレスに対して24時間に許容されるサインアップ試行の回数が決まります。たとえばスロットリングレートが72,000の場合、およそ毎秒ごとに新しい試行が許可されます。
不正な要求とスキーマの検証エラー
正しい構造やフォーマットに従っていないログイン・サインアップ要求は、有効な試行とみなされないため、設定したしきい値にカウントされません。
ログインおよびサインアップ要求の詳細については、Auth0 Authentication APIをお読みください。
特殊なケース
不審なIPのスロットリングは、ユーザーのIPアドレスに応じて行われるため、次のようなユースケースではさらなる設定が必要になります。
アプリケーションのバックエンドからリソース所有者のパスワード付与を使用している:この呼び出しでは、ユーザーのIPアドレスが取得されませんが、不審なIPのスロットリングを正常に機能させるために、要求の一部としてユーザーのIPアドレスを送信するようアプリケーションを設定することができます。リソース所有者のパスワードフローと攻撃防御のよくある不具合を回避するサーバーからユーザーのIPアドレスを送信しますを参照:。
同一のIPアドレスから多数のユーザーを認証:複数のユーザーが1つのプロキシを経由すると、制限回数に達してアクセス制限を引き起こしがちです。そのようなプロキシの場合、IPとCIDRレンジをAllowListに含めれば、不意のアクセス制限を防げます。リソース所有者のパスワードフローと攻撃防御のよくある不具合を回避するIPアドレスを信頼するようにアプリケーションを構成しますを参照:。