2017-10-13 2 views
0

응용 프로그램에서 AWS Cognito를 사용하여 사용자를 인증합니다. AWS는 JWT 토큰을 제공합니다. 내 질문은 세션 관리를 처리하기 위해 고속 세션을 사용해야하는지 아니면 AWS Cognito가 제공 한 JWT 토큰이 인증 된 사용자를 위해 세션 관리를 담당 할 것인가입니다.세션 관리를 위해 AWS Cognito를 통한 Express-Session 사용

+0

"인증 된 사용자의 세션 관리"란 무엇입니까? 후속 요청을 빠르게하기 위해 인증 된 ID를 임시 캐시 하시겠습니까? 또는 당신은 stateful jwt를 말하는 건가요? – Asanka

답변

-1

Cognito JWT 토큰을 사용하면 명시 적 세션 처리기가 필요하지 않습니다.

JWT 토큰을 클라이언트 측에 보내고 상태 지속성을 제공하는 웹 브라우저 (로컬 저장소, 세션 저장소 또는 쿠키)에 저장할 수 있습니다 (세션을 세션으로 작동하며 토큰 기간 동안 유효 함).).

모든 후속 요청에 대해 승인 헤더의 JWT를 고속 서버로 다시 보내야합니다.

통합 상태 관리를 구현할 수있는 모바일 앱과 같은 웹 브라우저 이외의 클라이언트에서 API를 사용하는 경우 세션보다 이점이 있습니다.

높은 보안이 필요한 응용 프로그램의 경우 LocalStorage에 ID 토큰을 저장할 위험을 최소화하려면 새로 고침 토큰을 사용하여 토큰 지속 시간을 작게하고 새 토큰을 생성하십시오.

참고 : Cognito Hosted UI를 사용하는 경우 새로 고침 토큰을 얻으려면 Cognito Autorization 코드 부여 흐름을 사용해야합니다.

+0

JWT를 웹 브라우저에 노출시키고 세션에 사용하는 것은 세션 하이재킹을 위해 작업을 시작하기 때문에 위험합니다. 인증과 세션 관리가 섞이지 않도록하는 것이 좋습니다. – galaxy

+0

@galaxy 이것은 주관적인 의견을 기본적으로 추가하는 끝이없는 주제입니다. 대답하기 전에 수표를 찍었습니다. 나는 내가 제공 한 답을 향하여 나아가고 반대하는 두 가지 다른 참고 문헌 (25 세 이상 읽기)을 지적 할 수있다. 앞으로 - https://auth0.com/blog/cookies-vs-tokens-definitive-guide/ 및 반대 - http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt- for-sessions /. 엔터프라이즈 클라이언트의 접근 방식을 평가해야하므로 보안 전문가와도상의했습니다. 필요한 경우 추가 정보를 공유 할 수 있습니다. 자세한 내용은 업데이트 된 답변을 확인하십시오. – Ashan

+0

두 번째 링크는 실제로 주제에 대한 유일한 링크이며 인증 *과 세션 유지 관리의 차이점을 실제로 이해하는 사람이 작성했습니다. Auth0의 상황은 세션 관리와 인증 과정을 혼동스럽게 만드는 이상한 일이며 모든 문제는 그 혼란에서 기인합니다. 세션은 인증 여부에 상관없이 정의 된 상태 (실제로 엔티티가 인증 된 속성을 저장할 수 있음)를 넘겨 받도록되어 있습니다. – galaxy

관련 문제