forked from baron/baron-sso
3.4 KiB
3.4 KiB
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)
- 사용자가 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: 관리자 모드 구현 및 통합 테스트 완료.