docs: UUID 통합 계획에 실제 확인 정보 반영
This commit is contained in:
parent
45ce06ab2f
commit
5814626c94
@ -7,17 +7,25 @@
|
||||
|
||||
---
|
||||
|
||||
## 1. 현재 상황
|
||||
## 1. 현재 상황 (2025-08-28 확인)
|
||||
|
||||
### ID 체계 혼재
|
||||
- **Frontend**: Google OAuth → UUID4 (auth-server 생성)
|
||||
- **Slack**: Slack User ID (U091XXX...)
|
||||
- **DB**: UUID, username, slack_id 혼용
|
||||
### ID 체계 현황
|
||||
- **Frontend**: JWT sub에 UUID 사용 ✅
|
||||
- **Gateway**: UUID로 인증 ✅
|
||||
- **slack_user_mapping**: Slack ID → UUID 매핑 활성화 ✅
|
||||
- **rb8001**: Slack ID 그대로 사용 (String) ❌
|
||||
|
||||
### 실제 데이터
|
||||
```
|
||||
happybell80: U0925SXQFDK → 1e16e9d5-59f3-54da-a661-8abeabff4230
|
||||
0914eagle: U091UNVE41M → b6ea2ee0-a15a-5cf4-93a9-a9ca20d4c4a0
|
||||
cdctfm: U092F7FQ55L → 69ae4ea9-a15f-5110-9f5d-6568e380fcfb
|
||||
```
|
||||
|
||||
### 문제점
|
||||
- 같은 사용자가 서비스마다 다른 ID
|
||||
- rb8001 JWT 검증 미구현 (보안 취약)
|
||||
- ChromaDB 사용자 격리 없음
|
||||
- rb8001 JWT 미구현 (기본 시크릿 키)
|
||||
- rb8001이 Slack ID를 UUID로 변환 안 함
|
||||
- ChromaDB 컬렉션 비어있음 `[]`
|
||||
|
||||
---
|
||||
|
||||
@ -46,14 +54,14 @@ workspace (로빙 1개)
|
||||
## 3. 구현 계획
|
||||
|
||||
### Phase 1: 보안 (긴급)
|
||||
- [ ] rb8001 JWT 검증 구현
|
||||
- [ ] X-User-Id 헤더 제거
|
||||
- [ ] Bearer 토큰 필수화
|
||||
- [ ] rb8001 JWT_SECRET_KEY 설정 (Gateway와 동일)
|
||||
- [ ] rb8001 Bearer 토큰 검증 구현
|
||||
- [ ] X-User-Id 헤더 의존 제거
|
||||
|
||||
### Phase 2: ID 통합
|
||||
- [ ] slack_user_mapping 활성화
|
||||
- [ ] UUID5 → DB 조회 전환
|
||||
- [ ] gmail_tokens slack_user_id 제거
|
||||
### Phase 2: ID 통합
|
||||
- [x] slack_user_mapping 테이블 활성화 (확인됨)
|
||||
- [ ] rb8001에서 Slack ID → UUID 변환
|
||||
- [ ] robeing-monitor UUID5 제거
|
||||
|
||||
### Phase 3: 사용자 격리
|
||||
- [ ] ChromaDB 사용자별 컬렉션
|
||||
@ -64,29 +72,40 @@ workspace (로빙 1개)
|
||||
|
||||
## 4. 핵심 변경사항
|
||||
|
||||
### rb8001 (51124 서버)
|
||||
### rb8001 (51124 서버) - 로컬 개발자 작업
|
||||
```python
|
||||
# 추가 필요: app/dependencies/auth.py
|
||||
async def get_current_user(authorization: str = Header()):
|
||||
# JWT 검증
|
||||
# UUID 추출
|
||||
return user_uuid
|
||||
# 1. JWT 검증 (/app/auth.py 수정)
|
||||
JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY") # Gateway와 동일
|
||||
|
||||
# 2. Slack 이벤트 처리 시 UUID 변환
|
||||
slack_id = event['user'] # U0925SXQFDK
|
||||
user_uuid = await get_uuid_from_slack(slack_id) # slack_user_mapping 조회
|
||||
```
|
||||
|
||||
### robeing-monitor (51124 서버)
|
||||
- UUID5 제거 → slack_user_mapping API 사용
|
||||
### slack_user_mapping API (51123 서버)
|
||||
```python
|
||||
@app.get("/api/slack/{slack_id}/uuid")
|
||||
async def get_uuid(slack_id: str):
|
||||
# DB 조회하여 UUID 반환
|
||||
```
|
||||
|
||||
### Gateway (51123 서버)
|
||||
- 이미 UUID 사용 중 ✅
|
||||
|
||||
---
|
||||
|
||||
## 5. 테스트 시나리오
|
||||
## 5. 검증된 사실
|
||||
|
||||
1. happybell80이 Frontend 로그인 → UUID 확인
|
||||
2. 같은 사용자 Slack DM → 같은 UUID 매핑
|
||||
3. 다른 사용자와 대화 격리 확인
|
||||
4. 워크스페이스 로빙 공유 확인
|
||||
### 작동 중
|
||||
- auth-server: JWT sub에 UUID 사용
|
||||
- Gateway: JWT 검증 및 UUID 추출
|
||||
- slack_user_mapping: 3명 데이터 확인
|
||||
- Frontend: localStorage에 UUID 저장
|
||||
|
||||
### 미구현
|
||||
- rb8001: JWT 검증 없음 (app/auth.py 있지만 미사용)
|
||||
- rb8001: Slack ID를 UUID로 변환 안 함
|
||||
- ChromaDB: 컬렉션 없음
|
||||
|
||||
---
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user