OAuth 개념정리

YulHee Kim·2021년 9월 25일
0

OAuth

목록 보기
1/2
post-thumbnail

💡 OAuth란?

OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. 이 매커니즘은 여러 기업들에 의해 사용되는데, 이를테면 아마존, 구글, 페이스북, 마이크로소프트, 트위터가 있으며 사용자들이 타사 애플리케이션이나 웹사이트의 계정에 관한 정보를 공유할 수 있게 허용한다.
[출처] 위키백과

즉, 요즘 구글 계정 로그인, 카카오계정 로그인 등이 보편화되고 있는데 위와 같은 기능을 말한다.

💡 OAuth 참여자

  • Resource Owner : Google, Kakao 등에 이미 개인정보를 저장하고 있으며 Client가 제공하는 서비스를 이용하려는 사용자.
  • Resource Server : 사용자의 개인정보를 가지고 있는 애플리케이션(Google, KaKao 등) 서버. Client는 Token을 이 서버로 넘겨 개인정보를 응답 받을 수 있다.
  • Client : Resource Server에 접속해서 정보를 가져오고자 하는 클라이언트(웹 어플리케이션)
  • Authorization Server : 권한을 부여(인증에 사용할 아이템을 제공주는) 해주는 서버. 사용자는 이 서버로 ID, PW를 넘겨 Authorization Code를 발급 받을 수 있다. Client는 이 서버로 Authorization Code를 넘겨 Token을 발급 받을 수 있다.

[출처]

💡 OAuth 인증과정

인증요청 -> Authorization Code 발급 -> Access Token 발급 -> Access Token 저장 -> 인증완료

이때 Authorization Code 발급과 Acceess Token 발급은 Resource Server에 요청하여 처리된다. 나머지는 서비스에서 처리된다.

💡 Oauth 프로세스

payco 개발자센터에서 아래 그림을 가져와보았다.

  • 1~5 단계는 Authorization Code 발급 요청 URL을 통해 진행
  • 그 다음은 callback URL을 통해 전달받은 Authorization Code를 사용하여 Access Token 요청 API를 통해 진행
  • 발급받은 Access Token은 서비스에서 자체적으로 저장,관리
  • 사용자의 서비스 요청 시 회원정보가 필요하다면 Access Token을 사용해 API를 호출

개념을 정리해보았으니 다음은 실제 Client 등록부터 API호출, Refresh Token발급도 진행해보며 OAuth의 동작 프로세스를 더 이해해보겠습니다~

profile
백엔드 개발자

0개의 댓글