テナントへのリクエストがレート制限されるタイミングを確認する
テナントログ
api_limit
api_limit イベントは、Authentication または のグローバルレート制限バケットでレート制限を超過した直後にトリガーされます。同じレート制限バケットで、消費されたリクエストトークン数が 1 分後も 80% を超えたままの場合は、2 件目の警告ログが生成されます。別のレート制限バケットでレート制限を超過した場合は、新しい api_limit イベントが生成されます。これにより、どのレート制限設定で API 呼び出しが発生しているかを特定しやすくなり、根本原因を診断するための重要な第一歩となります。
api_limit_warning
api_limit_warning ログは、顧客のリクエストレートが特定のレート制限バケットのリクエストトークンの 80% に達したときにトリガーされます。同じレート制限バケットで、使用されるリクエストトークン数が 1 分後も 80% を上回ったままである場合、2 件目の警告ログが生成されます。別のレート制限バケットで 80% のしきい値を超えた場合は、新しい api_limit_warning ログが作成されます。
appi (Public Performance Burst のみ)
appi ログは、Public Performance Burst アドオンを使用している顧客テナントが、Authentication API の継続レート制限である 100 RPS を超過し、48 時間のバースト割り当てのうち 1 分間分を消費した場合に生成されます。15 分後に再度リクエストレートが 100 RPS の継続リクエスト制限を超えると、2 件目の appi ログが生成されます。
API レスポンス
SDK のエラー処理
エラーページ
error_description クエリ文字列パラメーターに含まれたカスタムエラーページ URL にリダイレクトされます。詳細については、影響を受けるエンドポイント および JSON エラー の説明を参照してください。
テナントでレート制限が発生している理由を確認する
テナントへのリクエストがレート制限されるタイミングを予測する
x-ratelimit-limit: 利用可能なリクエストの最大数。x-ratelimit-remaining: バケットに追加のリクエストが補充されるまでに残っている利用可能なリクエスト数。x-ratelimit-reset: バケットに追加のリクエストが加えられる予定時刻を示す秒単位の UNIX タイムスタンプ。
- バースト制限:
1000 - 持続レート制限:
100requests per second(固定ウィンドウ)
- 持続レート制限は、固定ウィンドウで
100 requests per secondです。 - 固定ウィンドウであるため、リクエストのバケットは 1 秒ごとに補充されます。
x-ratelimit-limit: 1000x-ratelimit-remaining: 50x-ratelimit-reset: 1675452600
- テナントでは、その API に対して許可されている 1000 件のリクエストのうち 950 件を使い切っており、追加のリクエストが加えられるまでは残り 50 件しかありません。
- 新しいリクエストは
1675452600、つまり 2023 年 2 月 3 日 19:30:00 UTC に追加されます。 - その時点で新たに 1 件のリクエストが追加されます
レート制限の適用例
1 秒あたりのリクエスト数の例
/ratelimitexample という新しい API を、次のレート制限値で公開したとします。
- バースト制限: 5 リクエスト
- 持続レート制限: 1 秒あたり 10 リクエスト。
- API は 5 個のリクエストトークン、つまりバースト制限と同数のトークン数で開始し、これを超えることはありません。
- 10 個のトークンを持つバケットは、「固定ウィンドウ」を使用して毎秒補充されます。新しいトークンはバケットに追加され、各秒の開始時に満杯まで補充されます。

- T0 - T1sec: エンドユーザーは最初の 1 秒間に 6 回リクエストを送信します。5 回のリクエスト (バースト制限と同数) には
200レスポンスが返されます。6 回目のリクエストには、バケット内に残っているリクエストトークンがないため、429エラーが返されます。 - T1sec - T2sec: Auth0 は 固定ウィンドウ アルゴリズムにより、リクエストトークンのバケットを満杯まで補充します。その結果、7 回目から 11 回目までのリクエストは成功し、12 回目のリクエストではバケットが使い切られているため、
429エラーになります。 - T2sec - T3sec: Auth0 は再度トークンバケットを補充するため、次のリクエスト (13) には
200レスポンスが返されます。
1 分あたりのリクエストの例
/ratelimitexample2 という新しい API をリリースし、次のレート制限値が設定されているとします。
- バースト制限: 5 リクエスト
- 持続レート制限: 1 分あたり 6 リクエスト
- API は 5 個のリクエストトークンで開始します。これはバースト制限と同じです。
- 6 個のトークンが入るバケットは、「固定ウィンドウ」を使用して毎分補充されます。新しいトークンがバケットに追加され、各分の開始時にバケットが上限まで補充されます。

- T0 - T+1min: エンドユーザーは最初の 1 分間に 6 回リクエストを送信します。5 回のリクエストはバースト制限と同数のため、
200レスポンスを受け取ります。6 回目のリクエストは、残っているリクエストトークンがないため、429エラーを受け取ります。 - T+1min - T+2min: 固定ウィンドウアルゴリズムにより、Auth0 はトークンバケットを補充します。その結果、7 回目から 11 回目までのリクエストは成功し、12 回目のリクエストでバケットが使い果たされるため、
429エラーになります。 - T+2min: Auth0 は再度トークンバケットを補充するため、次のリクエスト (13) は
200レスポンスを受け取ります。
その他のシナリオ
エンドユーザーのログインおよびサインアップ API の使用状況
- 認証エクスペリエンス (例: New または Classic Login)
- Authentication Flow (例: Login、Signup、または Change Password)
- Authentication Flow Type (例: Username / Password によるログイン、Social Login によるログイン、既存の Authentication Token がすでに存在する場合のログイン)
Universal Login
| 認証フロー | フロー種別 | Authentication API エンドポイントへのリクエスト |
|---|---|---|
| ログイン | ユーザー名/パスワード チャレンジ* | 5 |
| ログイン | サードパーティのIDプロバイダー (例: ソーシャルログイン、社内ログイン) | 6 |
| ログイン | Auth0 の認証セッションが存在する | 1 |
| サインアップ | ユーザー名/パスワード経由 | 6 |
加算要素
| 修正要素 | 説明 | 追加リクエスト数 |
|---|---|---|
| ID First | 資格情報を要求する前にユーザーを識別します。 | +2 |
| MFA | 多要素認証を追加します。 | ファクターごとに +2 |
| OTP | 認証用のワンタイムパスワード | +2 |
| Enterprise Login | エンタープライズ接続 (例: SAML、OIDC、LDAP) を介した認証。 | +1 |
| Client Credentials | マシン間認証に使用されます。Actions を使用する場合でも、常に適用されます。 | +1 |
Classic login
| 認証フロー | フローの種類 | リクエスト数 |
|---|---|---|
| ログイン | ユーザー名/パスワード チャレンジ | 8 |
| ログイン | サードパーティのIDプロバイダー - 例: ソーシャルログインまたは社内ログイン | 8 |
| ログイン | Auth0 の認証セッションが存在する場合 | 2 |
| サインアップ | ユーザー名/パスワード | 8 |
増加要因
以下の要因により、Classic Login のリクエスト数が増加します。| 増加要因 | 説明 | 追加リクエスト数 |
|---|---|---|
| SMS Authentication Only | SMS を主要な認証方法として使用する場合。 | +7 |
| Native Social Login | ネイティブのソーシャルプロバイダー (例: Google、Facebook) を使用してログインする場合。 | +1 |
| Redirects | 認証中に追加のリダイレクトが発生した場合。 | +1 |