현상

Jira 사용 중에 5분에서 10분 단위로 계속 로그아웃 되는 문제 

원인

  • Jira Data Center와 Crowd SSO 환경에서 발생하는 잦은 로그아웃 문제는 여러 시스템의 세션 설정이 엇갈리면서 발생하는 경우
  • Jira, Crowd, 그리고 네트워크 장비(로드밸런서, 리버스 프록시 등) 간의 세션 타임아웃(Session Timeout) 설정 불일치

해결

Jira 세션 타임아웃 확인 및 수정

먼저 Jira 자체의 세션 타임아웃 설정을 확인합니다.


  1. Jira 서버에 접속하여 Jira 설치 경로로 이동합니다.

  2. 다음 파일을 엽니다: <JIRA_INSTALL>/atlassian-jira/WEB-INF/web.xml

  3. 파일 내에서 <session-config> 부분을 찾습니다.

  4. <session-timeout> 값이 얼마로 설정되어 있는지 확인합니다. 단위는 분(minute)입니다.

    XML
    <session-config>
        <session-timeout>480</session-timeout>
    </session-config>
    
    • 기본값은 보통 300 (5시간) 또는 480 (8시간)입니다. 만약 이 값이 5 또는 10과 같이 매우 짧게 설정되어 있다면, 이것이 직접적인 원인일 수 있습니다. 적절한 시간(예: 480)으로 수정한 후 Jira를 재시작합니다.




Crowd 세션 타임아웃 확인 및 수정

Crowd는 두 가지 종류의 세션 타임아웃을 관리합니다. 두 가지 모두 확인해야 합니다.


1. 애플리케이션 세션 타임아웃 (Application Session Timeout)

Jira와 연동된 특정 애플리케이션의 세션 시간을 설정합니다.


  1. Crowd 관리자 계정으로 로그인합니다.

  2. Applications 메뉴로 이동하여 연동된 Jira 애플리케이션을 선택합니다.

  3. Session 탭으로 이동합니다.

  4. Session timeout 값이 몇 분으로 설정되어 있는지 확인합니다.

  5. 이 값이 5 또는 10으로 되어 있다면, Jira의 web.xml 설정과 맞추거나 더 긴 시간(예: 480분)으로 변경하고 저장합니다.


2. SSO 쿠키 타임아웃 (SSO Cookie Timeout)

Crowd가 전체 SSO 환경에 대해 발급하는 쿠키의 유효 시간을 설정합니다.


  1. Crowd 관리자 화면 우측 상단의 톱니바퀴 아이콘을 클릭 후 General 메뉴로 이동합니다.

  2. SSO Cookie 섹션을 찾습니다.

  3. Cookie timeout 값이 몇 분으로 설정되어 있는지 확인합니다.

  4. 이 값 역시 너무 짧다면 적절한 시간으로 늘려줍니다.


중요: Jira와 Crowd의 세션은 다음과 같이 동작합니다. Jira는 주기적으로 Crowd에 현재 사용자 세션(토큰)이 유효한지 확인합니다. 이때 Crowd의 세션이 만료되었다면 Jira 역시 해당 세션을 강제로 만료시키고 로그아웃 처리합니다. 따라서 두 설정 모두 충분히 길게 설정되어야 합니다.



네트워크 장비 (로드밸런서 / 리버스 프록시) 설정 확인

Jira Data Center는 여러 노드로 구성되므로 앞단에 로드밸런서나 리버스 프록시(Nginx, Apache 등)를 사용하게 됩니다. 이 장비들의 설정이 문제를 일으킬 수 있습니다.


1. Sticky Session (세션 유지) 설정 확인


  • 가장 중요한 확인 사항입니다. 로드밸런서는 특정 사용자의 요청이 세션이 유지되는 동안 항상 동일한 Jira 노드로 전달되도록 'Sticky Session' (또는 Session Affinity) 기능이 반드시 활성화되어야 합니다.

  • 만약 이 기능이 비활성화되어 있다면, 사용자의 요청이 여러 노드를 오가면서 세션 정보가 유실되어 로그아웃될 수 있습니다. 사용 중인 로드밸런서(AWS ALB, F5, Nginx 등)의 설정에서 Sticky Session 관련 항목을 확인하고 활성화하십시오.


2. 타임아웃 설정 확인


  • 리버스 프록시나 로드밸런서 자체에도 연결 타임아웃(Connection Timeout, Idle Timeout 등) 설정이 있습니다.

  • 이 타임아웃 값이 Jira나 Crowd의 세션 타임아웃보다 현저히 짧게 설정되어 있다면, 사용자가 아무런 요청을 하지 않는 동안 연결이 끊어져 로그아웃된 것처럼 보일 수 있습니다. 이 값을 충분히 길게(최소 30분 이상) 설정하는 것을 권장합니다.

    • Nginx 예시: proxy_read_timeout, proxy_connect_timeout 등의 설정을 확인합니다.

    • Apache 예시: Timeout 또는 ProxyTimeout 지시어를 확인합니다.




문제 해결을 위한 실행 계획

위 내용을 바탕으로 다음과 같은 순서로 점검 및 조치를 진행해 보십시오.


  1. Crowd 설정 확인 (가장 가능성 높음):
    Crowd 관리 페이지에 접속하여 '애플리케이션 세션 타임아웃'과 'SSO 쿠키 타임아웃'을 먼저 확인하고, 5~10분으로 되어 있다면 480분(8시간) 등으로 수정합니다.

  2. Jira web.xml 파일 확인:
    Jira 서버에서 <session-timeout> 값을 확인하고 Crowd 설정과 유사하게 충분히 긴 값으로 설정되어 있는지 확인합니다. 변경 시 Jira 재시작이 필요합니다.

  3. 로드밸런서 Sticky Session 확인:
    인프라 담당자에게 문의하여 Jira Data Center로 들어오는 트래픽에 대해 Sticky Session이 활성화되어 있는지 반드시 확인합니다.

  4. 로그 분석:
    위 조치로 해결되지 않는다면, 문제 발생 시점의 Jira 로그(atlassian-jira-security.log)와 Crowd 로그(atlassian-crowd.log)를 분석하여 세션 만료 또는 인증 실패와 관련된 오류 메시지가 있는지 확인합니다.


대부분의 경우 1번과 2번 단계에서 설정값을 일관성 있게 맞추고, 3번의 Sticky Session 설정을 확인하는 것만으로도 문제가 해결될 가능성이 매우 높습니다. 이 문제 해결 과정을 통해 안정적인 Jira 환경을 구축하시길 바랍니다.



  • 레이블 없음