> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth0 告警集成

> 通过 Auth0 自定义 Webhook 日志流，将攻击防护、泄露密码和登录失败等租户日志同步到 Flashduty On-call。

Auth0 的日志流（Log Streams）可以把租户日志实时 POST 到自定义 Webhook。将 Webhook 的 Payload URL 设置为 Flashduty 的推送地址，即可把安全相关的租户日志同步到 Flashduty On-call：泄露密码登录（`pwd_leak`）、攻击防护封禁（`limit_wc`、`limit_mu` 等）、登录和注册失败（`f`、`fu`、`fp`、`fs` 等）、MFA 失败、API 限流等。成功登录、成功的管理操作等日志不会产生告警。

<div className="hide">
  ## 在 Flashduty On-call

  ***

  您可通过以下两种方式获取集成推送地址，任选其一即可。

  ### 使用专属集成

  1. 进入 Flashduty 控制台，选择 **协作空间**，打开一个协作空间
  2. 选择 **配置** → **集成数据** → **专属集成**，点击 **新增一个集成**
  3. 选择 **Auth0**，点击 **保存**
  4. 打开生成的集成卡片，复制 **推送地址**

  ### 使用共享集成

  1. 进入 Flashduty 控制台，选择 **集成中心 → 告警事件**
  2. 选择 **Auth0**，填写集成名称
  3. 配置默认路由并选择协作空间；创建后可在 **路由** 中增加更多规则
  4. 点击 **保存**，复制生成的 **推送地址**
</div>

## 在 Auth0 中配置

***

<Steps>
  <Step title="创建日志流">
    1. 登录 Auth0 Dashboard，进入 **Monitoring** → **Log Streams**
    2. 点击 **Create Log Stream**，选择 **Custom Webhook**，输入名称
    3. 填写以下设置：

    | 设置 | 值 |
    | :- | :- |
    | Payload URL | Flashduty 推送地址 |
    | Content Type | `application/json` |
    | Content Format | JSON Lines、JSON Array 或 JSON Object，三种都支持 |
    | Authorization Token | 留空。Flashduty 通过地址中的 `integration_key` 认证 |

    4. 在 **Filter by Log Event Category** 中只勾选错误和警告类日志，减少推送量；不过滤也可以，Flashduty 会忽略成功类日志
    5. 点击 **Save**

    Payload URL 必须是受信任证书签发的 HTTPS 地址，Auth0 不支持自签名证书。
  </Step>

  <Step title="触发并验证">
    1. 在 **Monitoring** → **Log Streams** 中打开该日志流的 **Health** 页，确认状态为 **Active**
    2. 用一个错误密码登录测试应用，产生一条 `fp`（错误密码）日志
    3. 在 Flashduty 中确认收到告警；没有收到时，在 Auth0 的 **Monitoring** → **Logs** 中查看日志流投递错误

    Auth0 日志流没有“发送测试通知”功能。
  </Step>
</Steps>

## 事件与恢复

***

Auth0 每生成一条租户日志只推送一次，不会推送更新或恢复通知。每条日志有唯一的 `log_id`，Flashduty 用它作为 Alert Key，因此 Auth0 重试投递同一条日志时不会重复告警，不同的日志各自产生一条 Flashduty 告警，不会自动恢复。

请在协作空间中开启[超时自动关闭](/zh/on-call/channel/create-edit)，建议 24 小时；也可以处理完成后手动关闭。同一个来源 IP 反复触发时，可以在协作空间中配置降噪规则，把它们合并成一个故障。

## Alert Key

***

Alert Key 由日志的 `log_id` 计算。缺少 `log_id` 的告警类日志会被拒绝并返回参数错误。

## 告警等级

***

按日志类型代码（`type`）映射，其他类型代码的日志被忽略：

| 日志类型代码 | Flashduty 等级 |
| :- | :- |
| `pwd_leak`、`reset_pwd_leak`（泄露密码登录或重置） | Critical |
| `limit_wc`、`limit_mu`、`limit_sul`、`limit_delegation`、`limit_phone`、`api_limit`、`api_limit_warning` | Warning |
| 以 `f` 开头的失败类型（`f`、`fu`、`fp`、`fs`、`ferrt` 等），以 `_failed` 或 `_failure` 结尾的类型（`gd_auth_failed` 等） | Warning |
| `w`、`wn`、`wum`、`gd_otp_rate_limit_exceed`、`rich_consents_access_error` | Warning |
| 成功类型（`s`、`ss`、`seacft`、`sapi` 等）和其他类型 | 忽略，不产生告警 |

完整的类型代码见 [Auth0 日志事件类型代码](https://auth0.com/docs/deploy-monitor/logs/log-event-type-codes)。

## 标签

***

| 标签 | 来源 |
| :- | :- |
| `check` / `type` | 日志类型代码 |
| `log_id` | 日志 ID |
| `tenant` | 租户名 |
| `client_id` / `client_name` | 应用 ID 和名称 |
| `connection` | 连接名称 |
| `src_ip` | 请求的 IP 地址 |
| `user_id` | 用户 ID |
| `transaction_id` | 认证事务 ID（存在时） |
| `date` | 日志时间 |

告警描述取自日志的 `description` 和 `details.error.message`。Flashduty 不读取用户邮箱、User-Agent 等字段。

## 排查问题

***

* **Flashduty 返回参数错误**：确认 Content Type 为 `application/json`，并检查 Payload URL 中的 `integration_key`
* **没有收到告警**：确认日志类型在上表中；Health 页状态为 Active；日志流的事件类别过滤没有排除对应类型
* **收到的告警太多**：在日志流的 **Filter by Log Event Category** 中缩小类别，并在协作空间配置降噪规则
* **告警一直未关闭**：Auth0 没有恢复通知，请开启协作空间的超时自动关闭

更多配置项请参阅 [Auth0 官方文档：自定义 Webhook 日志流](https://auth0.com/docs/customize/log-streams/custom-log-streams)。
