━━━━ ◇ ━━━━
-/tech

[TECH] Oauth

OAuth란?

Open Authorization. 서비스에서 제한적으로 권한을 요청해 사용 할 수 있는 키를 발급해주는 것을 말한다. 기존에는 다른 서비스의 리소스를 사용하기 위해서 사용자의 ID와 PW를 직접 입력받아 사용했으며, 이에따라 아래와 같은 문제가 필연적으로 발생했다

  • 사용자: 신뢰할 수 없는 서비스에 자신의 ID와 PW를 공개
  • 현재 서비스: 보안 문제에 대한 책임
  • 다른 서비스: 현재 서비스를 신뢰할 수 없다

이와 같은 문제를 해결하기 위해 OAuth가 탄생하였다.

주요 용어

  • Resource Owner: 사용자
  • Client: Resource Server의 데이터를 사용하려고 하는 서비스
  • Authorization Server: Client가 Resource Server를 사용할 수 있도록 인증토큰을 발행해주는 서버 (인증 서버)
  • Resource Server: OAuth 서비스를 제공하고 자원을 관리하는 서버 (신뢰할 수 있는 구글이나 네이버와 같은 서비스)

인증 흐름

토큰

  • Access Token 토큰 요청 절차를 성공적으로 수행하면 클라이언트에게 Access Token이 문자열 형태로 발급되며, 클라이언트는 이를 저장 및 사용하여 필요한 데이터를 Resource Server로부터 가져올 수 있다.
  • Refresh Token Access Token은 사용시간이 제한되어 있으므로, 만료될 때 Refresh Token을 사용하여 새로운 Access Token을 받아온다. 보통 Access Token을 발급받을때 함께 발급해준다.

 

일단 전체적인 개념만 공부하고, 인증 종류와 구현에 대해서는 직접 구현할때 알아보기로.

참고 사이트

COMMENT
1