feat(auth): owner-bound bot tokens and self-service bot management
This commit is contained in:
@@ -33,6 +33,31 @@
|
||||
- 환경변수 기반 정적 토큰: `PORTFOLIOHUB_*_TOKENS`
|
||||
- DB 저장 토큰: 로그인 세션/클라이언트 토큰/봇 토큰
|
||||
|
||||
봇 토큰 사용자 컨텍스트 정책:
|
||||
|
||||
- 봇 principal은 `owner_user_id`를 가진다.
|
||||
- 봇 토큰 인증 시 실효 사용자 식별자는 `bot_principals.owner_user_id`로 해석한다.
|
||||
- 따라서 소유권이 필요한 포트폴리오 API에서 봇 토큰은 소유 사용자 경계 내에서만 동작한다.
|
||||
|
||||
## 봇 관리 API 정책
|
||||
|
||||
- Admin 경로:
|
||||
- `POST /auth/bots`
|
||||
- `GET /auth/bots`
|
||||
- `GET /auth/bots/{bot_id}`
|
||||
- `DELETE /auth/bots/{bot_id}`
|
||||
- `POST/GET/DELETE /auth/bots/{bot_id}/tokens*`
|
||||
- Self-service 경로(사용자 본인 전용):
|
||||
- `POST /auth/me/bots`
|
||||
- `GET /auth/me/bots`
|
||||
- `POST/GET/DELETE /auth/me/bots/{bot_id}/tokens*`
|
||||
|
||||
제약:
|
||||
|
||||
- self-service 경로는 DB 사용자 컨텍스트가 있는 사용자 토큰에서만 허용한다.
|
||||
- self-service 경로는 요청자의 소유 봇(`owner_user_id == auth_context.user_id`)에만 허용한다.
|
||||
- 봇 권한은 `read` 또는 `trade-write`만 허용한다.
|
||||
|
||||
## 토큰 라이프사이클
|
||||
1. 사용자 로그인(`POST /auth/login`) 또는 토큰 발급 API 호출
|
||||
2. 토큰 해시 저장 및 prefix 관리
|
||||
|
||||
Reference in New Issue
Block a user