Files
BaronSSO/baron-sso/docs/initial_PRD.md

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)

  1. 사용자가 Baron SSO 웹앱에 접속한다. 4.1. 이메일 로그인: 이메일과 비밀번호를 입력하고 로그인한다. 4.2. SMS 로그인: 전화번호를 입력하고 '전송'을 누른다 -> 앱은 대기화면(Polling)으로 전환 -> 수신된 SMS 링크 클릭 -> 앱이 로그인 승인됨.
  2. 사용자가 앱푸시 혹은 이메일 수신함에서 Enchanted Link를 클릭한다.
  3. Baron SSO 웹앱이 로그인을 감지하고 메인 대시보드(런처)로 전환된다.
  4. 런처에서 '메일 서비스' 아이콘을 클릭하여 해당 서비스로 이동한다.

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