-
[NetWork] OAuth와 JWT의 차이점network 2024. 1. 30. 17:50728x90반응형
OAuth, JWT
OAuth(Open Authorization)란?
- 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는 접근 위임을 위한 개방형 표준
- 사용자들이 타사 애플리케이션이나 웹사이트의 계정에 관한 정보를 공유할 수 있게 허용
- OAuth가 나오기 전까지 기본 인증이 아닐 경우는 각 애플리케이션들이 각자의 개발한 회사의 방법대로 사용자를 확인하였으나 OAuth가 나오면서 이렇게 제각각인 인증방식을 표준화함
OAuth를 이용하면 이 인증을 공유하는 애플리케이션끼리는 별도의 인증이 필요 없음. 따라서 여러 애플리케이션을 통합하여 사용하는 것이 가능하게 됨
OAuth의 구성 요소
- Resource Owner(자원 소유자): 유저를 말함
- Client(클라이언트): 유저의 정보를 필요로 하는 애플리케이션
(ex: 유저가 로그인하려는 웹 사이트가 클라이언트) - Resource Server(자원 서버): 유저의 계정 정보를 가지고 있는 서버
(ex: '구글 로그인하기' 기능을 사용하는 경우 구글이 자원 서버가 됨) - Authorization Server(인증 서버): 유저의 계정 정보에 접근할 권한을 부여하는 서버
대부분의 경우 자원 서버와 인증 서버는 같은 서버가 맡게 됨
따라서, '구글 로그인하기' 기능을 사용하는 경우 구글 역시 인증 서버가 됨 - Redirect URI(리다이렉트 URI): 인증 서버가 인증 결과를 보내는 클라이언트의 주소
클라이언트가 OAuth 공급자(ex: '구글 로그인하기' 기능을 이용하는 경우에는 구글이 OAuth 공급자가 됨. 유저는 구글을 통해 인증 받고, 구글은 액세스 토큰을 발행하여 클라이언트(웹사이트)에게 제공)에게 이 주소를 제공하면, 사용자가 로그인을 성공하거나 실패한 후 이 주소로 리다이렉트됨 - Access Token(액세스 토큰): 인증 후 클라이언트가 자원 서버에 접근하기 위해 사용하는 토큰을 말함
이 토큰을 이용해 클라이언트는 자원 서버로부터 사용자의 정보를 안전하게 요청할 수 있음
OAuth의 동작 방식
백엔드에서는 뒤쪽에서 어떻게 처리하고 있을까? - 1 <- 참고1
백엔드에서는 뒤쪽에서 어떻게 처리하고 있을까? - 2 <- 참고2(좀 더 구체적인 예시와 설명)
백엔드에서는 뒤쪽에서 어떻게 처리하고 있을까? - 3 <- 참고3
OAuth와 JWT와 차이점
차이점이라기 보다는 OAuth의 인증과정에서 JWT는 엑세스 토큰으로 사용될 수 있음
즉, JWT는 토큰의 한 종류이고 OAuth는 토큰을 발급하고 인증하는 오픈 스탠다드 프로토콜임반응형'network' 카테고리의 다른 글
[포트폴리오] 포트폴리오 웹사이트 최적화(?) - 3 (CRP, link rel = pre connect, pre-load, dns-prefetch)) (1) 2024.02.27 [NetWork] REST API (1) 2024.01.29 [NewWork] 토큰 기반 인증 (0) 2024.01.24 [NetWork] cookie, session, web storage (1) 2024.01.23 [NetWork] 브라우저에 www.naver.com을 입력하면 일어나는 일 (1) 2024.01.22