refactor(identity): rename authentik_sub to user_sub and authentik_user_id to idp_user_id
This commit is contained in:
@@ -18,8 +18,8 @@
|
||||
## 會員資料與 Authentik 對齊
|
||||
- `username`:登入帳號(可編輯,可同步)
|
||||
- `display_name`:顯示名稱(可編輯,可同步到 Authentik `name`)
|
||||
- `authentik_sub`:由 Authentik UID 回寫
|
||||
- `authentik_user_id`:保留 Authentik user id,供更新/密碼重設
|
||||
- `user_sub`:由 Authentik UID 回寫
|
||||
- `idp_user_id`:保留 Authentik user id,供更新/密碼重設
|
||||
|
||||
## 密碼流程
|
||||
- 目前:後台可觸發重設密碼(產生臨時密碼)
|
||||
|
||||
@@ -13,5 +13,5 @@
|
||||
- [x] 管理 API 完成 systems/modules/companies/sites/members/permission-groups CRUD
|
||||
- [x] 會員 upsert/update 可同步 Authentik
|
||||
- [x] 會員資料新增 `username` 欄位,與 `display_name` 分離
|
||||
- [x] 新增 `POST /admin/members/{authentik_sub}/password/reset`
|
||||
- [x] 新增 `POST /admin/members/{user_sub}/password/reset`
|
||||
- [x] DB 新增 `users.username`(含 migration 腳本)
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
## 真實來源
|
||||
- `backend/scripts/init_schema.sql`
|
||||
- 線上增量:`backend/scripts/migrate_add_users_username.sql`
|
||||
- 欄位重命名增量:`backend/scripts/migrate_rename_identity_columns.sql`
|
||||
|
||||
## 主要表
|
||||
- `users`
|
||||
- `authentik_sub` UNIQUE
|
||||
- `authentik_user_id` INTEGER
|
||||
- `user_sub` UNIQUE
|
||||
- `idp_user_id` INTEGER
|
||||
- `username` UNIQUE
|
||||
- `email` UNIQUE
|
||||
- `display_name`
|
||||
@@ -17,7 +18,7 @@
|
||||
- `systems`
|
||||
- `modules`(`system_key -> systems.system_key`)
|
||||
- `permission_groups`
|
||||
- `permission_group_members`(group + authentik_sub)
|
||||
- `permission_group_members`(group + user_sub)
|
||||
- `permission_group_permissions`(group + site/system/module/action)
|
||||
- `user_scope_permissions`(相容保留)
|
||||
- `api_clients`(保留給機器對機器用途)
|
||||
@@ -27,7 +28,7 @@
|
||||
- `action in ('view','edit')`
|
||||
|
||||
## 會員與 Authentik 對齊
|
||||
- `users.authentik_sub` 對應 Authentik `uid`
|
||||
- `users.user_sub` 對應 Authentik `uid`
|
||||
- `users.username` 對應 Authentik `username`
|
||||
- `users.display_name` 對應 Authentik `name`
|
||||
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
## 目前後端契約重點
|
||||
- 後台登入:只吃 Bearer + admin 群組檢查
|
||||
- 會員模型:`authentik_sub`, `username`, `email`, `display_name`, `is_active`
|
||||
- 會員模型:`user_sub`, `username`, `email`, `display_name`, `is_active`
|
||||
- 會員密碼:支援重設 API(回傳臨時密碼)
|
||||
|
||||
## 會員頁必做
|
||||
1. 新增會員表單欄位:`username`、`email`、`display_name`
|
||||
2. 編輯會員表單欄位:`username`、`email`、`display_name`、`is_active`
|
||||
3. 表格欄位要顯示:`authentik_sub`、`username`、`email`、`display_name`
|
||||
4. 操作欄新增「重設密碼」按鈕,串 `POST /admin/members/{authentik_sub}/password/reset`
|
||||
3. 表格欄位要顯示:`user_sub`、`username`、`email`、`display_name`
|
||||
4. 操作欄新增「重設密碼」按鈕,串 `POST /admin/members/{user_sub}/password/reset`
|
||||
5. 重設成功後顯示臨時密碼,並提醒管理員安全轉交
|
||||
|
||||
## 其他頁面
|
||||
|
||||
@@ -111,7 +111,7 @@ Response:
|
||||
"items": [
|
||||
{
|
||||
"id": "uuid",
|
||||
"authentik_sub": "authentik-uid",
|
||||
"user_sub": "authentik-uid",
|
||||
"username": "chris",
|
||||
"email": "chris@ose.tw",
|
||||
"display_name": "Chris",
|
||||
@@ -128,7 +128,7 @@ Response:
|
||||
Request:
|
||||
```json
|
||||
{
|
||||
"sub": "authentik-uid",
|
||||
"user_sub": "authentik-uid",
|
||||
"username": "chris",
|
||||
"email": "chris@ose.tw",
|
||||
"display_name": "Chris",
|
||||
@@ -140,8 +140,8 @@ Response:
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"sub": "authentik-uid",
|
||||
"authentik_user_id": 123,
|
||||
"user_sub": "authentik-uid",
|
||||
"idp_user_id": 123,
|
||||
"username": "chris",
|
||||
"email": "chris@ose.tw",
|
||||
"display_name": "Chris",
|
||||
@@ -149,11 +149,11 @@ Response:
|
||||
}
|
||||
```
|
||||
|
||||
### GET `/internal/permissions/{authentik_sub}/snapshot`
|
||||
### GET `/internal/permissions/{user_sub}/snapshot`
|
||||
Response:
|
||||
```json
|
||||
{
|
||||
"authentik_sub": "authentik-uid",
|
||||
"user_sub": "authentik-uid",
|
||||
"permissions": [
|
||||
{
|
||||
"scope_type": "site",
|
||||
@@ -170,7 +170,7 @@ Response:
|
||||
Request:
|
||||
```json
|
||||
{
|
||||
"sub": "authentik-uid",
|
||||
"user_sub": "authentik-uid",
|
||||
"email": "user@example.com",
|
||||
"username": "user1",
|
||||
"display_name": "User One",
|
||||
@@ -181,7 +181,7 @@ Request:
|
||||
Response:
|
||||
```json
|
||||
{
|
||||
"authentik_user_id": 123,
|
||||
"idp_user_id": 123,
|
||||
"action": "created"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -25,6 +25,6 @@ npm run dev
|
||||
|
||||
## 5) 會員流程驗收
|
||||
1. 新增會員(username/email/display_name,開啟 sync_to_authentik)
|
||||
2. 確認列表可看到新會員與 `authentik_sub`
|
||||
2. 確認列表可看到新會員與 `user_sub`
|
||||
3. 點「重設密碼」,取得臨時密碼
|
||||
4. 到 Authentik 驗證該會員可用新密碼登入
|
||||
|
||||
Reference in New Issue
Block a user