DOCS/troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md

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. 테스트 시나리오

  1. happybell80이 Frontend 로그인 → UUID 확인
  2. 같은 사용자 Slack DM → 같은 UUID 매핑
  3. 다른 사용자와 대화 격리 확인
  4. 워크스페이스 로빙 공유 확인

관련 문서

  • 250827_JWT_인증_구현_COMPLETED.md
  • 250827_UUID_username_혼용_CRITICAL.md
  • 250819_claude_사용자구분및ChromaDB격리문제.md