Sequence Analytics は、API エンドポイントへのリクエスト順を時系列で追跡し、ユーザーが API をどう使うかを把握できます。重要なユーザージャーニー(シーケンス)をグループ化し、強調表示します。推奨するシーケンスは Sequence mitigation で強制できます。
シーケンスとは、特定の訪問者が Web サイトの閲覧、モバイルアプリの利用、または API 経由の B2B 連携で行った HTTP API リクエストを、時間順に並べた一覧です。
たとえば、銀行の資金移動中に作られるシーケンスの一部は、次のようになります。
| 順序 | メソッド | パス | 説明 |
|---|---|---|---|
| 1 | GET |
/api/v1/users/{user_id}/accounts |
user_id は現在のユーザーです。 |
| 2 | GET |
/api/v1/accounts/{account_id}/balance |
account_id は、そのユーザーの口座の 1 つです。 |
| 3 | GET |
/api/v1/accounts/{account_id}/balance |
account_id は、同じユーザーの別の口座です。 |
| 4 | POST |
/api/v1/transferFunds |
振替元口座、振替先口座、振替金額を含むリクエスト本文です。 |
API Shield は、設定した セッション識別子 と、full または candidate 状態のオペレーションを使い、セッションごとに要求された API オペレーション(HTTP ホスト、メソッド、パス)の順序付き集合を構築します。スコアに応じて、さまざまな長さのシーケンスが表示される場合があります。
API Shield は、シーケンスを precedence score(優先度スコア)という指標で採点します。Sequence Analytics は、precedence score が高い順にシーケンスを表示します。高スコアのシーケンスは、その順で一緒に発生しやすい API リクエストを含みます。
上の例では、高スコアはシーケンス末尾のオペレーション POST /api/v1/transferFunds の前に、GET /api/v1/users/{user_id}/accounts と、そのあとの GET /api/v1/accounts/{account_id}/balance が続く可能性が高いことを意味します。スコアは確率で、API Shield が直近 24 時間のデータから推定します。
API を先回りして保護するには、スコアが最も高いシーケンスを確認します。高スコアのシーケンスごとに、末尾のオペレーションが、その前のオペレーションのあとに必ず来るべきかを開発チームに確認してください。
上の例で、POST /api/v1/transferFunds の前に必ず GET /api/v1/users/{user_id}/accounts と GET /api/v1/accounts/{account_id}/balance が来るべきなら、シーケンス末尾のオペレーションに対して Sequence mitigation の Allow ルールを作成します。
これらのエンドポイントには、ほかの API Shield 保護(レート制限の提案、スキーマ検証、JWT 検証、mTLS)の適用も検討してください。
詳細は ブログ記事 ↗ を参照してください。
実際の API 利用では、同じオペレーションが連続して繰り返されることがよくあります。確認しやすくするため、Sequence Analytics は連続して繰り返されたオペレーションを 1 つにまとめます。
Sequence Analytics は、すべての API Shield のお客様が利用できます。API Shield を購入していない Pro、Business、Enterprise のお客様は、Cloudflare ダッシュボードで API Shield トライアルを有効にする ↗ か、アカウントマネージャーに問い合わせて開始できます。
Sequence Analytics には現在、セッション識別子と、エッジで一致させられるオペレーションが必要です。セッション識別子を設定 し、Web Assets で full および candidate 状態のオペレーションを確認してください。
シーケンスの長さは、現在 9 オペレーションまでに制限されています。