본문 바로가기
Computer Science

OAuth 2.0란?

by ウリ김영은 2024. 1. 28.

이번에 개인 프로젝트에서 도입을 했었는데, 

사용하는 김에 제대로 알고 가면 좋겠다는 생각이 들었습니다. 

.

.

.

OAuth(Open Authorization)란?

이렇게 생긴 버튼 자주 보셨을거라고 생각합니다. 

https://technote.kr/104

 

쉽게 말하면 SNS로그인입니다. 

 

좀 더 구체적으로 말해보면, 

인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.
출처 : 위키백과
OAuth는 사용자가 누구인지를 확인하는 인증(Authentication) 프로토콜이 아닌,
사용자의 요청이 권한이 있는지를 확인하는 인가(Authorization) 프로토콜이다.
출처: 위키백과

 

.

.

.

OAuth 역할

예를 들어, kimyoungen이라는 사이트를 만들고 있습니다. 그리고 Google의 OAuth를 사용하려고 합니다.

생활코딩

 

제가 만들고 있는 사이트, OAuth 기능을 사용하고자 하는 어플리케이션을 Client라고 합니다. 

OAuth 기능을 통해 사이트에 로그인하려고 하는 유저/사용자를 Resource Owner라고 합니다.

그리고 위의 그림에서 Google과 같이 권한을 부여해주고 리소스를 제공해주는 주체를 Resource Server, Authorization Server라고 합니다.  

 

 

OAuth 과정

https://docs.authlib.org/en/v0.15.3/oauth/2/intro.html

 

OAuth 사용하는 이유

일반적인 웹사이트의 서비스에 개인 정보를 준다는 것은 꽤 위험한 일이다.

해당 사이트가 안전한지, 내 개인정보를 어디에 사용하는지 등을 확인해야 하는데 그렇지 않은 사이트들이 많았다.

이것은 사용하려는 사용자도 사이트를 이용하기가 껄그럽고, 사이트를 운영하는 운영자도 부담이 컸다.

이것을 해결하기 위해 OAuth가 탄생하게 된 것이다.

개인정보는 정말 안전한 큰 기업에 맡기고, 해당 기업에서 정보를 확인하고 접근할 수 있는 토큰만 발급해 주는 것이다.

이렇게 되면 운영자도 부담이 덜게 되고, 사용자는 안전함과 동시에 편리함까지 갖추게 된다.

이러한 이유로 OAuth가 탄생하였고, 지금까지 사용되는 이유이다.

 


참고

https://oauth.net/2/

유튜브 생활코딩 Web2 - OAuth

https://fomaios.tistory.com/entry/Network-OAuth%EB%9E%80-feat-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-What-is-an-OAuth

https://docs.authlib.org/en/v0.15.3/oauth/2/intro.html

https://www.ssemi.net/what-is-the-oauth2/