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