docs: JWT/UUID 현재 상태 반영 - 추측 제거, 실제 확인 결과만 기록

This commit is contained in:
happybell80 2025-08-28 17:03:46 +09:00
parent b5fdd8a82a
commit 2cf741e472
4 changed files with 29 additions and 32 deletions

View File

@ -17,9 +17,9 @@ RO-BEING 시스템의 UUID 변환 체계 문서입니다. Google OAuth는 UUID4,
| 타입 | 생성 방식 | 용도 | 특징 | | 타입 | 생성 방식 | 용도 | 특징 |
|------|----------|------|------| |------|----------|------|------|
| UUID4 | 랜덤 생성 | Google OAuth 사용자 | 매번 다른 값 생성 | | UUID4 | 랜덤 생성 | Google OAuth 사용자 | auth-server에서 생성 |
| ~~UUID5~~ | ~~네임스페이스 해시~~ | ~~Slack 사용자~~ | 폐기 (2025-08-28) | | UUID5 | 네임스페이스 해시 | robeing-monitor 사용 중 | namespace 확인 필요 |
| API 매핑 | 51123 DB 조회 | Slack 사용자 | slack_user_mapping 테이블 사용 | | DB 매핑 | slack_user_mapping | Slack 사용자 매핑 | 실제 사용 여부 확인 필요 |
### 2.2 네임스페이스 ### 2.2 네임스페이스

View File

@ -1,8 +1,8 @@
# ID 체계 정리 및 conversation_logs 저장 문제 해결 # ID 체계 정리 및 conversation_logs 저장 문제 해결
## 작성일: 2025-08-26 ## 작성일: 2025-08-26 (수정: 2025-08-28)
## 작성자: 서버 관리자 ## 작성자: 서버 관리자
## 상태: ✅ 모두 해결 (gmail_tokens 이미 slack_user_id 사용 중) ## 상태: ⚠️ 부분 해결
## 영향: 대화 저장 실패, ID 타입 불일치로 인한 데이터 무결성 문제 ## 영향: 대화 저장 실패, ID 타입 불일치로 인한 데이터 무결성 문제
## 최종 업데이트: 2025-08-26 21:00 ## 최종 업데이트: 2025-08-26 21:00
@ -31,10 +31,10 @@
- **VARCHAR**: robeing_id, slack_user_id, slack_id, channel_id - **VARCHAR**: robeing_id, slack_user_id, slack_id, channel_id
- **INTEGER**: conversation_logs.id, gmail_tokens.id - **INTEGER**: conversation_logs.id, gmail_tokens.id
#### 동일 개념, 다른 이름 #### 2025-08-28 확인
- `slack_user_id` (slack_user_mapping) - gmail_tokens.slack_user_id: VARCHAR(100)
- `slack_id` (gmail_tokens) - gmail_tokens.user_id: UUID (FK → users.id)
- 둘 다 Slack 사용자 ID를 의미 - Slack ID와 UUID 동시 저장
#### 변환 문제 #### 변환 문제
- UUID ↔ Slack ID 변환 로직 불일치 - UUID ↔ Slack ID 변환 로직 불일치

View File

@ -1,8 +1,8 @@
# JWT 인증 ~~완전 미구현~~ 구현 완료 - ~~CRITICAL 보안 취약점~~ RESOLVED # JWT 인증 부분 구현 - 보안 취약점 잔존
## 작성일: 2025-08-27 ## 작성일: 2025-08-27 (수정: 2025-08-28)
## 작성자: 51123 서버 관리자 ## 작성자: 51123 서버 관리자
## 상태: ✅ RESOLVED - 2025-08-27 15:32 완전 해결 ## 상태: ⚠️ PARTIAL - rb8001 JWT 검증 미구현
## 영향 범위: 전체 시스템 (51123, 51124 모든 서비스) ## 영향 범위: 전체 시스템 (51123, 51124 모든 서비스)
## 위험 수준: 극도로 높음 ## 위험 수준: 극도로 높음
@ -10,11 +10,11 @@
## 1. 문제 요약 ## 1. 문제 요약
### ~~🚨 핵심 문제~~ ✅ 완전 해결 (2025-08-27 15:32) ### 핵심 문제 - 부분 해결
**~~현재 시스템은 JWT 인증이 완전히 무력화된 상태입니다.~~** **JWT 인증 부분 구현 상태**
- ~~누구나 인증 없이 모든 API 호출 가능~~ → ✅ JWT 필수 - auth-server: JWT 생성 ✅ (sub에 UUID)
- ~~아무 user_id로 타인 행세 가능~~ → ✅ JWT에서 추출 - Gateway: JWT 검증 ✅
- ~~타 사용자 데이터 접근 가능~~ → ✅ 인증된 사용자만 접근 - rb8001: JWT 검증 ❌ (2025-08-28 확인)
**~~추가 발견 (15:25)~~** → ✅ 해결 (15:32): Gateway → rb8001 Authorization 헤더 전달 **~~추가 발견 (15:25)~~** → ✅ 해결 (15:32): Gateway → rb8001 Authorization 헤더 전달
- `/home/admin/robeing-gateway/app/main.py:250-252` 수정 완료 - `/home/admin/robeing-gateway/app/main.py:250-252` 수정 완료

View File

@ -1,8 +1,8 @@
# UUID vs Username 혼용 - CRITICAL 시스템 전체 ID 체계 혼란 # UUID vs Username 혼용 - CRITICAL 시스템 전체 ID 체계 혼란
## 작성일: 2025-08-27 ## 작성일: 2025-08-27 (수정: 2025-08-28)
## 작성자: 51123 서버 관리자 ## 작성자: 51123 서버 관리자
## 상태: ✅ COMPLETED - 2025-08-27 17:30 모든 UUID 문제 해결 완료 ## 상태: ✅ JWT/Gateway UUID 사용 중
## 영향 범위: 전체 시스템 (Auth, Gateway, Frontend, rb8001, DB) ## 영향 범위: 전체 시스템 (Auth, Gateway, Frontend, rb8001, DB)
## 위험 수준: ~~매우 높음~~ → ✅ 완전 해결 ## 위험 수준: ~~매우 높음~~ → ✅ 완전 해결
@ -10,20 +10,17 @@
## 1. 문제 요약 ## 1. 문제 요약
### ✅ 모든 핵심 문제 해결 완료 ### 2025-08-28 확인 결과
**시스템 전체 UUID 체계로 통일 완료** **현재 상태**
- ✅ JWT `sub` 클레임: UUID 사용으로 수정 완료 - JWT `sub`: UUID 사용 ✅ (auth-server Line 209)
- ✅ Frontend: localStorage에 UUID 저장 및 전송 - Frontend localStorage: UUID 저장 ✅
- ✅ DB: UUID 기반 조회로 전환 완료 - Gateway: UUID로 인증 ✅
- ✅ Gateway: UUID로 사용자 조회 및 라우팅 - rb8001: JWT 검증 미구현 ❌
### 실제 사례 ### 실제 사례 (happybell80)
- User: happybell80 - UUID: 1e16e9d5-59f3-54da-a661-8abeabff4230
- UUID: 1e16e9d5-59f3-54da-a661-8abeabff4230 (UUID4 랜덤 생성) - JWT sub: UUID 사용 확인
- JWT sub: "happybell80" (username, UUID 아님) - Gateway 로그: UUID로 인증됨
- ChromaDB user_id: "happybell80" (username으로 저장됨)
- PostgreSQL: "Non-UUID user_id" 로그 발생
- conversation_logs: user_id NULL, slack_user_id에 우회 저장
--- ---