![[Web] JWT와 OAuth는 무엇이며, 차이점은?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbyU5f%2FbtsFMriUD6c%2FR1zamPFeJyfA0xdfUPIEvk%2Fimg.png)
배경
평소 JWT라는 것은 토큰이다! 까지만 알고, 그 이후를 잘 모르고 심지어 OAuth는 말로만 들어보고 어떤 기능을 하는지, 어떤 관계성이 있는지 전혀 알지 못하였습니다.
그렇기에 이번 CS 스터디를 통하여 JWT가 무엇인지, OAuth가 무엇인지 정확하게 알아가는 시간과 두 개의 차이점이 무엇인지 알아가는 블로그를 작성하게 되었습니다.
JWT란?(Json Web Token)
인증에 필요한 정보들을 암호화시킨 JSON 토큰
JWT의 구조
헤더( HEADER ), 페이로드( PAYLOAD ), 서명( SIGNATURE )의 세 부분으로 구성된다.
HEADER . PAYLOAD . SIGNATURE
이렇게 '.(dot)'을 구분하로 하여 JWT 토큰 1개를 이룹니다.
1) HEADER
서명 시 사용하는 키(kid), 사용할 타입(type), 서명 암호화 알고리즘(alg)의 정보
- kid : 서명시 사용할 키(public/private)를 결정하는 키 값
- type : 사용할때 쓸 타입
- alg : 서명 암호화 알고리즘
2) PAYLOAD
토큰에서 사용할 정보의 조각들인 클레임(Claim)
- iss : 토큰 발급자(issuer) – Public Claims
- sub : 토큰 제목(subject) – Public Claims
- iat : 토큰 발급 시간(issued at) – Public Claims
- exp : 토큰 만료 시간(expiration) – Public Claims
- roles : 권한 - Private Cliams
3) SIGNATURE
Header(헤더) 에서 정의한 알고리즘 방식(alg)
OAuth란?(Open Authorization)
인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단
이렇게 설명하면 한번에 이해하기 힘들 것입니다. 예를 들어서 설명해보겠습니다.
만약 여러분들이 어떤 웹페이지나 앱을 들어가서 로그인을 한다고 가정하면, 거기에 "간단 로그인" 혹은 "간단 회원가입"이라는 부분이 있을 것입니다.
이때 사용되는 프로토콜이 바로 "OAuth"입니다.
내용이 더 많기에 이 부분은 글 하나로 나중에 다시 작성하도록 하겠습니다.
우선 기본적인 JWT, OAuth의 개념을 알았으니 바로 차이점에 대해 알아보도록 하겠습니다.
JWT, OAuth 차이점
OAuth는 권한부여, JWT는 인증에 사용
OAuth
자격 증명을 노출하지 않고 사용자 리소스에 대한 액세스 권한을 타사 애플리케이션에 부여해야 할 때 유용
- 애플리케이션 리소스에 대한 권한을 부여합니다.
- 인증서버가 따로 필요합니다(ex 구글,카카오톡..)
JWT
JWT는 사용자를 인증하고 애플리케이션 내의 보호된 리소스에 대한 액세스 권한을 부여해야 할 때 유용
- 애플리케이션 내의 보호된 리소스에 액세스 하는 데 사용
- 인증서버가 따로 필요하지 않습니다.
이렇게 간단하게 JWT, OAuth가 무엇인지 알아보는 시간을 가졌습니다. 다음에는 각자 포스팅을 하여 더 자세하게 알아보는 시간을 가져보도록 하겠습니다.
긴 글 읽어주셔서 감사합니다
'CS > Web' 카테고리의 다른 글
[Web] CI/CD란? (0) | 2024.04.02 |
---|---|
[Web] 로컬스토리지 ,세션스토리지는 무엇일까? (0) | 2024.04.01 |
[Web] 'https://www.google .com/' 을 검색하면 어떤 일이 발생할까 (0) | 2024.03.13 |
[Web] HTTP 요청 메서드 (0) | 2024.02.04 |
[Web] IP의 기본 개념 (2) | 2024.02.04 |
IT에 관한 모든 것을 공부하고, 설명합니다. Study and explain everything about IT.
포스팅이 좋았다면 "구독👍🏻" 해주세요!