From 45ce06ab2f1c3f1be9ffe57956467d5576cfe550 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Thu, 28 Aug 2025 17:19:57 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20UUID=20=ED=86=B5=ED=95=A9=20=EB=B0=8F?= =?UTF-8?q?=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EA=B2=A9=EB=A6=AC=20=EA=B3=84?= =?UTF-8?q?=ED=9A=8D=20=EB=AC=B8=EC=84=9C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...UUID_통합_및_사용자_격리_계획.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md diff --git a/troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md b/troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md new file mode 100644 index 0000000..42e434c --- /dev/null +++ b/troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md @@ -0,0 +1,96 @@ +# UUID 통합 및 사용자 격리 계획 + +## 작성일: 2025-08-28 +## 작성자: 51123 서버 관리자 +## 상태: 계획 수립 +## 목표: Frontend/Slack 사용자 통합, 워크스페이스별 로빙 공유, 개인별 대화 격리 + +--- + +## 1. 현재 상황 + +### ID 체계 혼재 +- **Frontend**: Google OAuth → UUID4 (auth-server 생성) +- **Slack**: Slack User ID (U091XXX...) +- **DB**: UUID, username, slack_id 혼용 + +### 문제점 +- 같은 사용자가 서비스마다 다른 ID +- rb8001 JWT 검증 미구현 (보안 취약) +- ChromaDB 사용자 격리 없음 + +--- + +## 2. 목표 아키텍처 + +### 통합 ID 체계 +``` +Google 로그인 → UUID 생성 → users 테이블 +Slack 로그인 → UUID 조회/생성 → slack_user_mapping +``` + +### 워크스페이스 구조 +``` +workspace (로빙 1개) + ├── user1 (UUID) - Frontend/Slack 통합 + ├── user2 (UUID) - Frontend/Slack 통합 + └── user3 (UUID) - Slack만 +``` + +### 데이터 격리 +- **공유**: 로빙 레벨, 스탯 +- **격리**: 대화 내용, ChromaDB 기억, Gmail 토큰 + +--- + +## 3. 구현 계획 + +### Phase 1: 보안 (긴급) +- [ ] rb8001 JWT 검증 구현 +- [ ] X-User-Id 헤더 제거 +- [ ] Bearer 토큰 필수화 + +### Phase 2: ID 통합 +- [ ] slack_user_mapping 활성화 +- [ ] UUID5 → DB 조회 전환 +- [ ] gmail_tokens slack_user_id 제거 + +### Phase 3: 사용자 격리 +- [ ] ChromaDB 사용자별 컬렉션 +- [ ] conversation_logs user_id 정상화 +- [ ] 대화 컨텍스트 분리 + +--- + +## 4. 핵심 변경사항 + +### rb8001 (51124 서버) +```python +# 추가 필요: app/dependencies/auth.py +async def get_current_user(authorization: str = Header()): + # JWT 검증 + # UUID 추출 + return user_uuid +``` + +### robeing-monitor (51124 서버) +- UUID5 제거 → slack_user_mapping API 사용 + +### Gateway (51123 서버) +- 이미 UUID 사용 중 ✅ + +--- + +## 5. 테스트 시나리오 + +1. happybell80이 Frontend 로그인 → UUID 확인 +2. 같은 사용자 Slack DM → 같은 UUID 매핑 +3. 다른 사용자와 대화 격리 확인 +4. 워크스페이스 로빙 공유 확인 + +--- + +## 관련 문서 +- 250827_JWT_인증_구현_COMPLETED.md +- 250827_UUID_username_혼용_CRITICAL.md +- 250819_claude_사용자구분및ChromaDB격리문제.md \ No newline at end of file