[spring boot] OAuth 2.0

이경민·2022년 10월 2일
0

서버

목록 보기
2/2

OAuth 2.0

인증을 위한 개방형 표준 프로토콜으로 리소스 소유자를 대신하여 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식을 제공한다.

  • 간편 로그인 기능: 구글, 페이스북, 카카오, 네이버 등에서 제공


역할

  • Resource Owner (리소스 소유자): 본인의 정보에 접근할 수 있는 자격을 승인하는 주체.
    • 클라이언트를 인증(Authorize)하는 역할
    • 인증이 완료되면 동의를 통해 권한 획득 자격(Authorization Grant)을 클라이언트에게 부여
  • Client: Resource Owner의 리소스를 사용하고자 접근 요청을 하는 어플리케이션
  • Resource Server: 정보가 저장되어 있는 서버
  • Authorization Server (권한 서버): 인증/인가를 수행하는 서버로 클라이언트의 접근 자격을 확인하고 Access Token을 발급하여 권한을 부여하는 역할 수행

주요 용어

  • Access Token: 리소스 서버에게서 리소스 소유자의 정보를 획득할 때 사용되는 만료 기간이 있는 Token.
  • Refresh Token: Access Token 만료시 이를 재발급 받기위한 용도로 사용하는 Token

장점

구글, 페이스북, 카카오, 네이버 등을 이용해 보안 측면에서 안심할 수 있고, 비번과 아이디 정보를 기억해야하는 번거로움을 덜어줄 수 있다.



인증 과정

  1. 사용자는 특정 웹 application에서 OAuth 서비스 요청.
  2. OAuth 서비스는 redirect를 통해 Client에서 Authrization Code 부여
  3. Client는 Server에게 OAuth 서비스를 전달받은 Authorization Code를 보낸다
  4. Server는 Authrization Code를 다시 OAuth 서비스에 전달해 Access Token을 전달받는다
  5. Server는 Access Token으로 Client를 인증하고 요청에 대한 응답을 반환한다.

0개의 댓글