APIの認証について

はじめに

本ページはSDKを用いず、アプリから直接HTTP(S)通信を用いて認証し、APIを使う方向けの資料です。
SDKは以下の一連の処理を内部で実行するため、SDKを使われる方は本ページの説明が不要です。

APIの認証フロー

以下に、認証フローの図について詳細を説明します。

「アプリケーションサーバー」は御社が提供するアプリのWebサーバーです。
「アプリ」は御社が提供するアプリケーションです。
「uid・state有り?」の判断はGETパラメータにuid及びstateがあるか判定します。
「redirect?」の判断はレスポンスボディ(JSON形式)のresultの値が"redirect"か判定します。

番号 概要 備考
1 ユーザーがアプリを起動 GoQSystemから起動した場合は、設定した「Redirect URI」にuid及びstateがGETパラメータで渡されます。直接ユーザーがアプリケーションサーバーにアクセスした場合は、uid及びstateはありません
2-1 access_tokenの取得 uid及びstateを元にAPIサーバーにaccess_tokenの発行を依頼します
2-2 uid・stateの取得 client_id及びclient_secretを元にGoQSystemサーバーにuid及びstateの発行を依頼します
3 access_tokenの返却 正しいuid及びstateの場合、access_tokenを発行し返却します
4-1 uid・stateの取得 stateの有効期限(※1)が切れている場合、stateを再発行します
4-2 データアクセス access_tokenが取得出来た場合、APIを用いてデータの取得・更新などを実行します
5 実行結果の返却 データアクセスの実行結果を返却します。またaccess_tokenの有効期限(※2)が切れていてrefresh_tokenの有効期限内(※3)の場合は、実行結果と共に新しいaccess_tokenとrefresh_tokenを返却します(※4)
6-1 uid・stateの取得 refresh_tokenの有効期限が切れている場合、stateを再発行します
6-2 アプリのビジネスロジック データアクセスの結果を元にアプリのビジネスロジックを実施します。再びデータアクセスが必要な場合、4-2を実施します
7-1 アプリにリダイレクト uid及びstateを発行し、リダイレクトします
7-2 ログイン画面の表示 ユーザーへGoQSystemのログイン画面を表示します
8 ログイン ユーザーがGoQSystemにログインします。ログインしなかった場合は、アプリにリダイレクトされません

※1:「state」の有効期限は5分です
※2:「access_token」の有効期限は1日です
※3:「refresh_token」の有効期限は3日です
※4:「access_token」及び「refresh_token」は同時に更新され、有効期限はこのタイミングからの期限になります。その為3日以内に一度データアクセス(又はaccess_tokenの取得)を実施することで一度認証したユーザーは、以後認証なしでAPIを使い続けることが出来ます