シーケンス分析
シーケンス分析は、APIエンドポイントリクエストの順序を時間の経過とともに追跡し、ユーザーがAPIとどのように対話しているかを発見できるようにします。シーケンス分析は、API全体の重要なユーザージャーニー(シーケンス)をグループ化し、強調表示します。 シーケンス緩和を使用して、好ましいシーケンスを強制することができます。
シーケンスは、特定の訪問者がウェブサイトを閲覧したり、モバイルアプリを使用したり、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は、構成されたセッション識別子を使用して、セッションごとに要求された順序付きAPI操作(HTTPホスト、メソッド、パス)のセットを構築します。API Shieldがシーケンスをスコアリングする方法に応じて、さまざまな長さのシーケンスを表示することがあります。
API Shieldは、優先度スコアと呼ばれる指標によってシーケンスにスコアを付けます。シーケンス分析は、最高の優先度スコアによってシーケンスを表示します。高スコアのシーケンスには、順番に発生する可能性が高い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?の前に来る必要がある場合、シーケンスの最後の操作にAllowルールを作成する必要があります。
これらのエンドポイントに対して、他のAPI Shield保護(レート制限の提案、スキーマ検証、JWT検証、およびmTLS)を適用することも検討してください。
詳細については、ブログ記事 ↗を参照してください。
真のAPI使用は、多くの連続した繰り返し操作を示します。探索を容易にするために、シーケンス分析は連続した繰り返し操作を1つにまとめます。
シーケンス分析は、すべてのAPI Shield顧客に利用可能です。API Shieldを購入していないPro、Business、Enterprise顧客は、CloudflareダッシュボードでAPI Shieldトライアルを有効にする ↗か、アカウントマネージャーに連絡することで開始できます。
シーケンス分析は、API消費者によって行われたシーケンスを構築および追跡するために、現在セッション識別子を必要とします。CloudflareダッシュボードでAPI Shield > 設定に移動して、セッション識別子を設定していることを確認してください。
シーケンスは現在、最大9つの操作に制限されています。