1
0
forked from baron/baron-sso
Files
baron-sso/README.md
2025-12-23 18:05:10 +09:00

109 lines
3.5 KiB
Markdown

# Baron SSO
**Baron SSO**는 화이트 라벨링된 사용자 인증 허브이자 통합 런처입니다.
**Descope**를 활용하여 안전한 비밀번호 없는 인증(Enchanted Link)을 제공하며, Flutter로 구현된 커스텀 UI를 통해 매끄러운 사용자 경험을 보장합니다. Backend는 Go (Fiber)와 ClickHouse를 사용하여 대용량 감사 로그(Audit Log)를 관리합니다.
## 🏗 아키텍처 (Architecture)
### 1. Frontend (Flutter Web)
- **Framework**: Flutter 3.32+
- **Organization**: `kr.co.baroncs`
- **Key Packages**: `descope`, `flutter_riverpod`, `go_router`
- **Features**:
- 탭 기반 로그인 UI (이메일 / SMS)
- Descope SDK 연동 (Enchanted Link)
### 2. Backend (Go Fiber)
- **Language**: Go 1.25+
- **Framework**: Fiber v2.25+
- **Database**:
- **ClickHouse**: 감사 로그 (고성능 데이터 수집)
- **PostgreSQL**: 메타데이터 저장소 (Primary)
- **Features**:
- `POST /api/v1/audit`: 감사 로그 수집 API
### 4. 주요 시나리오 (Core Scenarios)
1. **Same Browser SSO**: Baron SSO에 로그인된 상태에서 런처를 통해 타 앱/서비스로 이동 (자동 로그인).
2. **Cross-Device Auth**: PC에서 로그인 시도 시, 이미 로그인된 모바일 앱으로 알림을 보내 승인 (Enchanted Link 활용).
3. **Clean Login**: 최초 진입 시 이메일 또는 SMS를 통한 로그인 (향후 OTP, MFA 확장 예정).
---
## 🚀 시작하기 (Getting Started)
### 사전 요구사항 (Prerequisites)
- Docker & Docker Compose
- Flutter SDK (로컬 개발용)
- Go (로컬 백엔드 개발용)
### 환경 설정 (Environment Setup)
1. 예제 환경 설정 파일을 복사합니다.
```bash
cp .env.sample .env
```
2. **중요**: `.env` 파일을 열어 **Descope Project ID**를 입력해야 합니다.
```env
DESCOPE_PROJECT_ID=P2t...
```
### 전체 스택 실행 (Running the Stack)
#### 1. 인프라 실행 (데이터베이스)
데이터 레이어를 먼저 실행합니다.
```bash
docker compose -f compose.infra.yaml up -d
```
#### 2. 애플리케이션 실행
Frontend와 Backend 서비스를 실행합니다.
```bash
docker compose up
```
- **Frontend**: http://localhost:5000 접속
- **Backend**: http://localhost:3000 (API)
- **ClickHouse**: http://localhost:8123
### 로컬 개발 (Manual)
Docker 없이 코드를 수정하며 개발하려면:
**Backend:**
```bash
cd backend
go mod tidy
go run cmd/server/main.go
```
**Frontend:**
```bash
cd frontend
flutter pub get
flutter run -d chrome
```
---
## 📂 프로젝트 구조 (Project Structure)
```
baron_sso/
├── backend/ # Go Fiber 애플리케이션
│ ├── cmd/server/ # 진입점 (Entry point)
│ ├── internal/ # 도메인, 핸들러, 저장소(Repository)
│ └── Dockerfile
├── frontend/ # Flutter 애플리케이션
│ ├── lib/ # UI 및 로직
│ └── pubspec.yaml
├── compose.infra.yaml # DB 서비스 (Postgres, ClickHouse)
├── docker-compose.yaml # 앱 서비스 (Front, Back)
├── .env.sample # 환경 설정 템플릿
└── README.md # 본 파일
```
## 📝 상태 및 로드맵 (Status & Roadmap)
- [x] **Phase 1**: 초기 설정 및 아키텍처 설계 (완료)
- [x] **Phase 2**: Backend Audit API 구현 (완료)
- [x] **Phase 3**: Frontend 로그인 UI 및 Descope 인증 로직 (완료)
- [ ] **Phase 4**: Frontend - Backend 연동 (Audit 전송) (예정)
- [ ] **Phase 5**: 대시보드 및 통합 런처 구현 (예정)