OAuth2.0 흐름도 - g-market/b-shop-backend GitHub Wiki

개요

  • OAuth = Open + Authorization
  • OAuth 2.0 인가 프레임워크는 애플리케이션이 사용자 대신하여 사용자의 자원에 대한 제한된 액세스를 얻기 위해 승인 상호 작용을 함으로써 애플리케이션이 자체적으로 액세스 권한을 얻도록 한다.
  • 사용자가 속한 사이트의 보호된 자원(Protected Resource) 에 대하여 애플리케이션의 접근을 허용하도록 승인하는 것을 의미한다

Oauth2

이전

  1. 아이디와 패스워드가 노출되어 보안에 취약
  2. 클라이언트 애플리케이션을 신뢰할 수 없다.

이후

  1. 아이디와 패스워드로 로그인 할 필요가 없다.
  2. 클라이언트 애플리케이션의 신뢰여부를 판단할 필요가 없다.
sequenceDiagram
    User(Resource Owner) ->> Client(Application): 사용 요청
    Client(Application) ->> Authorization Server: 권한 부여 승인 코드 요청
    Authorization Server ->> Resource Server: 요청에 포함되는 파라미터(client_id, <br/> redirect_url, response_type=code)
    Note right of Authorization Server: 로그인 팝업 출력
    User(Resource Owner) ->> Authorization Server: 로그인
    Authorization Server ->> Client(Application): 권한 부여 승인 코드 전달
    Client(Application) ->> Authorization Server: Access Token 요청(user 권한 부여 승인 코드)
    Note right of Authorization Server: 요청에 포함되는 파라미터(client_id, client_secret, <br/> redirect_url, grant_type=authorization_code, code)
    Authorization Server ->> Client(Application): Access Token 전달
    Client(Application) ->> Resource Server: 보호된 자원 요청 (access Token을 사용하여)
    Resource Server ->> Client(Application): 요청 자원 전달
    Client(Application) ->> User(Resource Owner): 완료
Loading
sequenceDiagram
    actor User
    User ->> Server: 장바구니 추가 요청
    Server ->> Redis/MongoDB: 사용자 ID, 아이템 ID 해당 장바구니 추가
    Server ->> User: 회원의 장바구니 목록 화면에 필요한 데이터 전송
Loading
⚠️ **GitHub.com Fallback** ⚠️