본문 바로가기

WebApp/Oauth

Oauth - 절차(3)

- Access token 발급

 

이전 시간에는 우리가 리소스서버가 클라이언트를 승인하는 과정을 살펴봣다

보는것처럼 클라이언트가 리소스 오너를 통해서 authoization code값을 받았다
그러면 그다음단계로 클라이언트가 리소스서버에게 
직접 이런 정보를 전송한다

 

https://resource.server/token?

grant_type=authorization_code&(우리가 authorziaion code를 통해서 인증을 하고 있다는 뜻)
code=3&(클라이언트가 가진 authorziaion code의 코드값)
redirect_uri=https://client/callback&(리다이텍트 유알엘값도 전송)
client_id=1&(클라이언트 아이디 값과
client_secret=2(클라이언트 씨크릿값까지 전송)

 

그정보에서 아주중요한것
client Secret이라는 절대 외부로 노출해서는 안되는 비밀번호를
직접 리소스서버에게 전송한다 authoization code의 값 즉 여기서는 3 이라는 값과 함께!!




자 그럼 그다음 단게는무엇이냐
엑세스 토큰을 발급하는단계인데
Oauth의 목적은 엑세스 토큰을 발급하는 것이다

그러면 리소스 서버는  authoization code 값을 통해서 이미 인증을 햇기때문에
이제  authoization code값을 지워버려야한다 클라이언트와 리소스 서버 모두!!
그래야 다시 인증을 안하기 때문



그다음엔
리소스서버는 드디어 엑세스토큰을 발급한다
예를 들어 accessToken : 4라고 해보자


그다음엔 저 엑세스토큰을 클라이언트에게 응답해 준다
accessToken =4(엑세스토큰은 4입니다)



그럼 클라이언트는 엑세스토큰이 4라는 것을를 내부적으로 저장한다

 
그리고 엑세스토큰은 무엇을 보장하냐
저기 있는 저 클라리언트가 4라는 엑세스토큰으로 접근을하게되면
리소스서버는 엑세스토큰4를 보고 
아 저  4는 유저아이디1번에 해당되는 사용자에 유효한 기능 B와C에 대해서 권한이 열려있는
엑세스키니까 B와C 그리고 유저아이디1에 해당되는 사용자의 정보에 대해서
엑세스토큰4를 가진 클라이언트에게 허용을 해야겟다 라고 생각하고 동작하게 되는것이다.

 

즉 클라이언트가 발급받은 엑세스토큰:4로 리소스오너를 대신해서 리소스서버에게 접근을 하게 되면그때 엑세스토큰을 가지고 리소스서버에게 리소스서버상에서 리소스오너의 id가 뭐냐고 물어보는것이다

 

 

그러면 리소스서버는 엑세스토큰을 보고서 리소스오너의 id가 무엇이다 라고 API로 응답해줄것이다

그러면 우리는 그 사용자의 리소스서버상의 id값을 통해서 접속해 있는 사용자의 정보를 가지는 것이다

 

'WebApp > Oauth' 카테고리의 다른 글

Oauth - 절차(2)  (0) 2020.11.10
Oauth - 용어 및 절차(1)  (0) 2020.11.10