forked from baron/baron-sso
56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
# Baron SSO - Product Requirements Document (PRD)
|
|
|
|
## 1. 개요 (Overview)
|
|
**Baron SSO**는 사용자 중심의 인증 허브이자 서비스 런처입니다. Descope를 IDP(Identity Provider)로 사용하여 강력한 보안(MFA)을 제공하면서도, 최종 사용자에게는 **Baron SSO**라는 브랜드 경험을 일관되게 제공하는 것을 목표로 합니다.
|
|
|
|
## 2. 목표 (Goals)
|
|
- **Private IDP Hub**: 사용자가 자신의 계정 및 로그인 세션을 한곳에서 관리.
|
|
- **Seamless Auth**: Descope의 Enchanted Link를 활용하여 비밀번호 없는 간편 로그인 제공.
|
|
- **White-Labeling**: Descope의 UI를 노출하지 않고 자체 Flutter UI로 인증 흐름 완결.
|
|
- **Audit & Security**: 모든 중요 인증 이벤트 및 접근 기록을 자체 Backend(Go Fiber)를 통해 ClickHouse에 Audit Log로 저장.
|
|
- **Unified Launcher**: 인증 후 접근 가능한 서비스들을 한 화면에서 제공.
|
|
|
|
## 3. 기술 스택 (Tech Stack)
|
|
- **Frontend**: Flutter (Web PoC 우선, 추후 iOS/Android)
|
|
- **Backend (IDP)**: Descope (Auth Logic, User Management)
|
|
- **Backend (Audit/API)**: Go (Fiber Framework)
|
|
- **Database**: Postgres (Meta), ClickHouse (Audit Logs)
|
|
- **Protocol**: OIDC/SAML (Service Integration), REST (Audit)
|
|
|
|
## 4. 주요 기능 (Key Features)
|
|
|
|
### 4.1 로그인 및 인증 (Authentication)
|
|
- **로그인 방식 1 (Primary)**: 이메일 + 비밀번호 (Email/Password).
|
|
- **로그인 방식 2 (Alternative)**: 전화번호 입력 -> Enchanted Link (SMS via Ncloud) -> 링크 클릭 -> 앱 로그인 완료 (Polling).
|
|
- **SMS Provider**: Ncloud (Naver Cloud Platform) 연동.
|
|
- **MFA (Multi-Factor Authentication)**: 필요 시 TOTP 또는 생체 인증 추가 (Descope Flow 설정). <- PoC Scope Out
|
|
- **Descope Hiding**: Descope의 기본 화면 대신 Flutter로 구현된 커스텀 UI 사용.
|
|
|
|
### 4.2 대시보드 (Dashboard)
|
|
- **내 계정 정보**: 프로필 확인/수정.
|
|
- **활성 세션 리스트 (Active Sessions)**: 현재 로그인되어 있는 기기/브라우저 목록 확인 및 원격 로그아웃.
|
|
|
|
### 4.3 통합 런처 (Unified Launcher)
|
|
- 로그인 승인 후 진입하는 메인 화면.
|
|
- 접근 권한이 있는 하위 서비스 아이콘 나열 및 SSO 연결.
|
|
|
|
### 4.4 감사 로그 (Audit Backend)
|
|
### 4.5 관리자 모드 (Admin Mode)
|
|
- Descope API를 활용한 사용자 관리 (생성, 삭제, 상태 변경).
|
|
- Descope 설정 및 흐름 관리 기능 노출 (필요 시).
|
|
|
|
## 5. 사용자 시나리오 (User Flow)
|
|
1. 사용자가 Baron SSO 웹앱에 접속한다.
|
|
4.1. **이메일 로그인**: 이메일과 비밀번호를 입력하고 로그인한다.
|
|
4.2. **SMS 로그인**: 전화번호를 입력하고 '전송'을 누른다 -> 앱은 대기화면(Polling)으로 전환 -> 수신된 SMS 링크 클릭 -> 앱이 로그인 승인됨.
|
|
4. 사용자가 앱푸시 혹은 이메일 수신함에서 Enchanted Link를 클릭한다.
|
|
5. Baron SSO 웹앱이 로그인을 감지하고 메인 대시보드(런처)로 전환된다.
|
|
6. 런처에서 '메일 서비스' 아이콘을 클릭하여 해당 서비스로 이동한다.
|
|
|
|
## 6. 마일스톤 (Milestones)
|
|
1. **Phase 1 (Current)**: 기획 및 아키텍처 설계, 환경 구성.
|
|
2. **Phase 2**: Go Fiber Backend (Audit) 기본 구현.
|
|
3. **Phase 3**: Descope 설정 및 Flutter Web 기본 연동 (Enchanted Link).
|
|
4. **Phase 4**: 대시보드 및 세션 관리 UI 구현.
|
|
5. **Phase 5**: 관리자 모드 구현 및 통합 테스트 완료.
|