최근 회사에서 기존 메인 서비스(A) 외에 새로운 보너스 성격의 서비스(B)를 런칭하게 되었습니다. 이때 "A 서비스에 로그인한 유저가 B 서비스로 넘어갈 때, 다시 로그인하지 않게(SSO) 해주세요"라는 요구사항을 받았어요.문제는 두 서비스의 도메인이 완전히 다를 예정이라는 점이었습니다.도메인이 다르면 브라우저 보안 정책 때문에 기존의 HttpOnly 쿠키(RefreshToken)를 넘겨줄 수가 없거든요. "그럼 URL 파라미터로 AccessToken을 찔러 넣어줄까?" 고민도 했지만, 이는 보안상 절대 해서는 안 될 위험한 행동이었습니다.오늘 포스팅에서는 이 문제를 일회용 티켓(One-Time Ticket) 방식을 통해 어떻게 안전하고 효율적으로 해결했는지 그 설계와 구현 과정을 공유해보려고 합니다...