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