OAuth

개요

OAuth는 인가(Authorization)를 처리하기 위해 만들어진 표준 프로토콜이다.
위키 정의로는 "인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준"이라고 한다.

간단하게 예를 들자면..
어떤 웹사이트는 사용자가 네이버 메일을 자동으로 보낼 수 있게 하는 서비스를 제공한다.
그래서 이 웹사이트에 로그인한 유저는 자신의 네이버 메일을 이 사이트를 통해서 보낼 수 있어야 한다.
이때 유저는 네이버로부터 신원을 받아와 서버에 제시하고, 서버는 해당 신원을 통해 네이버 메일에 api를 날린다.
네이버는 유저의 신원을 받아보게 되니 유저의 메일을 사용할 권한이 있다고 판단하고 서버의 요청을 인가한다.

자주 혼동하는 개념이지만, OAuth는 기본적으로 인가를 하기 위한 프로토콜이다.
여기에서 정해진 표준 방식이 조금 더 발전해서 인증 기능을 제공하는 OIDC가 나왔다.

구조


사진 정리가 잘 돼있어 가져왔다.[1]
위에서 잠깐 든 예시에서의 클라이언트가 바로 서버이다.

관련 문서

이름 noteType created

참고


  1. https://velog.io/@wlsh44/OpenID-Connect와-OAuth2.0 ↩︎