오프라인 액세스 (Offline access)란 무엇인가?
오프라인 액세스 (Offline access)의 개념은 컨텍스트에 따라 다를 수 있으며, 여기서는 OAuth 2.0 및 OpenID Connect (OIDC) 사양에 초점을 맞춥니다. 이 컨텍스트에서 오프라인 액세스 (Offline access)는 사용자가 다시 인증 (re-authenticate)할 필요 없이 클라이언트가 새 액세스 토큰 (access tokens) 을 리프레시 토큰 (refresh token) 을 사용하여 획득할 수 있게 합니다. 이 기능은 특히 장기 세션과 더 나은 사용자 경험에 유용합니다.
OAuth 2.0은 “오프라인 액세스 (Offline access)“라는 용어를 명시적으로 정의하지 않지만, 새 액세스 토큰 (access tokens)을 획득하기 위한 리프레시 토큰 (refresh tokens)의 사용은 명시합니다. 그러나 “오프라인 액세스 (Offline access)“라는 용어와 offline_access
스코프가 이 기능을 나타내기 위해 업계에서 널리 채택되었으며, OpenID Connect (OIDC) 사양에서 공식적으로 정의되었습니다.
오프라인 액세스 (Offline access)는 어떻게 작동하는가?
간단히 하기 위해 OAuth 2.0 용어인 인증 요청 (Authorization request) 와 인증 서버 (Authorization server) 를 사용하여 오프라인 액세스 (Offline access)가 어떻게 작동하는지 설명합니다. OIDC에서 해당 용어는 각각 인증 요청 (Authentication request) 와 OpenID Provider (OP) 입니다.
오프라인 액세스 (Offline access)를 활용하는 데는 두 가지 주요 단계가 있습니다:
-
오프라인 액세스 (Offline access) 요청하기: 클라이언트 (Client) 가 인증 요청을 권한 서버에 시작할 때,
offline_access
스코프를 포함하여 오프라인 액세스 (Offline access)를 요청합니다. 이 스코프는 클라이언트가 액세스 토큰 (access token)과 함께 리프레시 토큰 (refresh token)을 받고자 한다는 것을 나타냅니다.오프라인 액세스 (Offline access)에 대한 지원은 권한 서버마다 다를 수 있으며, 권한 서버가 이를 지원하지 않는 경우
offline_access
스코프를 무시할 수 있습니다. 이 스코프를 사용하기 전에 권한 서버의 문서를 참조하여 호환성을 확인하시기 바랍니다. -
리프레시 토큰 (refresh token) 사용하기: OAuth 2.0 인증 부여 (Grant) 가 완료되면, 클라이언트는 액세스 토큰 과 함께 리프레시 토큰 (Refresh token) 을 받아야 합니다. 클라이언트는 리프레시 토큰 (refresh token)을 안전하게 저장하고, 현재의 액세스 토큰 (access token)이 만료될 때 해당 토큰으로 권한 서버에 새로운 액세스 토큰 (access token)을 얻기 위한 토큰 요청 (Token request) 를 보낼 수 있습니다.
오프라인 액세스 (Offline access)가 실현된 자세한 예시는 리프레시 토큰 (Refresh token) 문서를 참조하시기 바랍니다.
보안 고려 사항
오프라인 액세스 (Offline access)의 보안 암시사항은 리프레시 토큰 (refresh tokens)의 것과 유사합니다. 자세한 내용은 리프레시 토큰 (refresh token)의 보안 고려사항 섹션을 참조하십시오.