Files
llm-wiki/vault/10-projects/keycloak-patterns-overview/branch-notes/feature-keycloak-bff-oauth2login-session.md
T

167 lines
4.7 KiB
Markdown

---
title: branch / feature-keycloak-bff-oauth2login-session
source_type: branch-note
status: raw
id: BR-KEYCLOAK-PATTERNS-OVERVIEW-010
kind: project-work-item
project: keycloak-patterns-overview
work_item: WI-KEYCLOAK-PATTERNS-OVERVIEW-010
inherits: [DEC-KEYCLOAK-PATTERNS-OVERVIEW-BFF-SESSION-001@1, DEC-KEYCLOAK-PATTERNS-OVERVIEW-SECRET-BOUNDARY-001@1]
refines: []
overrides: []
depends_on: [WI-KEYCLOAK-PATTERNS-OVERVIEW-002]
imports: []
delegates: []
accepts_delegations: []
contract_packet: 1
contract_packet_sha256: 7aec2d980997db5ff4dc83374809ecc4a503b3b46665c6cea8bdd3114c1a9f0b
branch: feature-keycloak-bff-oauth2login-session
parent_branch:
related_projects: [keycloak-patterns-overview]
tags: [branch]
created: 2026-07-24
target_merge:
status_label: in-progress
---
# branch: feature-keycloak-bff-oauth2login-session
<!-- section-id: branch-parent -->
## 부모 (필수)
- [[raw/project-notes/keycloak-patterns-overview]]
<!-- GENERATED: branch-contract:start -->
<!-- section-id: branch-contract-packet -->
## 브랜치 계약 패킷
- **생성 시 프로젝트 개정**: `1`
- **패킷 스키마**: `contract_packet: 1`
- **완료 조건**: browser token 0개와 SESSION cookie만으로 BFF proxy API 200이 재현된다
<!-- section-id: inherited-project-decisions -->
### 상속한 프로젝트 결정
| Decision Ref | Project Summary | Branch Application | Source |
|---|---|---|---|
| `DEC-KEYCLOAK-PATTERNS-OVERVIEW-BFF-SESSION-001@1` | AP3는 token을 backend session에 두고 browser에는 cookie만 둔다 | `WI-KEYCLOAK-PATTERNS-OVERVIEW-010` 완료 조건에 적용 | `[[raw/project-notes/keycloak-patterns-overview]]` |
| `DEC-KEYCLOAK-PATTERNS-OVERVIEW-SECRET-BOUNDARY-001@1` | confidential client secret은 env var로 주입하고 commit·realm export 평문을 금지한다 | `WI-KEYCLOAK-PATTERNS-OVERVIEW-010` 완료 조건에 적용 | `[[raw/project-notes/keycloak-patterns-overview]]` |
<!-- section-id: branch-local-decisions -->
### 브랜치 지역 결정
| Decision ID | Decision | Relation | Supporting Claims | Status |
|---|---|---|---|---|
<!-- section-id: declared-overrides -->
### 선언한 예외
| Override ID | Overrides | Reason | Approval | Status |
|---|---|---|---|---|
<!-- GENERATED: branch-contract:end -->
<!-- GENERATED: artifact-imports:start -->
### 가져온 artifact 계약
| Artifact Ref | Owner | Producer | Schema Ref |
|---|---|---|---|
<!-- GENERATED: artifact-imports:end -->
<!-- GENERATED: project-contract-imports:start -->
## 가져온 프로젝트 계약
| Ref | Owner | 요약 | Branch 적용 |
|---|---|---|---|
<!-- GENERATED: project-contract-imports:end -->
<!-- GENERATED: received-delegations:start -->
### 수신한 위임
| Delegation Ref | From | Concern | Status |
|---|---|---|---|
<!-- GENERATED: received-delegations:end -->
<!-- GENERATED: flow:start -->
### 가져온 흐름 단계
| Stage Ref | Order | Owner | Input | Action | Output |
|---|---:|---|---|---|---|
<!-- GENERATED: flow:end -->
<!-- section-id: branch-goal -->
## 목표
- `WI-KEYCLOAK-PATTERNS-OVERVIEW-010`의 완료 조건을 구현한다: browser token 0개와 SESSION cookie만으로 BFF proxy API 200이 재현된다
<!-- section-id: branch-scope -->
## 범위
### 포함 범위
- Work Item 완료 조건
### 제외 범위
- project decision registry 변경
## 근거 (필수, 최소 1개+)
외부 근거 미등록. `/branch-spec feature-keycloak-bff-oauth2login-session` 단계에서 source claim을 연결한다.
## TODO
- [ ] browser token 0개와 SESSION cookie만으로 BFF proxy API 200이 재현된다 — 등급: `planned`
## 진행 중 메모
아직 없음.
## 결정 사항
project 결정 외 branch-local 결정은 아직 없음.
<!-- section-id: decision-evidence -->
## 결정-근거 매핑
| Decision ID | Decision | 선택 조건 (언제 이 결정 / 언제 대안) | Supporting Claims | Evidence Strength | Open Risk |
|---|---|---|---|---|---|
<!-- section-id: implementation -->
## 구현 가이드
`/branch-spec` 단계에서 source claim 기반으로 작성한다.
<!-- section-id: edge-failure-dependency -->
## 엣지·실패·의존
- **실패·엣지 경로**: `/branch-spec` 단계에서 구체화한다.
- **다른 계약 의존**: `WI-KEYCLOAK-PATTERNS-OVERVIEW-002`
<!-- section-id: claims-to-verify -->
## 검증해야 할 주장
| Claim | Why uncertain | How to verify | Status |
|---|---|---|---|
## 관심사 커버리지 (coverage-auditor 자동 생성 — 있을 때)
`/coverage` 실행 전.
## 마주친 문제
아직 없음.
## 묶음 (이 branch에서 파생된 자료)
<!-- GENERATED: branches:start -->
<!-- GENERATED: branches:end -->
## 관련 일일 노트
해당 없음.
## 완료 후 정리
- PR 링크:
- 리뷰 메모: