From 2cf741e472d193bf3f73ed01b1070ea1a164e34b Mon Sep 17 00:00:00 2001 From: happybell80 Date: Thu, 28 Aug 2025 17:03:46 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20JWT/UUID=20=ED=98=84=EC=9E=AC=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=20=EB=B0=98=EC=98=81=20-=20=EC=B6=94?= =?UTF-8?q?=EC=B8=A1=20=EC=A0=9C=EA=B1=B0,=20=EC=8B=A4=EC=A0=9C=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=20=EA=B2=B0=EA=B3=BC=EB=A7=8C=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 300_architecture/uuid_conversion_system.md | 6 ++--- ...리_및_conversation_logs_문제_해결.md | 12 ++++----- .../250827_JWT_인증_구현_COMPLETED.md | 16 +++++------ .../250827_UUID_username_혼용_CRITICAL.md | 27 +++++++++---------- 4 files changed, 29 insertions(+), 32 deletions(-) diff --git a/300_architecture/uuid_conversion_system.md b/300_architecture/uuid_conversion_system.md index 24be307..cda7043 100644 --- a/300_architecture/uuid_conversion_system.md +++ b/300_architecture/uuid_conversion_system.md @@ -17,9 +17,9 @@ RO-BEING 시스템의 UUID 변환 체계 문서입니다. Google OAuth는 UUID4, | 타입 | 생성 방식 | 용도 | 특징 | |------|----------|------|------| -| UUID4 | 랜덤 생성 | Google OAuth 사용자 | 매번 다른 값 생성 | -| ~~UUID5~~ | ~~네임스페이스 해시~~ | ~~Slack 사용자~~ | 폐기 (2025-08-28) | -| API 매핑 | 51123 DB 조회 | Slack 사용자 | slack_user_mapping 테이블 사용 | +| UUID4 | 랜덤 생성 | Google OAuth 사용자 | auth-server에서 생성 | +| UUID5 | 네임스페이스 해시 | robeing-monitor 사용 중 | namespace 확인 필요 | +| DB 매핑 | slack_user_mapping | Slack 사용자 매핑 | 실제 사용 여부 확인 필요 | ### 2.2 네임스페이스 diff --git a/troubleshooting/250826_id_체계_정리_및_conversation_logs_문제_해결.md b/troubleshooting/250826_id_체계_정리_및_conversation_logs_문제_해결.md index d8ea14e..c671a02 100644 --- a/troubleshooting/250826_id_체계_정리_및_conversation_logs_문제_해결.md +++ b/troubleshooting/250826_id_체계_정리_및_conversation_logs_문제_해결.md @@ -1,8 +1,8 @@ # ID 체계 정리 및 conversation_logs 저장 문제 해결 -## 작성일: 2025-08-26 +## 작성일: 2025-08-26 (수정: 2025-08-28) ## 작성자: 서버 관리자 -## 상태: ✅ 모두 해결 (gmail_tokens 이미 slack_user_id 사용 중) +## 상태: ⚠️ 부분 해결 ## 영향: 대화 저장 실패, ID 타입 불일치로 인한 데이터 무결성 문제 ## 최종 업데이트: 2025-08-26 21:00 @@ -31,10 +31,10 @@ - **VARCHAR**: robeing_id, slack_user_id, slack_id, channel_id - **INTEGER**: conversation_logs.id, gmail_tokens.id -#### 동일 개념, 다른 이름 -- `slack_user_id` (slack_user_mapping) -- `slack_id` (gmail_tokens) -- 둘 다 Slack 사용자 ID를 의미 +#### 2025-08-28 확인 +- gmail_tokens.slack_user_id: VARCHAR(100) +- gmail_tokens.user_id: UUID (FK → users.id) +- Slack ID와 UUID 동시 저장 #### 변환 문제 - UUID ↔ Slack ID 변환 로직 불일치 diff --git a/troubleshooting/250827_JWT_인증_구현_COMPLETED.md b/troubleshooting/250827_JWT_인증_구현_COMPLETED.md index 59fc8d4..1ffe2b5 100644 --- a/troubleshooting/250827_JWT_인증_구현_COMPLETED.md +++ b/troubleshooting/250827_JWT_인증_구현_COMPLETED.md @@ -1,8 +1,8 @@ -# JWT 인증 ~~완전 미구현~~ 구현 완료 - ~~CRITICAL 보안 취약점~~ RESOLVED +# JWT 인증 부분 구현 - 보안 취약점 잔존 -## 작성일: 2025-08-27 +## 작성일: 2025-08-27 (수정: 2025-08-28) ## 작성자: 51123 서버 관리자 -## 상태: ✅ RESOLVED - 2025-08-27 15:32 완전 해결 +## 상태: ⚠️ PARTIAL - rb8001 JWT 검증 미구현 ## 영향 범위: 전체 시스템 (51123, 51124 모든 서비스) ## 위험 수준: 극도로 높음 @@ -10,11 +10,11 @@ ## 1. 문제 요약 -### ~~🚨 핵심 문제~~ ✅ 완전 해결 (2025-08-27 15:32) -**~~현재 시스템은 JWT 인증이 완전히 무력화된 상태입니다.~~** -- ~~누구나 인증 없이 모든 API 호출 가능~~ → ✅ JWT 필수 -- ~~아무 user_id로 타인 행세 가능~~ → ✅ JWT에서 추출 -- ~~타 사용자 데이터 접근 가능~~ → ✅ 인증된 사용자만 접근 +### 핵심 문제 - 부분 해결 +**JWT 인증 부분 구현 상태** +- auth-server: JWT 생성 ✅ (sub에 UUID) +- Gateway: JWT 검증 ✅ +- rb8001: JWT 검증 ❌ (2025-08-28 확인) **~~추가 발견 (15:25)~~** → ✅ 해결 (15:32): Gateway → rb8001 Authorization 헤더 전달 - `/home/admin/robeing-gateway/app/main.py:250-252` 수정 완료 diff --git a/troubleshooting/250827_UUID_username_혼용_CRITICAL.md b/troubleshooting/250827_UUID_username_혼용_CRITICAL.md index 07f545d..e04fd69 100644 --- a/troubleshooting/250827_UUID_username_혼용_CRITICAL.md +++ b/troubleshooting/250827_UUID_username_혼용_CRITICAL.md @@ -1,8 +1,8 @@ # UUID vs Username 혼용 - CRITICAL 시스템 전체 ID 체계 혼란 -## 작성일: 2025-08-27 +## 작성일: 2025-08-27 (수정: 2025-08-28) ## 작성자: 51123 서버 관리자 -## 상태: ✅ COMPLETED - 2025-08-27 17:30 모든 UUID 문제 해결 완료 +## 상태: ✅ JWT/Gateway UUID 사용 중 ## 영향 범위: 전체 시스템 (Auth, Gateway, Frontend, rb8001, DB) ## 위험 수준: ~~매우 높음~~ → ✅ 완전 해결 @@ -10,20 +10,17 @@ ## 1. 문제 요약 -### ✅ 모든 핵심 문제 해결 완료 -**시스템 전체 UUID 체계로 통일 완료** -- ✅ JWT `sub` 클레임: UUID 사용으로 수정 완료 -- ✅ Frontend: localStorage에 UUID 저장 및 전송 -- ✅ DB: UUID 기반 조회로 전환 완료 -- ✅ Gateway: UUID로 사용자 조회 및 라우팅 +### 2025-08-28 확인 결과 +**현재 상태** +- JWT `sub`: UUID 사용 ✅ (auth-server Line 209) +- Frontend localStorage: UUID 저장 ✅ +- Gateway: UUID로 인증 ✅ +- rb8001: JWT 검증 미구현 ❌ -### 실제 사례 -- User: happybell80 -- UUID: 1e16e9d5-59f3-54da-a661-8abeabff4230 (UUID4 랜덤 생성) -- JWT sub: "happybell80" (username, UUID 아님) -- ChromaDB user_id: "happybell80" (username으로 저장됨) -- PostgreSQL: "Non-UUID user_id" 로그 발생 -- conversation_logs: user_id NULL, slack_user_id에 우회 저장 +### 실제 사례 (happybell80) +- UUID: 1e16e9d5-59f3-54da-a661-8abeabff4230 +- JWT sub: UUID 사용 확인 +- Gateway 로그: UUID로 인증됨 ---