隱私
AM 將可識別個人資訊與驗證資料分開儲存,因此你可以刪除使用者的 PII,同時保留稽核與法規合規所需的參照資料。
當使用者行使被遺忘權時,刪除的是其 identity,而不是你證明其曾存在的能力。
資料分離
┌─────────────────────────────────────────┐
│ User │
│ ┌─────────────────┐ ┌──────────────┐ │
│ │ Identity │ │ Credentials │ │
│ │ (Deletable) │ │ (Required) │ │
│ │ │ │ │ │
│ │ - given_name │ │ - email │ │
│ │ - family_name │ │ - password │ │
│ │ - display_name │ │ - verified │ │
│ │ - avatar_url │ │ │ │
│ │ - locale │ │ │ │
│ │ - timezone │ │ │ │
│ │ - external_id │ │ │ │
│ └─────────────────┘ └──────────────┘ │
└─────────────────────────────────────────┘
Identity 操作
| 操作 | Endpoint | 用途 |
|---|---|---|
| 取得 | GET /api/users/:user_id/identity | 讀取 PII |
| 更新 | PATCH /api/users/:user_id/identity | 修改 PII |
| 刪除 | DELETE /api/users/:user_id/identity | 移除全部 PII |
| 重建 | POST /api/users/:user_id/identity | 刪除後恢復 identity |
刪除權(GDPR 第 17 條)
刪除 identity 並保留下列資料:
- User ID(稽核日誌)
- Credentials(email + password hash)
- 付款歷史(法規留存)
- 帳戶 membership(存取控制)
會刪除什麼
| 已刪除 | 保留資料 |
|---|---|
| given_name | user.id |
| family_name | user.application_id |
| display_name | user.status |
| avatar_url | memberships |
| preferred_language | credentials |
| locale | payment records |
| timezone | audit logs |
| external_id |
資料最小化
Identity 欄位皆為選填,僅收集必要資料:
- 使用者可隨時清空欄位
- 空白 identity 仍是有效狀態
- 資料越少,風險越低
Credentials 透過 user credentials 端點獨立管理。