wiki2 observatory nornen knowledge atlas

decision · wiki/decision-chemical-auth-bff.md

Decision — chemical auth via BFF

브라우저 인증·API 진입 정본은 **BFF 세션(`sid`) + JWT Redis 보관 + Next `/api/*`→BFF rewrite** 이다. HANDOFF 식 “Next가 MS로 직접 rewrite”는 **구형/요약 오류**로 취급한다.

corpusprojectlayerjudgmenttypedecisiondomainbackendsprojectchemicalstatusactiveupdated2026-07-18originowned

Decision — chemical auth via BFF

한 줄: 브라우저 인증·API 진입 정본은 BFF 세션(sid) + JWT Redis 보관 + Next /api/*→BFF rewrite 이다. HANDOFF 식 “Next가 MS로 직접 rewrite”는 구형/요약 오류로 취급한다.

결정

  • 선택한 안: BFF (services/bff, FastAPI) 가 유일한 브라우저→백엔드 게이트
  • 쿠키: HttpOnly sid (admin은 admin_sid)
  • JWT: bff:session:{uuid} Redis에만 존재, 브라우저 미노출
  • Next: UI + /api/:path*BFF_URL rewrite only (output: standalone)
  • 포트: BFF 컨테이너 8000 / 호스트 기본 8010; compose 네트워크 http://bff:8000
  • 하위 MS(gateway:8001 등)는 BFF 서비스 프록시가 Authorization 주입 후 호출

대안

요지 탈락 이유
A. Next rewrites → 각 MS 직행 HANDOFF 다이어그램 요약 현재 next.config 단일 BFF destination과 불일치; JWT를 FE에 두거나 쿠키 공유 복잡
B. BFF 세션 게이트 spec + 현 코드 채택
C. 브라우저 직접 Gateway JWT SPA 표준 XSS에 JWT 노출, silent refresh·테넌트 경계 부담

근거

문서 정합 규칙 (이후)

  • wiki·온보딩에서 인증을 말할 때 이 decision을 인용
  • HANDOFF raw는 불변; 구 다이어그램은 “시점 스냅샷/축약”이며 운영 정본 아님
  • admin 전역 API는 admin-gateway + admin 세션 쿠키 경로를 따르되, 브라우저 진입은 여전히 BFF 경유 전제

폐기·재검토 조건

  • BFF 제거 PR이 머지되고 next.config가 MS 다중 destination으로 바뀌는 실측
  • 데스크톱(Tauri)이 sid 쿠키 모델과 다른 네이티브 토큰 모델을 공식 채택할 때 (별도 decision)

관련