docs: Slack-Google 인증 통합 문제점 추가
- Slack OAuth와 Google OAuth 별개 운영 문제 - Slack 사용자 매핑 현황 (3개 하드코딩) - 복잡한 관계 구조 및 권한 충돌 가능성 - 이메일 기반 자동 연결 전략 제안 - Phase 5 로드맵 추가
This commit is contained in:
parent
1699e852b4
commit
b8765f44ae
@ -115,6 +115,33 @@ collection_name = f"{robing_id}_{user_id}_episodic"
|
||||
- user_id vs username vs email 혼용
|
||||
- JWT의 'sub'가 username인지 user_id인지 불명확
|
||||
|
||||
### 7. Slack 통합과 인증 체계 불일치 🔗
|
||||
- **Slack OAuth와 Google OAuth 별개 운영**
|
||||
- Slack 워크스페이스 인증 (봇 토큰)
|
||||
- Google 개인 인증 (사용자 토큰)
|
||||
- 두 시스템 간 연결 고리 불명확
|
||||
|
||||
- **Slack 사용자 매핑 문제**
|
||||
- slack_user_id (U0925SXQFDK) ↔ user_id (UUID) 매핑 필요
|
||||
- 현재 하드코딩된 매핑 3개만 존재
|
||||
- 신규 Slack 사용자 자동 연결 방법 없음
|
||||
|
||||
- **복잡한 관계 구조**
|
||||
```
|
||||
Slack Workspace ← SlackWorkspaces 테이블
|
||||
↓
|
||||
Slack User ID ← slack_user_mapping 테이블
|
||||
↓
|
||||
User (UUID) ← users 테이블
|
||||
↓
|
||||
Google Account (OAuth)
|
||||
```
|
||||
|
||||
- **권한 충돌 가능성**
|
||||
- Slack 봇 권한: chat:write, channels:read 등
|
||||
- Google 권한: gmail.modify, calendar.events 등
|
||||
- 같은 사용자가 두 가지 인증 경로 보유
|
||||
|
||||
## 결정 필요 사항
|
||||
|
||||
### 1. 주요 식별자 선택
|
||||
@ -190,6 +217,33 @@ X-Username: happybell80 // 명확한 이름
|
||||
- DB에 권한 레벨 저장: `oauth_scopes` 필드 추가
|
||||
- Frontend에서 권한 상태 표시 및 추가 연결 버튼 제공
|
||||
|
||||
### 7. Slack과 Google 인증 통합 전략
|
||||
```
|
||||
옵션 A: 통합 인증 (하나의 주 계정)
|
||||
- Google 로그인을 주 인증으로 사용
|
||||
- Slack은 추가 연결 (선택적)
|
||||
- 장점: 단순한 인증 흐름
|
||||
- 단점: Slack 전용 사용자 지원 어려움
|
||||
|
||||
옵션 B: 독립 인증 (현재)
|
||||
- Google과 Slack 각각 독립 인증
|
||||
- 수동 매핑 필요
|
||||
- 장점: 유연성
|
||||
- 단점: 복잡한 관리
|
||||
|
||||
옵션 C: 자동 연결 (추천) ✅
|
||||
- 이메일 기반 자동 매칭
|
||||
- Slack 이메일 == Google 이메일 시 자동 연결
|
||||
- 불일치 시 수동 연결 옵션 제공
|
||||
```
|
||||
|
||||
**구현 방안:**
|
||||
- Slack 사용자가 처음 메시지 전송 시:
|
||||
1. Slack API로 이메일 조회
|
||||
2. users 테이블에서 같은 이메일 검색
|
||||
3. 매칭되면 자동으로 slack_user_mapping 생성
|
||||
4. 없으면 임시 계정 생성 후 연결 대기
|
||||
|
||||
## 즉시 수정 필요 (Critical)
|
||||
|
||||
### 1. Frontend (robing-api.ts)
|
||||
@ -240,6 +294,12 @@ collection_name = f"{robing_id}_{username}_episodic"
|
||||
3. DB에 사용자별 권한 상태 저장
|
||||
4. Frontend에 권한 관리 UI 추가
|
||||
|
||||
### Phase 5: Slack-Google 인증 통합 (2주)
|
||||
1. 이메일 기반 자동 매칭 로직 구현
|
||||
2. Slack 사용자 첫 메시지 시 자동 계정 생성
|
||||
3. 수동 연결 UI 개발
|
||||
4. 통합 대시보드 구현
|
||||
|
||||
## 참고 사항
|
||||
|
||||
- **JWT Secret**: 모든 서비스가 같은 키 공유 필요
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user