[TIL : 33] OAuth 2.0

jabae·2022년 1월 11일
0

TIL

목록 보기
33/44

프로젝트로 로그인 페이지를 구현하려고 하는데, OAuth를 사용하기로 했다. 나같은 새싹은 처음 접했기 때문에 우선 공부한 이론을 정리하고자 한다.
(써먹으면서 추후 차차 추가하기로 하자!🐣)

OAuth 2.0?

인증을 위한 프로토콜의 한 종류이다. 보안된 리소스에 접근하기 위해 클라이언트에 권한을 제공(Authorization) 하는 프로세스를 단순화 하는 프로토콜이다.

우리가 어떤 사이트에 로그인할 때, 기존 소셜 계정(google, github, facebook, naver, kakao...)으로 로그인에서 사용된다. 위는 벨로그 로그인 예시이다.

용어 정리

접근 과정에 앞서 알아야 할 용어 정리

  • Resource Owner : 액세스 중인 리소스의 User이다.
  • Client : Resource owner를 대신해 보호된 리소스에 액세스하는 응용프로그램이다.
    (위의 이미지 예시에선 벨로그에 해당한다.)
  • Resource server : Client의 요청을 수락하고 응답할 수 있는 서버이다.
    (위의 이미지 예시에선 깃헙, 구글, 페이스북에 해당한다.)
  • Authorization server : Client 및 Resource Owner를 성공적으로 인증한 후 Access token을 발급하는 서버이다.
    (위의 이미지 예시에선 깃헙, 구글, 페이스북에 해당한다.)
  • Authorization grant : Client가 Access token을 얻는 방법이다.
    (Authorization code grant type, Refresh token grant type 등이 있다.)
  • Authorization code : Access token을 발급받기 전에 필요한 code이다. client ID로 이 code를 받아온 후, client secret과 Authorization code를 이용해 Access token 을 받아온다.
  • Access token : 보호된 리소스에 액세스하는 데 사용되는 credentials이다. 이 Access token으로 이제 resource server에 접근을 할 수 있다.
  • Scope : 주어진 Access token을 사용하여 액세스할 수 있는 리소스의 범위이다.

Access token으로 Resource 접근하기

예를 들어, OAuth 앱을 등록하면 홈페이지에서 볼 수 있듯이 Client ID, Client Secret을 받을 수 있다. 이를 활용하여 Access token을 받아와 리소스에 접근 권한을 얻는다. 아래는 Github OAuth 예시이다.

아래는 과정을 정리한 순서이다.

참고자료
[Spring] OAuth2 소셜 로그인 가이드 : https://deeplify.dev/back-end/spring/oauth2-social-login
생활코딩 OAuth : https://opentutorials.org/course/3405/22004

정리 📚

  • 자자, 흠 흐름을 정리하면서 어떠한 과정으로 서버에 접근하고 인증받는 지 알게되었다! 😊
  • 이걸 어떻게 로그인 과정에 구현할 것인가? 😵‍💫 흠 프론트에서 어떻게 보여주고 API를 어떻게 주고 받을 것인가...? 요즘 c언어만 계속 하고, 프로젝트도 Figma만 계속 해서 감이 좀 떨어진 것 같다. 이것저것 찾아보며 구현할 방법을 찾아봐야겠다...!
profile
it's me!:)

0개의 댓글