Auth0 ログを収集する
概要
このパーサーは、JSON 形式のメッセージから Auth0 ログイベントを抽出します。UDM フィールドを初期化し、JSON ペイロードを解析して、関連するフィールドを UDM スキーマにマッピングし、type フィールドに基づいてイベントを分類し、適切なセキュリティ アクションとイベントタイプを設定します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス。
 - 必要な権限を持つ Auth0 アカウント。
 
フィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
 - [Add New Feed] をクリックします。
 - 次のページで [単一のフィードを設定] をクリックします。
 - [フィード名] フィールドに、フィードの名前を入力します(例: Auth0 Logs)。
 - [Source type] として [Webhook] を選択します。
 - [ログタイプ] として [AUTH_ZERO] を選択します。
 - [次へ] をクリックします。
 - 省略可: 次の入力パラメータの値を指定します。
- 分割区切り文字: ログ行を区切るために使用される区切り文字(
\nなど)。 - Asset namespace: アセットの名前空間。
 - Ingestion labels: このフィードのイベントに適用されるラベル。
 
 - 分割区切り文字: ログ行を区切るために使用される区切り文字(
 - [次へ] をクリックします。
 - [Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。
 - [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
 - 秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、この操作により以前の秘密鍵は無効になります。
 - [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
 - [完了] をクリックします。
 
Webhook フィード用の API キーを作成する
Google Cloud コンソール > [認証情報] に移動します。
[認証情報を作成] をクリックして [API キー] を選択します。
API キーのアクセスを Chronicle API に制限します。
エンドポイント URL を指定する
- クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイント URL を指定します。
 次の形式でカスタム ヘッダーの一部として API キーと秘密鍵を指定して、認証を有効にします。
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET推奨事項: API キーは URL 内ではなくヘッダーとして指定してください。Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET
以下を置き換えます。
ENDPOINT_URL: フィード エンドポイントの URL。API_KEY: Google Security Operations に対する認証に使用する API キー。SECRET: フィードの認証用に生成した秘密鍵。
Google SecOps 用に Auth0 Webhook を構成する
- Auth0 ダッシュボードにアクセスします。
 - [モニタリング] > [ストリーム] に移動します。
 - [ログ ストリームを作成] をクリックします。
 - [カスタム Webhook] ボタンをクリックし、任意の名前を付けます。例: Google SecOps Webhook。
 - 以下の構成を行います。
- ペイロード URL: Google SecOps API エンドポイント URL を入力します。
 - Content-Type: Content-Type ヘッダーを application/json に設定します。これにより、送信されるデータの形式が Google SecOps に通知されます。
 - 省略可: 認証トークン: セキュリティを強化するためにシークレットを構成します。これは、Webhook リクエストの信頼性を確認するために使用されます。
 
 
ペイロードをカスタマイズ: イベントカテゴリを変更することで、Google SecOps に送信されるペイロードをカスタマイズできます。これにより、Auth0 イベントから特定のデータポイントを選択し、Google SecOps に必要な形式でフォーマットできます。使用可能なコンテキスト変数とスクリプト オプションの詳細については、Auth0 のドキュメントをご覧ください。最終的なペイロードが想定される Google SecOps UDM 形式に準拠していることを確認します。
- [保存] をクリックして、Webhook を作成します。
 - フックに関連付けられたイベントをトリガーします(例: 新しいユーザーの登録、ログイン)。
 - Google SecOps コンソールのフィードを確認して、ログが Google SecOps に送信されていることを確認します。
 
UDM マッピング テーブル
| ログフィールド | UDM マッピング | 論理 | 
|---|---|---|
client_id | 
principal.asset.product_object_id | 
client_id フィールドから直接マッピングされます。 | 
client_name | 
principal.hostname | 
client_name フィールドから直接マッピングされます。 | 
connection | 
security_result.description | 
connection フィールドから直接マッピングされます。 | 
connection_id | 
security_result.rule_id | 
connection_id フィールドから直接マッピングされます。 | 
date | 
metadata.event_timestamp | 
ISO8601 形式を使用して date フィールドから解析されます。 | 
description | 
metadata.description | 
description フィールドから直接マッピングされます。 | 
details.error | 
security_result.detection_fields | 
details.error フィールドからマッピングされます。キーは「Error」です。 | 
details.error.oauthError | 
security_result.detection_fields | 
details.error.oauthError フィールドからマッピングされます。キーは「oauthError」です。 | 
details.error.type | 
security_result.detection_fields | 
details.error.type フィールドからマッピングされます。キーは「oauth_error_type」です。 | 
details.ipOnAllowlist | 
security_result.detection_fields | 
details.ipOnAllowlist フィールドからマッピングされます。キーは「ipOnAllowlist」です。 | 
details.link | 
target.url | 
details.link フィールドが存在する場合は、そのフィールドから直接マッピングされます。存在しない場合は、他のフィールドから取得されます(下記を参照)。 | 
details.request.auth.strategy | 
security_result.detection_fields | 
details.request.auth.strategy フィールドからマッピングされます。キーは「strategy」です。 | 
details.request.body.app_metadata.blockedReason | 
security_result.detection_fields | 
details.request.body.app_metadata.blockedReason フィールドからマッピングされます。キーは「blockedReason」です。 | 
details.request.body.app_metadata.customer_id | 
target.user.product_object_id | 
details.request.body.app_metadata.customer_id フィールドから直接マッピングされます。 | 
details.request.body.app_metadata.migrated | 
security_result.detection_fields | 
details.request.body.app_metadata.migrated フィールドからマッピングされます。キーは「migrated」です。 | 
details.request.channel | 
security_result.detection_fields | 
details.request.channel フィールドからマッピングされます。キーは「channel」です。 | 
details.request.method | 
network.http.method | 
大文字に変換した後、details.request.method フィールドから直接マッピングされます。 | 
details.request.path | 
target.url | 
details.link が存在しない場合、details.request.path フィールドから直接マッピングされます。存在する場合は、他のフィールドから取得されます(下記を参照)。 | 
details.response.body.email | 
target.user.email_addresses | 
details.response.body.email フィールドから直接マッピングされます。 | 
details.response.body.email_verified | 
security_result.detection_fields | 
details.response.body.email_verified フィールドからマッピングされます。キーは「email_verified」です。 | 
details.response.body.nickname | 
target.user.user_display_name | 
details.response.body.nickname フィールドから直接マッピングされます。 | 
details.response.body.user_id | 
target.user.userid | 
details.response.body.user_id フィールドから直接マッピングされます。 | 
details.response.statusCode | 
network.http.response_code | 
整数に変換した後、details.response.statusCode フィールドから直接マッピングされます。 | 
details.return_to | 
target.url | 
details.link と details.request.path が存在しない場合は details.return_to フィールドから直接マッピングされます。それ以外の場合は、他のフィールドから取得されます(下記を参照)。 | 
details.session_id | 
network.session_id | 
details.session_id フィールドから直接マッピングされます。 | 
details.stats.loginsCount | 
additional.fields | 
details.stats.loginsCount フィールドからマッピングされます。キーは「loginsCount」です。 | 
details.requiresVerification | 
security_result.detection_fields | 
details.requiresVerification フィールドからマッピングされます。キーは「requiresVerification」です。 | 
details.to | 
target.user.email_addresses | 
details.to フィールドから直接マッピングされます。 | 
hostname | 
target.hostname | 
hostname フィールドから直接マッピングされます。 | 
ip | 
principal.ip | 
ip フィールドから直接マッピングされます。 | 
js_data.audience | 
target.url | 
details.link、details.request.path、details.return_to が存在しない場合、js_data.audience フィールドから直接マッピングされます。 | 
js_data.details.body.email_verified | 
security_result.detection_fields | 
js_data.details.body.email_verified フィールドからマッピングされます。キーは「email_verified」です。 | 
js_data.details.body.is_signup | 
security_result.detection_fields | 
js_data.details.body.is_signup フィールドからマッピングされます。キーは「is_signup」です。 | 
js_data.details.body.transaction.redirect_uri | 
target.url | 
details.link、details.request.path、details.return_to、js_data.audience が存在しない場合、js_data.details.body.transaction.redirect_uri フィールドから直接マッピングされます。 | 
js_data.scope | 
security_result.detection_fields | 
js_data.scope フィールドからマッピングされます。キーは「scope」です。 | 
js_data.tracking_id | 
security_result.detection_fields | 
js_data.tracking_id フィールドからマッピングされます。キーは「tracking_id」です。 | 
log_id | 
metadata.product_log_id | 
log_id フィールドから直接マッピングされます。 | 
metadata.log_type | 
metadata.log_type | 
log_type フィールドから直接マッピングされます。 | 
metadata.product_name | 
metadata.product_name | 
「AUTH_ZERO」に設定します。 | 
metadata.vendor_name | 
metadata.vendor_name | 
「AUTH_ZERO」に設定します。 | 
metadata.product_event_type | 
metadata.product_event_type | 
type フィールドから直接マッピングされます。 | 
network.http.parsed_user_agent | 
network.http.parsed_user_agent | 
user_agent フィールドから解析されます。 | 
network.http.user_agent | 
network.http.user_agent | 
user_agent フィールドから直接マッピングされます。 | 
security_result.action | 
security_result.action | 
type フィールド(ALLOW または BLOCK)によって決定されます。特定のマッピングについては、パーサーコードをご覧ください。 | 
strategy | 
security_result.detection_fields | 
strategy フィールドからマッピングされます。キーは「strategy」です。 | 
strategy_type | 
security_result.detection_fields | 
strategy_type フィールドからマッピングされます。キーは「strategy_type」です。 | 
target.user.email_addresses | 
target.user.email_addresses | 
user_name フィールドがメールアドレスの場合は、そのフィールドから直接マッピングされます。それ以外の場合は、他のフィールドから取得されます(上記を参照)。 | 
target.user.userid | 
target.user.userid | 
user_id フィールドから直接マッピングされます。user_id が存在しない場合は、details.response.body.user_id または user_name からマッピングされます。 | 
user_agent | 
network.http.user_agent | 
user_agent フィールドから直接マッピングされます。 | 
user_id | 
target.user.userid | 
user_id フィールドから直接マッピングされます。 | 
user_name | 
target.user.email_addresses | 
user_name フィールドから直接マッピングされます。security_result.action が「ALLOW」で、type が「slo」、「sapi」、「s」、「ss」、「ssa」のいずれかの場合、「MACHINE」に設定されます。extensions.auth.type が「MACHINE」で、type が「slo」の場合は、「OTP」に設定されます。type、client_name、ip、hostname、has_user などのフィールドの組み合わせによって決まります。特定のマッピングについては、パーサーコードをご覧ください。 | 
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。