Skip to main content

Gate Token 개념

인증 & OAuth 2.0

인증이란 특정 사용자가 본인임을 확인하는 절차를 의미합니다. 일반적으로 아이디와 비밀번호가 일치하면 해당 사용자가 본인이라고 판단할 수 있습니다. 예를 들어, 다보리에 로그인할 때 다보리 계정의 아이디와 비밀번호를 입력하여 본인 여부를 확인하는 방식입니다.

하지만,  다보리 오픈API를 활용하여 개발한 애플리케이션에서 사용자가 다보리 계정의 아이디와 비밀번호를 직접 입력하도록 하면 보안상의 위험이 발생할 수 있습니다. 이를 방지하기 위해, 사용자가 제 삼자가 만든 애플리케이션이 아닌 **공식 인증 서비스(예: 네이버 로그인 페이지)**에서 직접 인증을 진행하고, 그 결과를 애플리케이션에 전달하는 방식이 필요합니다.

이러한 인증 방식을 체계적으로 정리한 표준이 OAuth이며, 다보리 오픈API는 OAuth 2.0 프로토콜을 적용하여 안전한 인증 서비스를 제공하고 있습니다.

Gate Token

dabory sso에sso(OAuth2 가입한기반)을 통해 사용자 로그증되면 이접속정보를GateToken을 통해사용하여 ClientId와 PublicKey를 발급받습니다. 최초에 작성된 sodium key pair는 ssoAPI 서버 저장됩니다.

DB에

(Front-end) - - - - > {Client Id, BA64 Key} - - - - > (Back-end)

                                  gateToken 생성

(Back-end) - - - - > {gate token} - - - - > (Front-end)

Frontend에서 최초 발급된 ClientId와 사용자의 db 접속정보가 암호화된 Base64 Key를 Backend로 전송후 Gate Token을 생성하여 반환하고 Front-End에서 session에 토큰을 저장하여 사용연동할 수 있습니다. GateToken 자체는 사용자 인증을 담당하지 않고, 로그인 Gate인증된 Token을사용자의 권한을 기반으로 API 및 DB 접근을 관리하는 역할을 합니다.

다보리 Frontend에서는 로그인 체크 이전에 session에 저장된 gatetoken을 check합니다. 만약 gatetoken이 존재하지 않는다면 main_api server로 부터 gatetoken을 발급받습니다. 즉 gatetoken은 app등록시 입력된 db 접근정보와 api server와의 정상적인 연동 권한을 갖췄는지 체크하기 위해 사용자를되는 검증하고암호화된 세션을토큰입니다.

유지시켜줍

api 서버로부터 반환받은 GateToken은 프론트엔드 session에 저장됩니다. 이 session은 권한이 필요GateToken을모든 발급받은프론트엔드 사용자는 한번요청로그인으로header에 다수의 API 서버와 연동할 수 있습포함됩니다.

[Gate Token 순서도]

https://manual.dabory.com/books/frontend-tutorial/page/envdabory-gate-token