본문 바로가기

oAuth4

[OAuth 2.0] 4. API 호출과 Refresh Token 1. API 호출 액세스 토큰이 발급되었다면, 이제 액세스 토큰을 활용해서 Resource Server를 조작해야 한다. 이를 조작하기 위해선 Resource Server가 클라이언트들에게 " '어떤 방식'으로 하면 Resource Server를 사용할 수 있다 " 라고 알려주는데 이때 '어떤 방식'이 API(Application Programming Interface'이다. API의 데이터는 액세스 토큰을 통해서 가져올 수 있다. 2. Refresh Token 액세스 토큰은 수명이 있다. 수명이 끝나면 API에서 더 이상 데이터를 가져올 수 없기에 매번 액세스 토큰을 재발급해야 한다. 그러나 이는 비효율적이므로 refresh token을 사용해 수명이 다한 액세스 토큰을 자동으로 재발급받을 수 있다. .. 2022. 1. 23.
[OAuth 2.0] 3. 액세스 토큰 발급 전 과정을 마치면, R.S는 authorization code를 통해서 이미 인증을 했으므로 authorization code 값을 지워버린다(다시 인증을 하지 않기 위해). 이제 R.S는 accessToken을 발급한다. R.S는 이 accessToken을 client에 응답해주고, client는 내부적으로 accessToken값을 저장한다. 위 그림으로 예를 들면, 이제 client는 해당 accessToken값(4)으로 접근하면, R.S가 user id가 1이고 accessToken값이 4인 사람에게 b, c 기능을 허용하고 동작하게 된다. 2022. 1. 19.
[OAuth 2.0] 2. Resource Owner와 Resource Server의 승인 1. Resource Owner의 승인 Client와 Resource Server(이하 R.S)는 등록 과정 이후 Client ID, Client Secret, redirect URI 값을 알게 된다. 예를 들어 R.S가 갖고 있는 기능이 A,B,C,D 총 네 개일 때 clinet가 R.S의 기능 중 A,B 두 개만 필요로 한다면 모든 기능에 대한 인증을 받는 것이 아니라 필요 기능에 해당하는 인증만 받는다. 이때, Resource Owner(이하 R.O)는 client에 접속한다. 접속하는 과정에서 R.S를 사용해야 하는 상황이 있다면 client는 R.O에게 사용자의 동의를 구하는 화면을 보여준다. R.O가 R.S에 "https://resource.server/?clinet_id=1&scope=A,B.. 2022. 1. 19.
[OAuth 2.0] 1. 역할과 등록 내가 만든 서비스인 mine, 그 서비스를 사용하는 user, 그리고 내가 만든 서비스가 연동하려고 하는 their가 있다. user가 mine에 접속해서 their의 서비스들, 즉 구글 로그인 같은 것들을 사용하기 위해서는 mine이 user로부터 user가 사용하고 있는 their의 서비스에 접근할 수 있도록 허가를 받아야 한다. 그러기 위해선 mine이 user의 id와 password를 전달받아서 그것을 기억하고 있다가 their의 서비스에 접속할 때 이용한다. 이는 아주 간단하고 강력한 방법이지만 user의 id와 password가 유출되기 쉽기에 위험하다. 그렇기에 OAuth를 사용하면 안전하게 their의 서비스를 이용할 수 있다. their는 user의 요청을 받으면 그들의 id와 pass.. 2022. 1. 19.