로그인 세션 유지 시간 - logeu-in sesyeon yuji sigan

사용자 활동이란 사용자가 Zendesk 사용자 인터페이스에서 무언가를 클릭하거나, 애플리케이션이 백그라운드에서 자동으로 정보를 가져오는 것을 말합니다. Zendesk 인터페이스를 최신 상태로 유지하기 위해 종종 정보를 가져오지만 모든 Zendesk 페이지에서 일률적으로 정보를 가져오는 것은 아닙니다.
  • 브라우저를 닫거나 Zendesk 세션이 실행 중인 브라우저 탭을 종료할 때 Zendesk 시간 제한 카운트다운이 시작되며, 컴퓨터를 절전 모드로 전환하거나 컴퓨터 전원을 끌 때 시간 제한 카운트다운이 실행될 수도 있습니다. 시간 제한에 도달하면 Zendesk에서 로그인 세션을 종료하고 Zendesk를 사용하려면 다시 로그인해야 합니다.

    이 기능은 Business Plus, Enterprise, Education Fundamentals, Education Standard, Teaching and Learning Upgrade, Education Plus, G Suite Business 버전에서 사용할 수 있습니다. 사용 중인 버전 비교하기

    관리자는 사용자가 한 번 로그인 후 웹에서 Gmail과 같은 Google 서비스에 액세스할 수 있는 시간을 제어할 수 있습니다. 예를 들어 원격으로 작업하거나 신뢰할 수 없는 위치에서 작업하는 사용자의 경우 더 짧은 웹 세션 길이를 적용하여 민감한 리소스에 액세스할 시간을 제한할 수 있습니다. 사용자가 세션 종료 후에도 계속해서 리소스에 액세스하려는 경우 다시 로그인하여 새 세션을 시작하라는 메시지가 표시됩니다.

    설정에 대한 정보

    • 아래에 설명되어 있는 세션 길이 제어 설정은 사용자가 로그인한 동안 액세스하는 모든 Google 웹 서비스 세션에 영향을 미치므로 일부 유형의 세션에 보다 세분화된 지원을 추가할 예정입니다. Google Cloud 도구 컨트롤 및 이러한 컨트롤이 이 페이지의 상위 세션 컨트롤과 상호작용하는 방법에 대한 자세한 내용은 Google Cloud 서비스의 세션 길이 설정하기를 참고하세요.
    • 휴대기기에서 이 설정이 작동하는 방식은 기기나 앱마다 다릅니다(아래 고려사항 참고). 기본적으로 Google 서비스의 웹 세션 길이는 14일입니다. 
    • 위임된 관리자와 최고 관리자의 세션 길이는 1시간이며 Google 관리 콘솔에서 수정할 수 없습니다.

    고려사항

    사용자가 로그인하는 시기 및 방법

    • 웹 세션이 만료되면 '본인 확인' 페이지가 사용자에게 표시되고 사용자는 다시 로그인해야 합니다.
    • 세션 길이를 변경할 경우 사용자가 로그아웃한 후에 다시 로그인해야 변경된 설정이 적용됩니다. 
    • 사용자가 한동안 로그아웃하지 않을 수 있습니다. 사용자가 좀 더 빨리 다시 로그인하도록 하려면 사용자의 로그인 쿠키를 재설정할 수 있습니다. 한 번에 사용자 한 명씩 재설정해야 합니다. 자세한 내용은 분실된 기기에서 Google 서비스에 대한 액세스 차단하기를 참고하세요.
    • 세션이 만료되지 않도록 설정하면 사용자는 다시 로그인할 필요가 없습니다.
    • 일부 사용자의 경우 다른 사용자보다 더 자주 로그인하도록 하려면 해당 사용자를 다른 조직 단위에 배치한 다음 다른 세션 길이를 적용하세요. 이렇게 하면 로그인을 다시 할 필요가 없는 사용자의 로그인 상태가 유지됩니다. 
    • 사용자가 2단계 인증(2SV)을 통해 로그인하도록 할 수도 있습니다. 신뢰할 수 있는 기기를 확인하려면 사용자가 보안 키를 사용하도록 할 수 있습니다. 자세한 내용은 2단계 인증 설정하기를 참고하세요.
    • 예정된 세션 만료 2시간 이내에 Google Meet 회의가 시작되는 경우 사용자는 회의 시작 전에 다시 로그인하도록 요청되며, 이렇게 하면 진행 중인 회의가 중단되지 않습니다.

    휴대기기

    • Android 또는 Apple iOS기기에서 Gmail이나 Google 캘린더와 같은 기본 모바일 앱의 세션 길이를 구성할 수 없습니다.

    Chrome 브라우저를 사용하는 경우

    • 사용자가 로그인하지 않은 경우에만 Android 또는 iOS 기기의 Chrome 브라우저에 세션 길이 설정을 적용할 수 있으며 사용자가 로그인한 경우에는 설정이 적용되지 않습니다. Apple Safari, Mozilla Firefox와 같은 다른 모바일 브라우저에서는 세션 길이 설정을 정상적으로 적용할 수 있습니다.

    타사 ID 공급업체

    • Okta 또는 Ping과 같은 타사 ID 공급업체(IdP)를 사용 중이고 사용자의 웹 세션 길이를 설정한 경우, Google 세션이 만료되기 전에 IdP 세션 길이 매개변수가 만료되도록 설정해야 합니다. 이렇게 하면 사용자가 다시 로그인해야 합니다. Google 세션이 만료될 때 타사 IdP 세션이 계속 유효한 경우 사용자가 다시 로그인하지 않아도 Google 세션이 자동으로 갱신될 수 있습니다.
    • 특정 IdP에서 세션 길이를 설정하는 방법에 대한 자세한 내용은 IdP 문서를 참고하세요.

    ChromeOS 관련 설정

    ChromeOS 기기에서 기본 계정을 사용하는 관리 사용자의 세션 길이를 구성하려면 사용자 세션의 최대 길이를 설정하세요. 자세한 내용은 사용자 세션 최대 길이를 참고하세요.

    보조 계정을 사용하여 관리 사용자에 대한 세션 길이를 구성할 수 없습니다. 사용자가 관리 계정을 보조 계정으로 추가하지 못하도록 하려면 ChromeOS에서 관리 계정을 보조 계정으로 사용할 수 없도록 제한 추가 정책을 설정하세요.

     session 기본값 확인 하기 

    프로젝트 우클릭 - Java Build Path - Libraries - Apache Tomcat 위치 확인

    로그인 세션 유지 시간 - logeu-in sesyeon yuji sigan

    web.xml : session-config 확인 

    로그인 세션 유지 시간 - logeu-in sesyeon yuji sigan

    session-timeout " 30분 " 기본 값 

    로그인 세션 유지 시간 - logeu-in sesyeon yuji sigan

     session timeout 직접 설정하기  ( 우선순위 : controller > web.xml )

    1. web-xml = 모든 세션에 타임아웃 설정 

    로그인 세션 유지 시간 - logeu-in sesyeon yuji sigan
    
     
    	10 // 분 단위 - 10분
    

    2. controller = 특정 세션만 타임아웃 설정

    session.setMaxInactiveInterval(20*60); // 초 단위 - 20분

    * 그외의 session 시간 및 제거 * 

    getCreationTime() - 세션 생성 시간
    getLastAccessedTime() - 마지막 요청 시간
    setMaxInactiveInterval() - 최대허용시간 설정 (초)
    getMaxInactiveInterval() - 최대허용시간
    invalidate() - 세션 제거

    그런데 대부분의 사용자는 로그아웃을 선택하지 않고, 그냥 웹 브라우저를 종료합니다. 문제는 HTTP가 비연결성(ConnectionLess)이므로 서버 입장에서는 해당 사용자가 웹 브라우저를 종료한 것인지 아닌지를 인식할 수 없습니다. 따라서 서버에서 세션 데이터를 언제 삭제해야 하는지 판단하기가 어렵습니다.

    이 경우 남아있는 세션을 무한정 보관하면 다음과 같은 문제가 발생할 수 있습니다.

    • 세션과 관련된 쿠키(JSESSIONID)를 탈취당했을 경우 오랜 시간이 지나도 해당 쿠키로 악의적인 요청을 할 수 있습니다.
    • 세션은 기본적으로 메모리에 생성됩니다. 메모리의 크기가 무한하지 않기 때문에 꼭 필요한 경우만 생성해서 사용해야 합니다. 10만 명의 사용자가 로그인하면 10만 개의 세션이 생성되는 것입니다.

     

    세션 타임아웃 설정

    스프링 부트로 글로벌 설정

    application.properties

    server.servlet.session.timeout=60 : 60초, 기본은 1800(30분)

    글로벌 설정은 분 단위로 설정해야 합니다. 60(1분), 120(2분)

    그래서 해당 타임아웃의 최소 값은 60입니다.

     

    특정 세션 단위로 시간 설정

    session.setMaxInactiveInterval(1800); //1800초

     

     

    세션의 타임아웃 시간은 해당 세션과 관련된 JSESSIONID를 전달하는 HTTP 요청이 있으면 현재 시간으로 다시 초기화됩니다. 이렇게 초기화되면 세션 타임아웃으로 설정한 시간 동안 세션을 추가로 사용할 수 있습니다.