OAuth 2.0

Purple·2021년 11월 24일
0

TIL

목록 보기
61/73
  • OAuth2.0은 인증을 위한 표준 프로토콜의 한 종류로, 보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공(Authorization)하는 프로세스를 단순화하는 프로토콜이다.

  • OAuth에서 꼭 알아야 할 용어

    • Resource Owner : 액세스 중인 리소스의 유저
    • Client : Resource owner를 대신하여 보호된 리소스에 액세스 하는 응용 프로그램
    • Resource server: client의 요청을 수락하고 응답할 수 있는 서버
    • Authorization server:Resource server가 액세스 토큰을 받급받는 서버
    • Authorization grant: 클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명
    • Authorization code: access token을 발급받기 전에 필요한 code
    • Access token: 보호된 리소스에 액세스 하는데 사용되는 credentials
    • scope: 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스의 범위
  • Grant type이란, client가 액세스 토큰을 얻는 방법이다.

  • Grant type 종류

    • Authorization Code Grant Type : 가장 일반적인 방법, 액세스 토큰을 받아오기 위해서 먼저 authorization code를 받아 액세스 토큰과 교환하는 방법
      • authorization code 절차를 거치는 이유는 보안성 강화에 목적이 있다. client에서 client-secret을 공유하고 액세스 토큰을 가지고 오는 것은 탈취될 위험이 있기 때문에 client에서는 authorization code만 받아오고 server에서 access token 요청을 진행한다.
    • Implicit Grant Type
    • Client Credentials Grant Type
    • Resource Owner Credentials Grant Type
    • Refresh Token Grant Type: 일정 기간 유효 시간이 지나서 만료된 액세스 토큰을 편리하게 다시 받아오기 위해 사용하는 방법
      • Access token보다 refresh token의 유효시간이 대체로 조금 더 길게 설정하기 때문에 가능한 방법. server마다 refresh token에 대한 정책이 다 다르기 때문에 refresh token을 사용하기 위해서는 사용하고자 하는 server의 정책을 살펴볼 필요가 있다.
  • Authentication(인증)은 자신이 누구라고 주장하는 사람을 확인하는 절차이다. 반면, Authorization(권한부여)는 가고 싶은 곳으로 가도록 혹은 원하는 정보를 얻도록 허용하는 과정이다.

profile
다시 보면, 더 많은 것들이 보인다.

0개의 댓글