글 검색
제목, 설명, 태그, 본문에서 글을 검색합니다.
소개로 돌아가기
인증 시스템 리팩토링 및 레거시 전환
주식회사 데이원컴퍼니 · 2024.09 — 2026.04
JavaSpring BootSpring OAuth2JWTJWKSGCP KMSRedis
수행 내용
- •PHP 세션과 프론트엔드 토큰 발급에 흩어진 인증 책임을 Java/Spring 기반 인증 서버로 재정리
- •JWT 기반 서버사이드 인증 구조로 전환하고 Refresh Token Rotation 적용
- •JWT 서명 방식을 HS256에서 RS256/JWKS 기반 구조로 전환하고, GCP KMS 서명과 `kid` 기반 key rotation 흐름 설계
- •검증 서비스에는 공개키만 배포하고, 서명 권한은 인증 서버와 KMS 권한으로 제한
- •기존 HS256 토큰을 일정 기간 허용하는 legacy decoder를 두어 무중단 전환 경로 마련
- •JWKS cache TTL과 access token 만료 시간을 고려해 key rotation 순서 정리
- •인증·사용자 관리·API 라우팅 등 PHP 레거시 기능을 Java로 이관해 PHP/Java 이중 운영 해소
- •PHP 세션 문제로 타 사용자 계정 정보가 노출되던 보안 이슈 원천 해결
- •Spring OAuth2 기반 인증 흐름 정립
- •외부 로그인 후 서비스 자체 토큰으로 전환하는 인증 흐름 구성
- •인증 제공자 추가를 고려한 확장 구조 마련
- •서비스 자체 OAuth 인증으로 통합해 유지보수성과 운영 효율 개선
성과
- •프론트엔드·PHP에 흩어진 인증 책임을 Java/Spring 기반 인증 서버로 통합
- •서명 권한과 검증 권한을 분리해 여러 서비스가 공개키 기반으로 토큰을 검증할 수 있는 구조 마련
관련 글
로그인 책임 분리 (2) - authorize/callback 흐름 연결하기
보호 페이지 접근부터 백엔드 authorize, callback, 토큰 발급까지 이어지는 로그인 흐름을 프론트엔드에서 어떻게 연결했는지 정리합니다.
2026-04-16
로그인 책임 분리 (3) - 기존 토큰과 새 백엔드 토큰을 함께 검증하기
브라우저에는 토큰이 쿠키로 전달되지만 기존 토큰과 새 백엔드 토큰의 검증 기준이 다를 때 순서와 실패 처리를 어떻게 나눴는지 정리합니다.
2026-04-17
JWT 서명 전환 - HS256에서 RS256/JWKS/KMS로
대칭키 JWT 서명을 RS256/JWKS/KMS 구조로 바꾸며 서명 책임, kid, key rotation, legacy 토큰 처리를 어떻게 나눴는지 정리합니다.
2026-04-24