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

# 审计日志：API 活动追踪与合规审计

> Didit 提供可搜索的审计日志，追踪所有 API 活动。可按用户、方法、状态和日期范围过滤，用于合规审计、安全审查和调试。

审计日志提供您组织内所有 API 活动的完整、可搜索记录。无论请求来自控制台、您的集成还是团队成员，发送到 Didit 平台的每个请求都会被自动记录，用于安全、合规和故障排查。

![Didit 控制台中的审计日志](https://mintcdn.com/didit-0f962782/ibesJiSLVa9jZb5z/images/console-audit-logs.jpg?fit=max\&auto=format\&n=ibesJiSLVa9jZb5z\&q=85\&s=bcd436f764486143268f5c5ca67d9d14)

***

## 为什么需要审计日志？

| 挑战 | 解决方案 |
| - | - |
| 合规监管要求 | 所有活动的完整审计轨迹，保留时长取决于您的套餐 |
| 安全事件调查 | 精确追溯谁在何时做了什么 |
| 调试集成问题 | 查看每个请求的路径、状态和已脱敏的请求体 |
| 团队问责 | 追踪团队成员访问了哪些数据 |
| 用量监控 | 了解 API 调用模式 |

***

## 访问审计日志

在 Didit 控制台中打开 **Settings > Organization > Audit log**。界面会按时间顺序显示您组织内所有 API 请求的列表。

每条日志记录包含以下字段：

| 字段 | 说明 |
| - | - |
| **时间戳** | 发出请求的时间 |
| **用户** | 执行操作的人：已通过身份验证的团队成员的邮箱；发出请求的 API 密钥名称，并标记为 **API 密钥**；或 **调查员**（针对其自行做出的决定） |
| **方法** | HTTP 方法（GET、POST、PUT、DELETE） |
| **路径** | 被调用的 API endpoint |
| **状态** | HTTP 响应状态码 |
| **地址** | 请求的来源 IP |
| **应用** | 该请求所关联的应用 |

### 调查员所做的决定

每项由[调查员](https://docs.didit.me/zh/console/investigator.md)自行做出的决定都记录在 **调查员** 名下，而不记录在某个成员或 API 密钥名下。这些决定包括：批准或拒绝会话、要求重新提交、设置交易状态，以及结案、升级案件或请求提供案件相关信息。
该条目会链接到该决定所依据的调查员报告。
当人员接受或推翻调查员的建议时，该条目会记录在该人员名下。

***

## 筛选与搜索

审计日志界面提供强大的筛选功能，帮助您准确找到所需内容。

### 智能搜索

搜索栏会自动识别您要查找的内容：

| 搜索类型 | 示例 | 行为 |
| - | - | - |
| **精确路径** | `/v1/organization/.../sessions/` | 查找请求路径完全一致的日志 |
| **精确邮箱** | `admin@company.com` | 查找来自该特定用户的日志 |
| **精确 IP** | `192.168.1.100` | 查找来自该地址的日志 |
| **通配符** | `/v1/*/analytics/*` | 按带通配符的模式进行匹配 |
| **通用文本** | `sessions` | 跨所有字段进行模糊搜索 |

### 可用过滤器

| 过滤器 | 说明 | 示例 |
| - | - | - |
| **应用** | 按特定应用筛选 | 从下拉菜单中选择 |
| **成员和 API 密钥** | 按发出请求的 API 密钥筛选 | 选择所选应用的某个密钥 |
| **操作者** | 仅显示成员、API 密钥或调查员的操作 | **调查员** |
| **方法** | 按 HTTP 方法筛选 | `GET`、`POST`、`PUT`、`DELETE` |
| **状态码** | 按响应状态筛选 | `200`、`401`、`500` |
| **日期范围** | 按时间段筛选 | 最近 7 天，或自定义范围 |

***

## 数据保留

您的套餐决定了您可以回溯查看审计日志的时长，以及是否可以导出日志：

| 套餐 | 回溯时长 | 导出 |
| - | - | - |
| Free | 30 天 | 否 |
| Growth | 1 年 | 否 |
| Scale | 3 年 | 是 |
| Enterprise | 由合同约定 | 是 |

在不支持导出的套餐上发起导出，将返回 `403`，并附带 `"code": "plan_limit_exceeded"`。

***

## 安全与隐私

### 记录的内容

审计日志记录 API 请求的元数据：

* 请求时间戳和持续时间
* 用户身份（邮箱、用户 ID），或发出请求的 API 密钥（其名称以及密钥的前几个字符，绝不包含完整密钥）
* 请求路径和查询参数
* 响应状态码
* 客户端地址和用户代理

### API 密钥调用的请求体和响应体

对于使用 API 密钥发起的调用，审计日志会保存写入操作的 JSON 请求体的脱敏副本，以及写入操作或出错调用的响应的脱敏副本，以便您了解调用失败的原因。成功的读取操作的响应不会被保存。

脱敏采用默认拒绝策略：

* 结构保持不变：字段名、嵌套关系、值类型、数组长度和字符串长度。
* 仅当某个值是 Didit 自身的标识符、状态、代码、计数或时间戳，且位于 Didit 定义的字段中并符合该字段的预期格式时，该值才会保留。
* 布尔值仅在 Didit 定义的字段中保留。
* 其他所有值都会被替换为标记，标明其类型和长度，例如 `[redacted:string:12]`、`[redacted:number:5]` 或 `[redacted:boolean]`；`null` 保持为 `null`。
* 如果字段名不是普通标识符（例如用作键的邮箱地址或电话号码），则会被替换为 `[redacted:key:23]`。
* 非 JSON 的请求体（例如表单或文件上传）会被替换为说明其类型的备注。
* 保留的内容最多为 4,096 个字符。

查询参数同样经过上述脱敏处理。
仅保留 `content-type`、`user-agent` 和速率限制头等标准请求头；其他所有请求头连同其值一并丢弃。
您自己的系统发送的值（例如 `metadata` 或 `vendor_data` 中的值）绝不会被保留，即使其字段名与 Didit 的某个字段名相似。

### 未记录的内容

为保护敏感数据，以下内容会被自动排除：

* 身份验证令牌和凭据
* 密码和密钥
* 验证会话中的个人数据

### 访问控制

查看审计日志需要 `audit-logs` 的读取权限和列表权限。Reader、Compliance Officer、Developer、Admin 和 Owner 角色均拥有这些权限；[自定义角色](https://docs.didit.me/zh/console/roles-permissions.md)可在角色编辑器中勾选 Audit logs 来获得这些权限。

***

## 常见用例

> [accordion] 合规审计
>
> 向审计人员证明您能完整查看谁访问过验证数据：
>
> 1. 按与审计期间一致的日期范围过滤
> 2. 如有需要，按特定应用或用户过滤
> 3. 导出结果或截图，留存为文档

> [accordion] 安全调查
>
> 如果您怀疑存在未授权访问：
>
> 1. 搜索受影响用户的邮箱或可疑地址
> 2. 按可疑事件前后的日期范围过滤
> 3. 查找异常模式：失败的认证尝试、意外的 endpoint、异常时段

> [accordion] 集成调试
>
> 排查 API 集成问题时：
>
> 1. 搜索特定的 endpoint 路径
> 2. 按 `4xx` 或 `5xx` 状态码过滤，查找错误
> 3. 记录时间戳，与您的应用日志进行关联

> [accordion] 团队活动审查
>
> 查看您的团队如何使用该平台：
>
> 1. 按特定团队成员的邮箱过滤
> 2. 查看他们访问过的会话和功能
> 3. 确保团队成员遵循规范流程

***

## 最佳实践

1. **定期检查**：定期审查审计日志，尽早发现异常。
2. **缩小搜索范围**：使用特定过滤器减少干扰信息，更快找到相关记录。
3. **日期范围**：处理大型数据集时，请始终指定日期范围，以获得更好的性能。
4. **收藏搜索**：将常用的过滤器组合保存为浏览器书签，方便快速访问。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.