좀 늦은 감은 있는데 OAuth 개발하기 전에는 해야지
토큰 기반 인증 Bearer Authentication (ssemi.net)
토큰 기반 인증 Bearer Authentication
OAuth를 들어가려고 생각하다가, 이전에 Bearer scheme 부터 조져야 겠다는 생각을 먼저 해봤다 블로그에 글을 쓸 때 마다 드는 생각Bearer scheme 에 대해서 정확히 설명을 하기 위해서 여러 자료들을 봤
www.ssemi.net
HTTP - 인증 : Oauth, JWT, Bearer token (tistory.com)
HTTP - 인증 : Oauth, JWT, Bearer token
앞선 글에서 인증 방식에 대해 살펴보았다. 오늘은 쿠키나 세션 기반 인증이 아닌, 토큰 기반 인증 방식에 대해 살펴볼 것이다. 쿠키는 사용자 인증 정보를 담아 HTTP를 통신하게 되면, 제3자가 악
julie-tech.tistory.com
그 와중에 베어러는 참는 놈, 곰...러도 아닌 전달자 라는 뜻
월드 베어러는 세계 참는 새@들이 아니였구나!
일단 토큰 개념부터
토근 기반 인증에서 bearer는 무엇일까? (velog.io)
토큰에는 암호화 방식과 타입 등을 나타내는 헤더, 전송할 데이터가 담긴 페이로드,
토큰 검증을 위한 서명을 각각 인코딩(해싱)한 값이 포함되어 있다.
데이터가 인코딩이 되어있긴 하지만 누구나 디코딩을 할 수 있어서 데이터 유출에 대한 피해가 있을 수 있지만
서명 필드는 헤더와 페이로드를 통해 만들어지기 때문에 데이터 변조 후 재전송하는 것을 막을 수 있다.
그럼에도 불구하고 쿠키와 세션을 이용한 인증에 비해 장점이 많아 많은 서비스에서 이 인증 방식을 사용하고 있다.
JWT 인증토큰, Bearer 토큰에 관하여.. for Node Express. — 개발이 하고 싶어요 (tistory.com)
JWT 인증토큰, Bearer 토큰에 관하여.. for Node Express.
JWT 인증토큰, Bearer 토큰에 관하여.. for Node Express. JWT 란, JWT(Json Web Token)은 클라이언트와 서버 혹은 서비스 간의 통신시 정보를 JSON 객체를 통해 안전하게 전송하고 권한(Authorization)을 위해 사용하
iu-corner.tistory.com
장점
- 헤더와 페이로드를 가지고 서명 필드를 생성하므로 데이터 변조 후 재전송을 막을 수 있다.
- stateless 서버를 만들 수 있다.
- 모바일 어플리케이션에서도 잘 동작합니다.
- 인증정보를 다른 웹서비스에 전송할 수 있다. (OAuth)
단점
- 여전히 누구나 디코딩이 가능하므로 데이터 유출이 발생할 수 있다.
- 토큰을 탈취당할 경우, 대처하기 어렵다. (유효기간을 기다리거나 token refresh를 해야한다)
- JWT의 경우, 토큰의 길이가 길기 때문에 요청이 많아질수록 서버 자원의 낭비가 많다.
일반적으로 토큰의 요청 헤더의 Authorization 필드에 담아 보낸다.
Authorization: <type> <credentials>
우리가 궁금해하던 Bearer는 <type>에 해당
토큰에는 많은 종류가 있고 서버는 다양한 종류의 토큰을 처리하기 위해 전송받은 type에 따라 토큰을 다르게 처리합니다.
* Bearer Token
Bearer Token은 HTTP통신의 인증 방식에 Bearer Authentication을 사용하는 것이다.
Bearer Authentication이란, "이 토큰을 나르는(bearer) 사람에게 권한을 부여하시오"라는 것인데,
앞서 살펴본 Oauth 역시 사용자가 아닌 소비자가 중간에서 사용자의 권한을 일부 부여받게 된다.
Bearer Token은 JWT나 Oauth에서 사용되는 토큰을 모두 통칭하는 용어이다.
그래서 베어러 왜 씀?
[Web] 토큰을 사용할 때 Bearer는 무엇인가? (tistory.com)
[Web] 토큰을 사용할 때 Bearer는 무엇인가?
들어가며 JWT를 인증 방법으로 활용하면서, 헤더 값으로 bearer + token 값을 받아서 사용했습니다. 이때 bearer가 무엇인지, 제대로 모르고 사용했습니다. 이번 기회에 토큰 값에 붙어있는 bearer가 무
overcome-the-limits.tistory.com
우린 베어러를 쓰기호 사회적 합의가 있었어요 라는데
Q : 그렇다면 Bearer (일반적인) <Token> 과 JWT 를 사용함에 다른 점은?
A :
<Token>
- JWT가 나오기 이전에는 <Token>은 본질적으로 의미가 없는 문자열의 조합이었다
- 해당 <Token>을 DB조회를 하여 맞는 권한 Claims 을 가져오는 방식으로 개발을 했었다
- <Token>을 사용할 때마다 DB 혹은 그에 알맞는 저장소 (Persistence layer) 가 필요하다는 것이다
JWT
- JWT는 자체적으로 Claims를 인코딩하고 서명(signing)을 통해 확인 (verify) 할 수 있다
- 상태를 저장하지 않음 (stateless) 으로 DB 혹은 저장소 (Persistence Layer)가 필요 없다는 소리다
- JWT만으로도 많은 것들을 확인 가능하여, 해당 Application 에서 인증 관련 프로세스의 간소화가 가능하다 (DB 로드가 줄어들기 때문에)
- JWT를 발행(publish)하는 서비스만 refresh token 발행으로 인한 DB/Persistence Layer 에 대한 대비를 할 필요가 있다 (refresh token 저장은 해야하니)
토큰 기반 인증 Bearer Authentication (ssemi.net)
토큰 기반 인증 Bearer Authentication
OAuth를 들어가려고 생각하다가, 이전에 Bearer scheme 부터 조져야 겠다는 생각을 먼저 해봤다 블로그에 글을 쓸 때 마다 드는 생각Bearer scheme 에 대해서 정확히 설명을 하기 위해서 여러 자료들을 봤
www.ssemi.net
자세한 사항은 다음에
'내배캠 TIL WIL > 내배캠 til' 카테고리의 다른 글
내배캠 til 65일차 테스트 코드 (0) | 2023.02.20 |
---|---|
내배캠 til 64일차 타입스크립트 문법공부 (0) | 2023.02.15 |
내배캠 til 62일차 API 와 Endpoint (0) | 2023.02.13 |
내배캠 til 61일차 nest.js 입문 시작 (0) | 2023.02.10 |
내배캠 til 60일차 플잭 후기 (0) | 2023.02.09 |