194 lines
7.2 KiB
Markdown
194 lines
7.2 KiB
Markdown
# Per-file Findings Index
|
|
|
|
이 파일은 인덱스다. finding의 주장·인용·반론·수정안은 lane 보고서가 소유한다. 동일 finding이 여러 파일을 비교하면 관련 파일 양쪽에 같은 ID가 나타날 수 있다.
|
|
|
|
## `experiment-nplus1-highlight-feed.md`
|
|
|
|
- Finding: 없음. Keycloak 결정은 없고 sibling 주제 언급만 있다.
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md)
|
|
|
|
## `feature-authentication-authorization-contract.md`
|
|
|
|
- Findings: `L1-F01`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md)
|
|
|
|
## `feature-boundary-validation-mapping-contract.md`
|
|
|
|
- Finding: 없음. Keycloak 결정은 sample seed 설명에 한정된다.
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md)
|
|
|
|
## `feature-keycloak-account-linking-spa-ux.md`
|
|
|
|
- Findings: `L1-F02`, `L1-F03`, `L1-F04`, `L1-F13`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md)
|
|
|
|
## `feature-keycloak-account-linking-sub-vs-email.md`
|
|
|
|
- Findings: `L1-F02`, `L1-F04`, `L1-F05`, `L1-F06`, `L1-F09`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md)
|
|
|
|
## `feature-keycloak-bff-vs-spa-direct.md`
|
|
|
|
- Findings: `L1-F07`, `L2-F09`, `L4-F04`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 02](lanes/lane-02-keycloak-sorted-11-20.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-docker-compose-stack.md`
|
|
|
|
- Findings: `L1-F08`, `L3-F09`, `L4-F01`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 03](lanes/lane-03-keycloak-sorted-21-30.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-edge-forwardauth-google-federation.md`
|
|
|
|
- Findings: `L1-F09`, `L1-F10`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md)
|
|
|
|
## `feature-keycloak-edge-forwardauth-no-google.md`
|
|
|
|
- Findings: `L1-F10`, `L1-F11`, `L1-F12`, `L4-F14`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-federation-spa-zero-change.md`
|
|
|
|
- Findings: `L1-F13`, `L1-F14`, `L2-F08`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-first-broker-login-flow.md`
|
|
|
|
- Findings: `L1-F02`, `L1-F04`, `L2-F01`, `L2-F02`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-google-claim-attribute-mapping.md`
|
|
|
|
- Findings: `L1-F05`, `L2-F03`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-google-redirect-uri-policy.md`
|
|
|
|
- Findings: `L2-F04`, `L2-F05`; deterministic `BARE_DECISION_REF` 3건.
|
|
- Detail: [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-header-spoofing-defense.md`
|
|
|
|
- Finding: lane-local contradiction 없음; cross-lane trusted-header owner edge가 남아 있다.
|
|
- Detail: [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-https-termination-caddy-nginx.md`
|
|
|
|
- Findings: `L2-F06`
|
|
- Detail: [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-idp-brokering-google-client.md`
|
|
|
|
- Findings: `L2-F01`, `L2-F05`; deterministic `BARE_DECISION_REF` 1건.
|
|
- Detail: [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-idp-mappers-claim-to-role.md`
|
|
|
|
- Findings: `L1-F03`, `L2-F02`, `L2-F03`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-internal-spa-direct-google-federation.md`
|
|
|
|
- Findings: `L2-F01`, `L2-F02`, `L2-F07`, `L2-F08`
|
|
- Detail: [lane 02](lanes/lane-02-keycloak-sorted-11-20.md)
|
|
|
|
## `feature-keycloak-internal-spa-direct-no-google.md`
|
|
|
|
- Findings: `L2-F08`, `L2-F09`, `L4-F04`
|
|
- Detail: [lane 02](lanes/lane-02-keycloak-sorted-11-20.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-iss-claim-hostname-mismatch.md`
|
|
|
|
- Findings: `L1-F08`, `L4-F01`; 이 문서 자체는 owner 충돌을 명시적으로 기록한다.
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 02](lanes/lane-02-keycloak-sorted-11-20.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-nginx-auth-request-integration.md`
|
|
|
|
- Findings: `L3-F01`, `L3-F02`; deterministic bare reference의 owner 대상.
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-oauth2-proxy-oidc-flow.md`
|
|
|
|
- Findings: `L3-F03`, `L3-F04`; deterministic `BARE_DECISION_REF` 3건.
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-patterns.md`
|
|
|
|
- Findings: `L3-F05`
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-pkce-flow-stages.md`
|
|
|
|
- Findings: `L3-F06`, `L3-F07`
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-public-domain-tunneling.md`
|
|
|
|
- Findings: `L3-F08`, `L3-F15`
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-realm-client-export.md`
|
|
|
|
- Findings: `L3-F04`, `L3-F07`, `L3-F09`, `L3-F10`; deterministic `BARE_DECISION_REF` 1건.
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-refresh-rotation-and-logout.md`
|
|
|
|
- Findings: `L3-F11`, `L3-F12`, `L3-F13`
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-refresh-token-rotation.md`
|
|
|
|
- Findings: `L3-F11`, `L3-F12`, `L3-F13`
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-reverse-proxy-headers.md`
|
|
|
|
- Findings: `L3-F14`, `L3-F16`
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-single-ec2-google-federation.md`
|
|
|
|
- Findings: `L3-F08`, `L3-F15`, `L3-F16`
|
|
- Detail: [lane 03](lanes/lane-03-keycloak-sorted-21-30.md)
|
|
|
|
## `feature-keycloak-single-ec2-no-google.md`
|
|
|
|
- Findings: `L4-F01`, `L4-F02`, `L4-F03`, `L4-F10`, `L4-F14`, `L4-F16`; deterministic `BARE_DECISION_REF` 1건(`fix-plan D4`, false-positive 후보).
|
|
- Detail: [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-spa-token-storage-tradeoff.md`
|
|
|
|
- Findings: `L2-F09`, `L4-F04`, `L4-F05`, `L4-F06`
|
|
- Detail: [lane 02](lanes/lane-02-keycloak-sorted-11-20.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-spring-rs-audience-validator.md`
|
|
|
|
- Findings: `L1-F14`, `L4-F02`, `L4-F06`, `L4-F07`, `L4-F08`, `L4-F09`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-spring-rs-role-mapping.md`
|
|
|
|
- Findings: `L4-F02`, `L4-F08`, `L4-F09`, `L4-F10`
|
|
- Detail: [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-three-leg-trust-chain.md`
|
|
|
|
- Findings: `L4-F11`, `L4-F12`, `L4-F13`
|
|
- Detail: [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-traefik-forwardauth-alternative.md`
|
|
|
|
- Findings: `L1-F11`, `L4-F14`, `L4-F15`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-keycloak-vanilla-js-spa-pkce.md`
|
|
|
|
- Findings: `L4-F03`, `L4-F16`, `L4-F17`, `L4-F18`
|
|
- Detail: [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|
|
|
|
## `feature-security-operational-baseline.md`
|
|
|
|
- Findings: `L1-F01`, `L4-F19`, `L4-F20`, `L4-F21`
|
|
- Detail: [lane 01](lanes/lane-01-keycloak-sorted-01-10.md), [lane 04](lanes/lane-04-keycloak-sorted-31-38.md)
|