2.1 KiB
2.1 KiB
AP4는 공개 edge에서 session을 정제된 upstream identity로 바꾼다
Alternative text
외부 브라우저 zone과 Nginx, oauth2-proxy, Spring upstream이 있는 AP4 deployment path를 나눈 edge trust 아키텍처.
Long description
왼쪽 외부 브라우저가 AP4_SESSION과 함께 AP4 deployment path의 공개 Nginx entry point를 호출한다. 같은 deployment path에서 Nginx는 host 비공개 oauth2-proxy의 internal /oauth2/auth endpoint에 subrequest를 보내 session을 검증하고 user와 email 결과를 받는다. 이어서 client가 보낸 동명 header를 덮어쓰고 Nginx-owned identity header와 internal token을 host 비공개 Spring upstream의 /edge/me로 전달한다. Upstream은 user header와 internal token을 함께 확인하며 JWT를 직접 입력으로 받지 않는다.
Elements and evidence
- Boundary: External browser (system): AP4_SESSION을 애플리케이션의 공개 entry point로 보내는 외부 client 경계. Evidence: L914–L919, L980–L999.
- Boundary: AP4 deployment path (system): Host-published Nginx와 host 비공개 oauth2-proxy 및 Spring app이 연결되는 deployment 경계. Evidence: L914–L914, L1093–L1093.
- Browser (actor): Opaque AP4_SESSION을 자동 첨부해 공개 edge endpoint를 호출한다. Evidence: L980–L999.
- Nginx edge (service): Internal auth subrequest를 만들고 검증 결과를 allowlisted upstream header로 다시 조립하는 공개 gateway. Evidence: L914–L928, L1009–L1028.
- Spring upstream (service): 정제된 user header와 Nginx-owned internal token을 함께 검증하는 /edge/me upstream. Evidence: L1017–L1037, L1065–L1078.
- oauth2-proxy (service): Confidential edge-proxy client이자 AP4_SESSION의 유효성을 판단하는 host 비공개 auth service. Evidence: L940–L990, L1009–L1014.
Relationships
- Browser → Nginx edge: GET /api/edge · AP4_SESSION. Evidence: L994–L999.
- Nginx edge → oauth2-proxy: internal /oauth2/auth subrequest. Evidence: L922–L928, L1009–L1009.
- Nginx edge → Spring upstream: allowlisted identity + internal token. Evidence: L1017–L1026, L1065–L1078.