OAuth2

hanim·2024년 7월 3일
0
post-thumbnail

OAuth 2.0(Open Authorization 2.0)

인증을 위한 개방형 표준 프로토콜
Third-Party(Client)에게 리소스 소유자(User)를 대신하여 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식을 제공

Role define

 Resource owner

  • 리소스 소유자 (일반적으로 최종사용자)

    Ex) 구글 네이버 등의 플렛폼 에서 리소스를 소유하고 있는 사용자
    리소스 : 구글 캘린더 정보 , 네이버 블로그 포스트 작성 등

 Resource Server(host protected resources)

  • 리소스 서버 (호스트 보호 리소스)
    Resource owner의 정보가 저장되어 있는 서버

    Ex) 구글 네이버 등 리소스를 가지고 있는 서버

 Authorization Server(AS)

  • 권한 부여 서버
    Resource Owner 인증 , Client에게 Access Tocken을 발급 하는 서버


    Application 인증 : end-server device 보다 서버기반 application에 안정적
    User 인증 : 일반적으로 enterprise identity provider(ldP) 와 같이 수행
    client에서 resource server 로의 요청을 인증함

    * Resource Server 와 Authorization server를 각각의 서버 또는 하나의 서버로 구성 할 수도 있음

 Client

  • 클라이언트 (리소스를 요청하는 어플리케이션)
    Resource Server의 자원을 이용하려는 서비스 , 우리가 개발하는 서비스
    Resource Server , Authorization server 입장에서는 우리가 개발하는 서비스가 Client
    Resource Owner의 리소스를 사용하기위해 접근 요청을 하는 application

    서버기반 application, end-server device에서 실행되는 application 모두 포함


    Authorization Server는 인증, 권한 부여를 용이하게 하지만 , Authorization Server 라고 부르는 이유는 인증은 가끔 시작시에만 수행하기 때문.

Grant Type

 Client Credentials Grant Type

  • 사용자가 아닌 client 만 인증하는 방식으로 client가 사용자를 대신하여 Access token 을 획득함. Client 인증 만으로 Access Token 획득 방식
  • 특정 사용자를 대신하지 않는 서버 기반 application에서 유용
  • OAuth2 권한 유형중 가장 간단한 방식.
  • Client 가 관리하는 RS 또는 AS에 client를 위한 resource access 권한이 없는 경우 사용
    Ex)
    백엔드 서비스 간 통신: 두 서비스가 사용자의 개입 없이 서로 통신할 필요가 있을 때.
    예: 마이크로서비스 간의 상호 작용.
    제한된 리소스에 대한 액세스: 사용자와 관련이 없는 리소스에 대한 액세스가 필요할 때.
    예: 공통 코드 또는 설정 정보 조회.
    애플리케이션 수준의 권한: 특정 애플리케이션 또는 서비스에 권한을 부여할 때 사용자 개입이 필요 없는 경우.

 Authorization Code Grant Type
 Resource Owner Password Credentials Grant Type
 Implicit

참조

profile
개발자가 되려는 개발자

0개의 댓글

관련 채용 정보