뱅킹서비스 api의 인증인가를 위해 오픈소스 Keycloak 기반의 인증서버를 사용하고 있는데,
realm의 세션 최대 수명을 25000일로 변경하니 기존 리프레시 토큰으로 재발급 요청을 할때 전부 invalid session 에러가 발생하며 유효하지 않은 토큰으로 인식되기 시작했다
과도하게 높은 수치 (25000일)를 설정하면 세션 유효성 판정을 제대로 하지 못해 발생하는 오류이다
인증 컨테이너의 에러 로그로부터 keycloak의 호출 스택을 따라가보면
세션의 유효성을 검사하는 sessionIsValid라는 메소드가 있으며, 다음과 같은 현상을 확인할 수 있었다
사용자 세션 started 시각 초단위 값
+ realm의 현재 session max 시간 초단위 값
덧셈을 수행과도하게 높은 수치는 지양하는 것이 좋고, 테스트 시 이상 없었던 최대 수치 약 2000일 내에서 설정하도록 한다
만약, 무기한 토큰이 필요하다면 offline_token 사용도 검토해볼 수 있으나 보안에 취약할 가능성이 있으므로 가급적이면 남용하지 않는 것이 좋을 듯 하다