OAuth2.0

 

API를 이용해서 다른 서비스에 있는 정보를 자신의 애플리케이션으로 가져와서 가공하고 무언가를 행하는 것은 중요한 기술입니다.

 

다른 서비스의 정보를 가져오고, 그 정보가 특정 사용자의 개인적인 정보일 때는 그 사용자의 허락과 가지고 오려는 서비스의 정해진 절차를 따라야 정보를 가져올 수 있습니다.
그때 사용할 수 있는 기술이 oauth입니다.

 

아주 옛날에는 Resource Owner에게 본인의 Resource Server의 id, password를 받아와서(이를테면 개인의 구글 아이디와 비밀번호), 직접 Resource Server에 접속하는 방법으로 사용하였으나 보안에 매우 취약해서 oauth 방식이 개발되었습니다.

 

 

동작 매커니즘


oauth를 이용한 애플리케이션을 운영하기 위해서 우리 애플리케이션을 구글에 먼저 사용등록을 합니다. 구글은 서비스를 식별할 수 있도록 client id와 client secret 두 개의 값을 발급해 줍니다. 우리는 이제 이것을 이용해서 애플리케이션을 운영해 나갑니다. 특히 client secret은 외부에 노출하면 안 됩니다.

이제 애플리케이션이 리소스를  사용하기 위해  사용자에게 허락을 받아야 합니다. 사용자는 애플리케이션을 이용해서 Resource server에 접속해 인증을 해줍니다.

 

사용자의 승인으로 resource server는 애플리케이션에서 code를 제공합니다. 여기서  한 번 더  code와, client id, client secret 3개의 정보를 담아 resource sever에 다시 보냅니다. resource sever는 자신이 보낸 code와 client id, client secret를 검증해서 access token를 보내줍니다. (*access token은 비밀번호처럼 사용되는 매우 중요한 정보입니다.)

애플리케이션은 access token을 이용해서 resource server에 접근하여 resoure를 획득하고  가공 후에  사용자에게 서비스를 제공합니다.

 

참고 강의

구글 API를 통해서 배우는 인증 (oauth 2.0)-생활코딩

https://opentutorials.org/course/2473/16571

 

구글 API를 통해서 배우는 인증 (oauth 2.0) - 생활코딩

수업소개 API를 사용하는데 큰 걸림돌은 인증입니다. 사용자에게 최적화된 서비스를 제공하기 위해서는 그 사용자의 정보에 접근할 수 있어야 합니다. 많은 서비스가 인증을 위한 방법으로 oauth

opentutorials.org

 

+ Recent posts