Skip to main content
システムが、カタログコネクターによるポーリングではなく、Living Security へレコードを送信する場合は、カスタムプッシュソースを使用します。送信側は、JSON 配列または CSV ファイルをリージョンごとの HTTPS エンドポイントへ送信できます。

開始する前に

次のものが必要です。
  • Living Security で連携およびアクセスキーを管理する権限
  • HTTPS POST リクエストを実行できるサーバーサイドの送信側
  • 組織の Living Security リージョン
  • 固定のソース名と、1 つ以上のストリーム名
ソース名とストリーム名は、変更できないルーティングキーです。ソース名は、1~64 文字の小文字の英字、数字、またはハイフンで指定します。ストリーム名ではアンダースコアも使用できます。いずれも、先頭は英字または数字にする必要があります。
API アクセスキーは機密情報として扱ってください。ブラウザーのコードに記載したり、ソース管理にコミットしたり、サポートチケットで送信したりしないでください。

1. ソースとストリームを登録する

1

カスタムプッシュソースを開く

設定 → 連携 → カタログ に移動し、Custom Push Source を見つけて 追加 を選択します。
2

ソースに名前を付ける

ソースのルーティングキーと、必要に応じて説明を入力します。たとえば、スペースを含む表示名ではなく custom-phishing-sim を使用します。
3

ストリームを追加する

送信側が使用する各ストリームを追加します。最初のプッシュの前に、ソースとストリームの組み合わせが存在している必要があります。未登録の組み合わせでは 404 Not Found が返されます。
4

ソースを保存する

作成後、設定 → 連携 → 接続されました でソースを開きます。Push via API ビューに、エンドポイントのパターンと最近の実行が表示されます。

2. プッシュ取り込みキーを作成する

設定 → Access Keys に移動し、Create Access Key を選択して、Push Ingest スコープを選択します。生成された値は一度しか表示されないため、すぐにコピーしてください。 このキーは 1 つの Living Security 組織に紐付けられます。プッシュリクエストに組織ヘッダーは不要です。ローテーションと失効については、API アクセスキーを参照してください。

3. リージョンのエンドポイントを選択する

Living Security 組織のホスト名を使用します。 /push-ingest/{integrationKey}/{streamName} を追加します。パスは大文字と小文字を区別し、登録済みのソースおよびストリームと完全に一致している必要があります。
string
必須
登録済みのソース名。1~64 文字の小文字の英字、数字、またはハイフンを使用し、先頭は英字または数字にします。
string
必須
登録済みのストリーム名。同じルールが適用され、アンダースコアも使用できます。
string
必須
プッシュ取り込みアクセスキーを Bearer <access-key> として送信します。
string
JSON の場合は application/json、CSV の場合は text/csv を使用します。このヘッダーを省略した場合でも、サーバーは JSON 配列を検出できます。
string
任意の組織 UUID。組織はアクセスキーによってすでに決定されます。このヘッダーを送信する場合は、キーの組織と一致している必要があります。別の組織を選択することはできません。

リクエスト本文

最上位の空でない JSON オブジェクト配列、またはヘッダー行を含む CSV ファイルのバイト列を送信します。名前付きの JSON ラッパーフィールドはありません。各バッチには、最大 10,000 件のレコード、かつ 10 MB までを含めることができます。

4. JSON バッチを送信する

要素がオブジェクトである、空でない JSON 配列を送信します。Living Security は本文が配列であればヘッダーがなくても検出できますが、Content-Type: application/json の指定を推奨します。また、多くの送信製品ではこれが必須です。
リクエストが成功すると 202 Accepted が返されます。エラータブには、JSON 本文の形式が正しくない場合の 400 Bad Request が表示されます。
受理は、バッチが非同期処理のために保存されたことを意味します。すべてのレコードがすでにアクティビティとして解釈されたことを意味するものではありません。 400 の例では、JSON を修正するか、Content-Type: text/csv を指定して CSV を送信してから、再試行してください。
string
必須
受理されたこのバッチの実行 ID。処理状況の確認に使用するため、保管しておいてください。
number
必須
受理され、保存されたレコード数。
string
必須
このプッシュで使用されたソース名。
string
必須
このプッシュで使用されたストリーム名。

代わりに CSV を送信する

Content-Type: text/csv を設定し、上記の CSV file リクエスト例に示すとおりにファイルのバイト列を送信します。最初の行がフィールド名になります。 ブール値のテキストはブール値に、通常の数値のテキストは数値になります。先頭がゼロの値、安全でない大きな整数、日付、その他のテキストは文字列のままです。空のセルの場合、そのフィールドは省略されます。形式が正しくない行、引用符の対応が取れていない行、および UTF-16 ファイルは拒否されます。

リクエストの制限と再試行

サイズの大きなエクスポートは、両方の制限を満たすバッチに分割してください。各レスポンスを待ち、返された runId を送信側のログに保持してください。 通常の認証済み組織の制限では 429 ではなく 503 が返されるため、Webhook の送信側は再試行可能なものとして扱います。503 はバッチが保存される前に返されます。示された間隔の経過後に同じバッチを再送信しても、受理済みの実行が重複することはありません。

データフローを確認する

カスタムプッシュソースを開き、Push History を確認します。ストリーム、レコード数、キーの帰属、および処理状況を確認してください。メンテナンスされているインタープリターがあるデータは、その後、ユーザーや正規化されたアクティビティになります。インタープリターがないデータは保存されたままで、アクティビティは生成されません。
プロバイダー固有のガイドがある場合は、そこに記載されている正確なフィールド名とペイロード構造を使用してください。202 が成功しても、配信されたことが確認できるだけで、任意のスキーマが Living Security のアクティビティにマッピングされることを保証するものではありません。

トラブルシューティングチェックリスト

  • 正しいソースからエンドポイントをコピーし、ストリームのプレースホルダーを置き換えます。
  • アクセスキーは Authorization: Bearer … として送信してください。x-api-key は受け付けられません。
  • 本文が、単一のオブジェクトやレコードを包むエンベロープではなく、最上位の JSON 配列であることを確認します。
  • ハイフン、アンダースコア、大文字と小文字を含め、ソースとストリームのスペルを確認します。
  • レスポンスが失われたバッチを再送信する前に、Push History を確認します。
  • Living Security サポートに問い合わせる際は、組織、ソース、ストリーム、リクエスト時刻、可能であれば runId、およびレスポンスステータスを含めてください。アクセスキーやイベントペイロードは含めないでください。

関連項目

Zscaler ZIA Cloud NSS

サポートされている Zscaler の Web ログフィードを、正確なソース、ストリーム、ヘッダー、JSON 構造で構成します。

API アクセスキー

スコープが限定された認証情報を作成、ローテーション、失効します。

シグナルデータソース

解釈された連携アクティビティがシグナルをどのように支えるかを説明します。