[웹 공부] 인증(3) OAuth

lheun·2022년 9월 19일
0

웹 공부

목록 보기
4/4
post-thumbnail

🚩 OAuth

✅ OAuth란

Google, 카카오 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인할 수 있는 기능을 다양한 웹 서비스에서 볼 수 있다
이 때 사용되는 프로토콜이 OAuth이다

Open Authorization

  • 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다

    ex) Google 로그인 시, API를 통해 연동된 계정의 Google Calendar 정보를 가져와 보여줄 수 있다

⏹ OAuth와 로그인

OAuth로그인의 차이

ex) 사원증을 이용해 출입할 수 있는 회사

  • 회사 사원이 건물에 출입하는 것이 로그인
  • 외부 손님이 방문증을 수령한 후 회사에 출입하는 것이 OAuth

즉, OAuth사용자의 인증을 제공하는 표준으로 이를 활용하여 로그인 기능을 간편하게 구성할 수 있는 것이다

  • 웹 서비스 제공자는 아이디, 비밀번호 로그인을 구현할 필요가 없게 되고
  • 웹 서비스 사용자는 로그인 시 아이디, 비밀번호를 입력할 필요가 없다

🚩 OAuth 인증

✅ OAuth 구성(관련) 요소

1. Resource Owner

  • 웹 서비스를 이용하려는 유저, 자원(개인정보)을 소유하는 자, 사용자 (User)
    • 현재 소셜 로그인을 사용하려는 유저
    • Resource는 해당 유저의 개인정보

2. Client

  • Resource Owner 대신 Resource에 접근하는 애플리케이션
  • OAuth 인증을 사용Resource Server의 기능을 사용하려는 애플리케이션이나 웹 서비스
    • Client가 Resource server에게 필요한 자원을 요청하고 응답하는 관계

3. Authorization Server

  • 권한을 부여(인증에 사용할 아이템을 제공)해주는 서버
  • Client(혹은 사용자)를 인증한 후, Access Token을 발급해주는 서버
    • 사용자는 -> Authorization Server로 ID, PW를 넘겨 Authorization Code를 발급 받고
    • Client -> Authorization ServerAuthorization Code을 넘겨 Token을 받급 받는다

4. Resource Server

  • 사용자의 개인정보를 가지고 있는 애플리케이션 (Google, Facebook, Kakao 등) 회사 서버
    • ClientToken을 Resource Server로 넘겨 개인정보를 응답 받을 수 있다

5. Authorization Code

  • Access Token을 발급받기 위해 필요한 코드

6. Access Token

  • 자원에 대한 접근 권한을 Resource Owner가 인가하였음을 나타내는 자격증명

7. Refresh Token

  • Client는 Authorization Server로 부터 Access token과 Refresh token을 함께 부여 받는다
    • Access token은 보안상 만료기간이 짧아 만료되면 사용자는 로그인을 다시 시도해야 한다
    • Refresh token은 기존 Access token이 만료될 때 Access token을 재발급 받는다

8. Scope

  • 전달받은 Access Toekn으로 접근 가능한 Resource의 범위를 정의한다

✅ OAuth 인증 과정

👏 Reference

[WEB] 📚 OAuth 2.0 개념 정리 (그림으로 이해하기 쉽게)
OAuth와 춤을
[OAuth 2.0] OAuth란?
[Security] OAuth 2.0란? (개념 + 인증방식)
PAYCO 개발자센터

profile
🛫

0개의 댓글