SSO 환경에서의 세션 관리: IdP 도입 후 놓치기 쉬운 보안 실천법
SSO를 도입하면 인증이 한 곳에서 처리되지만, 세션 보안은 여전히 각 애플리케이션의 책임입니다. SSO 토큰 수명, 세션 만료 정책, 동시 세션 제어, SLO 등 IdP 도입 후에도 반드시 점검해야 할 세션 관리 핵심 항목을 정리합니다.
SSO를 도입하면 사용자가 한 번 로그인하면 여러 서비스에 접근할 수 있어 편리하지만, 그만큼 세션이 노출되는 범위도 넓어집니다. IdP가 인증을 통합한다고 해서 세션 보안까지 자동으로 해결되는 것은 아닙니다. 이 글은 SSO 환경에서 세션 관리가 왜 중요한지, 실무에서 반드시 확인해야 할 항목을 정리합니다.
SSO 세션의 이중 구조
SSO 환경에서는 두 계층의 세션이 존재합니다.
• IdP 세션: 사용자가 IdP에 최초 로그인했을 때 생성되는 세션입니다. 이 세션이 유효하면 새로운 애플리케이션에 접근할 때 추가 로그인 없이 인증을 받을 수 있습니다. • 애플리케이션 세션: 각 서비스가 자체적으로 유지하는 세션입니다. OIDC나 SAML 기반 SSO라면, 애플리케이션은 IdP에서 받은 토큰을 검증하고 자체 세션을 생성합니다.
문제는 이 두 세션의 수명이 항상 동기화되지 않는다는 점입니다. IdP 세션이 만료되었는데 애플리케이션 세션이 남아있거나, 반대의 경우도 발생할 수 있습니다. 어느 한쪽만 유효하면 사용자 경험이 깨지고, 둘 다 유효하면 예상보다 오래 접근이 허용되는 보안 구멍이 생깁니다.
토큰 수명 관리
OIDC/OAuth2 기반 SSO에서 토큰의 수명은 세션 보안의 핵심입니다.
• Access Token: 가능한 짧게 설정합니다. 5~15분이 일반적입니다. 유출되더라도 피해 기간을 최소화할 수 있습니다. • Refresh Token: Access Token 갱신에 사용되며, 더 긴 수명을 가집니다. 하지만 탈취 시 공격자가 지속적으로 접근할 수 있으므로 rotation(발급 시 기존 토큰 무효화)과 재사용 감지(reuse detection)를 적용하는 것이 권장됩니다. • ID Token: 사용자 정보를 담는 JWT 토큰입니다. 수명을 짧게 설정하고, 한 번 사용하면 무효화되는 one-time use 원칙을 따르면 안전합니다.
세션 만료 정책
MFA로 로그인 보안을 높였다면, 세션 만료 정책도 동등하게 엄격해야 합니다.
• 유휴 만료(Idle Timeout): 일정 시간 활동이 없으면 세션을 종료합니다. 15~30분이 권장됩니다. 장시간 세션이 필요한 업무는 예외 규정으로 관리합니다. • 절대 만료(Absolute Timeout): 로그인 시점부터 일정 시간이 지나면 무조건 세션을 종료합니다. 4~8시간이 일반적입니다. 유휴 만료만 설정하면, 활동만 유지하면 세션이 영구적으로 유지되는 보안 구멍이 생깁니다.
동시 세션 제어
여러 기기에서 동시 로그인은 편의성 측면에서는 좋지만, 공유 계정 사용이나 자격 증명 탈취 시 위험을 증가시킵니다.
• 동시 세션 수 제한: 한 사용자가 가질 수 있는 활성 세션 수를 정책으로 관리합니다. • 새 로그인 시 기존 세션 해제: 새 기기에서 로그인하면 이전 세션을 자동 해제하는 방식도 효과적입니다. VPN이나 원격 접속 환경에서는 세션 수를 넉넉하게 허용해야 합니다.
계정 정지 시 세션 즉시 무효화
퇴사 처리, 보안 사고, 비밀번호 변경 시 해당 사용자의 모든 세션을 즉시 무효화해야 합니다. SCIM 기반 오프보딩이 자동화되어 있더라도, 세션 무효화까지 연동되어 있는지 별도로 확인해야 합니다. 계정이 비활성화된 후에도 기존 세션이 남아있으면, 해당 사용자가 계속 시스템에 접근할 수 있는 보안 사고로 이어집니다.
SLO(Single Logout)의 현실
SSO 환경의 이상적인 세션 관리는 SLO(Single Logout) — 한 곳에서 로그아웃하면 모든 연결된 애플리케이션에서 동시에 세션이 종료되는 것입니다. 하지만 모든 애플리케이션이 SLO 프로토콜을 완벽하게 지원하는 경우는 드뭅니다. SAML 기반 SLO는 구현 복잡도가 높고, 브라우저 리다이렉트 방식의 한계로 신뢰성이 떨어질 수 있습니다. 따라서 SLO에만 의존하지 않고, 각 애플리케이션의 세션 만료 정책과 토큰 검증을 독립적으로 구성하는 것이 안전합니다.
점검 체크리스트
SSO 환경의 세션 보안을 점검할 때 아래 항목을 확인해 보세요.
• IdP 세션과 애플리케이션 세션의 수명 정책이 정의되어 있는가? • Access Token 수명이 15분 이하로 설정되어 있는가? • Refresh Token rotation이 활성화되어 있는가? • 유휴 만료와 절대 만료가 모두 설정되어 있는가? • 계정 비활성화 시 세션이 자동으로 무효화되는가? • 동시 세션 수에 대한 정책이 존재하는가? • SLO 미지원 앱에 대한 대응 방안이 있는가?
IdP를 도입한 후에도 세션 관리는 여전히 중요한 보안 영역입니다. 토큰 수명, 만료 정책, 세션 무효화를 체계적으로 관리하면 SSO의 편의성과 보안을 동시에 유지할 수 있습니다.
AxiPass는 세션 관리부터 토큰 수명 제어, 계정 정지 시 즉시 세션 무효화까지 SSO 환경의 보안을 종합적으로 지원합니다. 지금 무료로 시작해 보세요.
