개발자
혹시 권한부여하고 권한에 따라 들어갈 수 있는 페이지를 다르게 주고 싶을때 jwt를 많이 쓰나요?
답변 2
JWT(JSON Web Token)는 인가/인증 시스템이라기 보다는 인증된 정보를 안전하게 저장하기 위한 방법입니다. 이를 설명하기에 앞서서 인증(Authentication)과 인가(Authorization)에 대해 알아봅시다. 인증은 특정 사용자가 허가를 받은 사용자인지 확인하는 방법입니다. 아이디/패스워드 로그인, 인증서 로그인, 본인인증, 생체인증등이 이에 해당합니다. 인가는 허가를 받은 사용자가 접근할 수 있는 자원을 규정하고 접근을 제어하는 방법입니다. 윈도우의 권한시스템, 리눅스 파일 접근 권한, 네이버 카페에서 접속가능한 게시판 제어등이 그것입니다. 님이 말씀하신 부분은 그런 인가 시스템에 대한 내용이고요. JWT 는 전통적인 프레임웍상에서 세션, 쿠키등의 기능을 대신 합니다. JWT 에 대한 상세한 내용은 링크 참조 https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-JWTjson-web-token-%EB%9E%80-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC
"JWT를 많이 쓰나요?" 질문에는 "네" 라고 답변을 드릴 수 있겠습니다. 다만 문승욱님 말씀처럼 JWT는 인증된 정보를 안전하게 사용하기 위한 방법중 하나이고, JWT 말고도 많은 방법들이 존재합니다. 질문자분께서 커리어리 Q&A 게시판에 질문 글을 올리실 때 어떤 과정을 거칠까요? 회원임을 확인하기 위해 먼저 로그인을 진행하고(인증), 질문자분께서 Q&A 게시판에 질문 글을 작성할 권한(인가)을 가졌는지 인증된 정보를 통해 확인 할 것 같습니다. 단순히 인증/인가만 거친다면 "인증을 마친 상태", 즉 로그인 상태를 유지시켜 줄 수 없습니다. 인증된 정보를 어딘가엔 저장해두어야 로그인이 유지될거에요. 그렇다면 이렇게 인증된 정보는 어디에 담아두는게 좋을까요? 질문자분의 PC에 Cookie를 통해 저장 해두고, 커리어리 서버로 향하는 모든 요청에 Cookie를 포함시키는 건 어떨까요? 아마도 보안이 굉장히 취약할 것 같아요... 커리어리 서버에서 Session을 통해 관리하는 건 어떨까요? 사용자의 수도 많아지고, 요청도 다양해지는데... Session을 모아둔 서버나 DB 에 너무 많은 부하가 걸릴 것 같아요... PC도 안되고 서버도 안되면 도대체 어디에 담아야 할까요? PC와 서버 사이를 오가는 HTTP 요청/응답 속에 조그맣게 인증정보를 끼워넣으면 어떨까요? 그렇게 Token 이라는 개념이 등장했습니다. 그리고 질문의 주제인 JWT는 이 수 많은 Token 중 하나 입니다. 앞서 말씀드린 인증과 인가, Token 인증 방식의 등장 배경을 쉽고 재밌게 정리한 영상을 하나 추천 드리겠습니다. https://www.youtube.com/watch?v=y0xMXlOAfss
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!