forked from baron/baron-sso
3.2 KiB
3.2 KiB
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)
- 사용자가 Baron SSO 웹앱에 접속한다. 4.1. 이메일 로그인: 이메일과 비밀번호를 입력하고 로그인한다. 4.2. SMS 로그인: 전화번호를 입력하고 '전송'을 누른다 -> 앱은 대기화면(Polling)으로 전환 -> 수신된 SMS 링크 클릭 -> 앱이 로그인 승인됨.
- 사용자가 앱푸시 혹은 이메일 수신함에서 Enchanted Link를 클릭한다.
- Baron SSO 웹앱이 로그인을 감지하고 메인 대시보드(런처)로 전환된다.
- 런처에서 '메일 서비스' 아이콘을 클릭하여 해당 서비스로 이동한다.
6. 마일스톤 (Milestones)
- Phase 1 (Current): 기획 및 아키텍처 설계, 환경 구성.
- Phase 2: Go Fiber Backend (Audit) 기본 구현.
- Phase 3: Descope 설정 및 Flutter Web 기본 연동 (Enchanted Link).
- Phase 4: 대시보드 및 세션 관리 UI 구현.
- Phase 5: 관리자 모드 구현 및 통합 테스트 완료.