# Product Requirements Document (PRD)

## 1. 개요 (Overview)
**Baron SSO**는 사용자 중심의 인증 허브이자 서비스 런처입니다. Ory-Stack 중 Kratos를 IDP(Identity Provider)로 사용하여 강력한 보안(MFA)을 제공하면서도, 최종 사용자에게는 **Baron SSO**라는 브랜드 경험을 일관되게 제공하는 것을 목표로 합니다.

## 2. 목표 (Goals)
- **Private IDP Hub**: 사용자가 자신의 계정 및 로그인 세션을 한곳에서 관리.
- **Seamless Auth**: 비밀번호 없는 간편 로그인 제공.
- **White-Labeling**: 자체 Flutter UI로 인증 흐름 완결.
- **Audit & Security**: 모든 중요 인증 이벤트 및 접근 기록을 자체 Backend(Go Fiber)를 통해 ClickHouse에 Audit Log로 저장.
- **Unified Launcher**: 인증 후 접근 가능한 서비스들을 한 화면에서 제공.

## 3. 기술 스택 (Tech Stack)
- **UserFront**: Flutter (Web PoC 우선, 추후 iOS/Android)
- **AdminFront**: Vite, React, Shadcn/ui, biome, playwright
- **DevFront**: Vite, React, Shadcn/ui, biome, playwright
- **Ory (IDP)**: Ory (Oathkeeper, Kratos, Hydra, Keto, Posgres)
- **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)**: 전화번호 입력 -> Link with Code (SMS via Ncloud) -> 링크 클릭 -> 앱 로그인 완료 (Polling).
- **SMS Provider**: Ncloud (Naver Cloud Platform) 연동.
- **MFA (Multi-Factor Authentication)**: 필요 시 TOTP 또는 생체 인증 추가 (Descope Flow 설정). <- PoC Scope Out


### 4.2 대시보드 (Dashboard)
- **내 계정 정보**: 프로필 확인/수정.
- **활성 세션 리스트 (Active Sessions)**: 현재 로그인되어 있는 기기/브라우저 목록 확인 및 원격 로그아웃.

### 4.3 통합 런처 (UserFront)
- 로그인 승인 후 진입하는 메인 화면.
- 접근 권한이 있는 하위 서비스 아이콘 나열 및 SSO 연결.

### 4.4 관리자 사이트 (AdminFront)

### 4.5 개발자 사이트 (DevFront)

## 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**: 관리자 모드 구현 및 통합 테스트 완료.
