OAuth

LSM ·2021년 8월 30일
0
post-custom-banner

OAuth란 ?

Oauth는 인증을 위한 표준 프로토콜로 한 인터넷 서비스의 기능을 다른 서비스에서도 사용하도록 하는 것입니다. 예를 들어 최근 대부분의 사이트에서 구글 로그인 네이버 로그인 등이 가능한 것이 바로 OAuth를 활용한 것입니다.
OAuth를 통해서 우리는 우리의 개인정보를 보다 덜 노출 시킬수 있어 보안적으로 도움이 되기도 합니다. 하지만 역으로 해당 사이트 개인정보 하나만 노출되면 oauth로 연동된 모든 사이트의 접근이 노출되는 경우도 발생가능합니다.

OAuth flow

순서 :

  1. 사용자가 클라이언트 서비스에 접속한다.
  2. 사용자가 로그인을 위해 서버의 Oauth서비스를 선택한다.
  3. 사용자는 서버의 Oauth 페이지로 이동해 인증 과정을 거친다.
  4. 인증 과정이 끝나면 클라이언트가 지정한 URL로 서버에서 파라미터에 인증 코드를 붙여서 리다이렉트 한다.
  5. 리다이렉트된 URL에 붙어 온 파라미터를 읽고 클라이언트는 여기서 온 정보와 클라이언트 6. id와 비밀번호를 붙여서 서버에 액세스 토큰을 요청한다.
  6. 액세스 토큰을 제대로 받았다면 이 액세스 토큰으로 클라이언트는 사용자의 데이터를 서버에게 요청할 수 있다.
  7. 액세스 토큰은 빠르게 만료되며 6과정에서 같이 받은 만료가 긴 refresh 토큰으로 재발급 받을 수 있다.

정리 :

OAuth에서 Resource Server (리소스를 가지고 있는 서버)는 Resource Owner(리소스의 소유자)에게 인증을 받음으로써, 해당 Client(개별 웹 서버)가 Resource에 접근할 수 있는지 확인합니다.그리고 인증된 Client(개별 웹 서버)는 자신의 목적에 따라 허용된 정보에만 접근할 수 있습니다.

스프링부트 실습 예시)

JPA인스타그램 13강 카카오 로그인 구현하기(OAuth2-Client 사용 안함)

[출처]
스프링부트 JPA인스타그램 13강 카카오 로그인 구현하기(OAuth2-Client 사용 안함)
https://blog.naver.com/PostView.naver?blogId=getinthere&logNo=221741763496&redirect=Dlog&widgetTypeCall=true&topReferer=https%3A%2F%2Fgetinthere.tistory.com%2F30&directAccess=false

profile
개발 및 취준 일지
post-custom-banner

0개의 댓글