이번 글에서는 서버 사이드 플로우를 이용해 액세스 토큰을 획득해보도록 하겠습니다. 0. OAuth2.0 클라이언트 OAuth2.0 클라이언트를 만드는 과정은 다음의 4단계로 나눌 수 있습니다. 클라이언트 애플리케이션 등록하기 액세스 토큰 얻기 액세스 토큰을 이용해서 보호된 리소스에 접근하기 엑세스 토큰 갱신하기 여기에서 액세스 토큰을 갱신하는 것은 신뢰 클라이언트(서버 사이드 워크플로우)일 경우에만 가능합니다. 액세스 토큰을 갱신하려면 리프레시 토큰(Refresh Token)을 안전하게 저장할 수 있어야 합니다. 이번 글에서는 2단계인 '엑세스 토큰 얻기'를 살펴보겠습니다. 그 중 신뢰클라이언트의 서버 사이드 워크플로우를 다뤄보겠습니다. 1. 엑세스 토큰 앞서 애플리케이션을 등록했으면 엑세스 토큰을 요청..
이번 글에서는 OAuth2.0의 애플리케이션을 등록해보겠습니다. 0. OAuth2.0 클라이언트 OAuth2.0 클라이언트를 만드는 과정은 다음의 4단계로 나눌 수 있습니다. 클라이언트 애플리케이션 등록하기 액세스 토큰 얻기 액세스 토큰을 이용해서 보호된 리소스에 접근하기 엑세스 토큰 갱신하기 여기에서 액세스 토큰을 갱신하는 것은 신뢰 클라이언트(서버 사이드 워크플로우)일 경우에만 가능합니다. 액세스 토큰을 갱신하려면 리프레시 토큰(Refresh Token)을 안전하게 저장할 수 있어야 합니다. 이번 글에서는 1단계인 '클라이언트 애플리케이션 등록하기'를 살펴보겠습니다. 1. 클라이언트 애플리케이션 등록하기 클라이언트가 OAuth2.0 서비스 제공자에게 요청을 보내기 전에 서비스 제공자는 자신에게 요청을..
이번 글에서는 신뢰 클라이언트가 사용하는 OAuth2.0 정보교환 방법인 서버 사이드 워크플로우에 대해 알아보겠습니다. 0. 서버 사이드 워크플로우란? 앞선 글에서 서버 사이드 워크플로우는 신뢰 클라이언트가 사용하는 정보교환 방식임을 확인 할 수 있었습니다. 이번 글에서는 마찬가지로 Velog에서 구글 아이디로 회원가입을 한다고 가정하도록 하겠습니다. 빨간색 부분이 이번 글에서 다룰 부분입니다. 1. Access Token 마찬가지로 서버 사이드 워크플로우도 최종적으로는 Access Token을 사용해 사용자의 리소스에 접근합니다. 하지만, 이전 클라이언트 사이드 워크플로우와 다르게 토큰을 발급받기 위해선 한 단계를 더 거쳐야합니다. 서버 사이드 워크플로우는 리소스 제공자에게 먼저 연락처에 접근할 수 있..
이번 글에서는 비신뢰 클라이언트가 사용하는 OAuth2.0 정보교환 방법인 클라이언트 사이드 워크플로우에 대해 알아보겠습니다. 0. 클라이언트 사이드 워크플로우란? 앞선 글에서 클라이언트 사이드 워크플로우는 비신뢰 클라이언트가 사용하는 정보교환 방식임을 확인 할 수 있었습니다. 이번 글에서는 마찬가지로 Velog에서 구글 아이디로 회원가입을 한다고 가정하도록 하겠습니다. 빨간색 부분이 이번 글에서 다룰 부분입니다. 1. Access Token 클라이언트 사이드 워크플로우를 사용하는 어플리케이션은 비 신뢰 어플리케이션이므로 기밀 정보를 저장하고 전달하는 것을 신뢰할 수 없습니다. 클라이언트 사이드 워크플로우에서 아래 빨간색부분 즉 권한을 받는 부분에서 서비스 어플리케이션(Velog)은 리소스 제공자(Goo..
이번 글에서는 OAuth2.0의 개요에 대해 알아보겠습니다. 0. OAuth2.0 동작흐름 앞서 OAuth2.0의 기본적인 동작 흐름은 아래와 같이 설명했습니다. 이제 위의 동작 흐름을 조금더 자세히 살펴 보겠습니다. 1. 사용자 동의(User Consent) 위의 흐름에서 구글은 사용자에게 Velog가 특정 서비스에 접근할 것을 허용할 것인지 확인합니다. 이러한 확인을 사용자 동의(User Consent)라고 합니다. 사용자 동의(User Consent) 과정을 살펴보기 위해 신규 사용자가 Velog에 회원가입하는 상황을 가정하겠습니다. 아래 빨간색 화살표 부분이 사용자 동의(User Consent)를 획득하는 지점입니다. 신규 사용자가 아래와 같이 Google 로그인 버튼을 누르면 사용자는 Googl..
이번 글에서는 전 세계 표준 권한 위임, 인가 오픈 프로토콜인 OAuth2.0에 대해 알아보도록 하겠습니다. 0. OAuth2.0이란? 서로 다른 두 집단이 정보와 리소스를 안전하고 신뢰할 수 있는 방법으로 공유할 수 있게 해주는 프로토콜입니다. 제가 글을 쓰고 있는 플랫폼인 Velog도 OAuth2.0을 사용해 아래와 같이 서비스를 제공하고 있습니다. '~로 로그인'은 OAuth2.0을 활용하는 대표적인 서비스입니다. 1. 인증(Authentication)과 인가(Authorization) OAuth2.0을 이해하기 위해서는 인증(Authentication)과 인가(Authorization)에 대한 이해가 필요합니다. ✔ 인증 인증은 누군가가 그들이 말하는 그 사람이 맞는지 실제로 확인하는 절차입니다...