2.2 KiB
2.2 KiB
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 서버)
# 추가 필요: 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. 테스트 시나리오
- happybell80이 Frontend 로그인 → UUID 확인
- 같은 사용자 Slack DM → 같은 UUID 매핑
- 다른 사용자와 대화 격리 확인
- 워크스페이스 로빙 공유 확인
관련 문서
- 250827_JWT_인증_구현_COMPLETED.md
- 250827_UUID_username_혼용_CRITICAL.md
- 250819_claude_사용자구분및ChromaDB격리문제.md