자격증명

토큰

사용자: API Drag에 회원가입하고 Macro 서비스를 구현하는 사용자

사용자 서비스: 위 사용자가 API Drag 와 관련 없이 제공하고 있는 서비스

API 서비스: Google, Naver, Kakao 등에서 제공하는 OPEN API 서비스

회원: API 서비스에서 제공하는 토큰정보와 매칭되는 사용자

자격증명 설명은 개념이 혼동될 수 있기 때문에 용어부터 정의하고 시작하겠습니다. 아래 설명에 사용되는 용어는 위 힌트를 기준으로 진행하겠습니다.

API Drag 서비스에서 자격증명에서 토큰은 크게 두 개념으로 나뉩니다.

owntoken

우선 API Drag 에 가입하기 위해 사용한 Google, Naver, Kakao 로그인 서비스를 통해 API Drag 서비스는 사용자의 각 로그인 서비스 별 개인토큰을 획득합니다. 뒤에 다시 설명이 나오겠지만 이러한 개인 토큰을 API Drag 서비스에서는 owntoken 이라고 표현합니다.

owntoken은 API Drag에서 직접 관리하게 됩니다.

Macro 서비스를 구축하는 과정에서 Google, Naver, Kakao 의 자격증명이 필요한 경우, 사용자에게 추가적인 로그인 및 권한 승인을 요청할 수 있습니다.

다시 설명 드리면, 예를들어 사용자가 API Drag 에 Kakao 간편가입을 통해 API Drag 서비스에 가입을 하게되면, Kakao 로 부터 사용자의 토큰을 수신하게 됩니다. 그리고 Macro 서비스 구현 중 Google 아이템 블록을 편집기에 Drag and Drom 을 하게되면, 편집기는 Google의 자격증명 획득을 위해 Google 로그인 팝업을 띄워서 Google 로그인 절차를 진행해야 합니다.

다른 예로, Kakao 간편가입을 한 사용자가 Kakao 메시지 전송 기능 구현을 위해 아이템 블록을 편집기에 Drag and Drop 하는 경우에도, Kakao의 메시지전송 권한 획득을 위해 다시한번 Kakao 로그인을 요청하는 경우도 있습니다.

custom token

사용자 서비스에서 회원들을 대상으로 Google, Naver, Kakao 로그인 서비스를 사용하고 토큰을 획득하여 활용하고 있을 수 있습니다. 그리고 그 사용자 서비스에서 OPEN API 연동을 편리하게 하기위해 저희 API Drag 서비스를 활용할 수 있습니다. 이런 경우 API Drag 서비스는 사용자 서비스와 API 서비스 사이에서 연계를 해 주는 Gateway 역할을 하게 됩니다.

이 경우에 사용자 서비스에서 API Drag 서비스에서제공하는 회원의 토큰을 API Drag 입장에서는 custom token 으로 용어를 정의하고 있습니다.

custom token은 API Drag에서 관리하는 대상이 아니라, 그냥 수신해서 API 서비스로 제공하는 연계 Data 중 하나일 뿐입니다. 즉, custom token 의 관리는 사용자 서비스에서 직접 관리를 해야합니다.

Agency

위 토큰 챕터에서는 토큰과 관련한 자격증명에 관하여 설명을 하였습니다.

Agency 챕터에서는 API Drag 서비스 내에서 Agency를 활용한 개발에 관한 설명입니다.

API Drag 서비스는 누구나 쉽게 Macro 서비스를 개발할 수 있도록 한다는 컨셉으로 개발이 되었습니다. 하지만 기본개념 이해하기 수준의 코딩에 대한 수준을 필요로 합니다. 또한 OPEN API 에 대한 이해도 역시 필요합니다. 이러한 경우 직접 Macro 서비스를 개발할 수 없는 사용자는 API Drag 서비스를 사용할 수 없을 지 모릅니다.

Macro 서비스 개발을 할 수 없는 사용자가 서비스를 필요로 하는 경우, 전문가에게 로그인 정보를 제공하고 서비스 개발을 의뢰할 수 있습니다. 이 경우 로그인 정보를 노출하게 되기 때문에 보안에 문제가 발생할 수 있습니다.

API Drag 서비스는 이러한 보안에 문제가 될 상황에 대비하여 Agency 개념을 도입했습니다.

사용자와 Agency 는 각자 API Drag 서비스에 가입을 하고, 사용자가 Agency 지정을 하게 되면, Agency 는 그 권한을 이양받아서 Macro 서비스를 개발하고 사용자에게 제공할 수 있습니다.

Last updated