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を使い続けることが出来ます