1.5 KiB
1.5 KiB
백채널 로그아웃은 양쪽이 있어야 한다
Alternative text
Keycloak 이 부를 주소와 앱이 받을 엔드포인트가 각각 비어 있어 로그아웃 통지가 어느 쪽에서도 성립하지 않는 구성.
Long description
C-1 에서 로그아웃이 다른 앱으로 퍼지지 않는 것을 관측했고 원인은 단순했다. 두 클라이언트 모두 backchannelLogoutUrl 이 비어 있어 Keycloak 은 부를 주소를 몰랐고, BFF 소스에는 oidcLogout 설정이 없어 주소를 알려줘도 받을 곳이 없었다. Keycloak 파드에서 앱 URL 로 요청하면 200 이 돌아오므로 네트워크 문제도 아니다. 설정이 빠졌다와 기능이 없다는 다르게 고쳐야 하는데 여기는 둘 다였다.
Elements and evidence
- 한 앱의 로그아웃 (actor): 한 앱에서 로그아웃하면 Keycloak 세션이 끝난다. Evidence: L458–L465.
- backchannelLogoutUrl (component): 클라이언트 설정. 비어 있었다. Evidence: L458–L466.
- 앱의 수신 엔드포인트 (component): 소스에 없었다. Evidence: L458–L466.
- 다른 앱의 세션 (component): 그대로 남는다. Evidence: L458–L466.
Relationships
- backchannelLogoutUrl → 앱의 수신 엔드포인트: 호출 (주소 필요). Evidence: L458–L466.
- 앱의 수신 엔드포인트 → 다른 앱의 세션: 세션 삭제 (엔드포인트 필요). Evidence: L458–L466.
- 한 앱의 로그아웃 → backchannelLogoutUrl: 통지 주소 조회. Evidence: L458–L466.