【文献】
遠藤 圭介 高橋 寛,FinTechの鍵を握る2つの技術 金融分野のAPIエコノミー −オープンAPIが生み出す革新的なサービス,ITソリューションフロンティア,日本,株式会社野村総合研究所,2016年 7月20日,Vol.33 No.08,06〜09
(58)【調査した分野】(Int.Cl.,DB名)
ユーザのリソースに対してアクセスする権限が当該ユーザからクライアントに対して付与されたことを証明するトークンまたは当該トークンを取得するために使用されるトークンの要求を受け付けるトークン要求受付部と、
前記権限が付与された前記クライアントにより行われるまたは行われた前記リソースに対するアクセスに関する1以上の情報に基づいて、前記要求されたトークンの有効期間を設定する有効期間設定部と、
前記権限が付与された前記クライアントにより行われる前記リソースに対するアクセスの内容に基づいて、前記要求されたトークンの優先度を設定する優先度設定部と、
前記有効期間と前記優先度とが設定されたトークンを前記クライアントに対して発行するトークン発行部と
を備え、
前記優先度は、前記権限が付与された前記クライアントにより行われる前記リソースに対する他のアクセスを許可するか否かを判断するために参照される情報であることを特徴とするサーバ。
【発明を実施するための形態】
【0016】
1.実施形態
1−1.権限付与システム100の構成
図1は、本発明の一実施形態に係る権限付与システム100の構成の一例を示す図である。この権限付与システム100は、1以上のユーザ装置1と、1以上のクライアント装置2と、1以上の銀行サーバ3と、インターネットバンキング機能提供サーバ(以下、「IBサーバ」)4とを有する。ユーザ装置1とクライアント装置2とIBサーバ4とは、インターネット等の通信回線5により相互接続される。銀行サーバ3とIBサーバ4とは、専用線等の通信回線6により相互接続される。
【0017】
1−2.ユーザ装置1の構成
ユーザ装置1は、クライアント装置2が提供するサービスと、IBサーバ4が提供するサービスのユーザが使用するコンピュータである。例えば、スマートフォンやタブレット端末等の携帯型のコンピュータや、据え置き型のコンピュータである。ユーザ装置1は、具体的には、CPU等の演算処理装置と、フラッシュメモリ等のメモリと、タッチセンサ等の入力装置と、液晶ディスプレイ等の表示装置と、データ通信カード等の通信モジュール等を備える。ユーザ装置1では、演算処理装置が、メモリに記憶されるプログラムを実行することで、ユーザエージェント10の機能が実現される。ユーザエージェント10は、具体的にはウェブブラウザである。
【0018】
ユーザ装置1のユーザは、銀行サーバ3またはIBサーバ4に記憶される自身のリソースにアクセスする権限を有している。また、このユーザは、当該リソースにアクセスする権限を、クライアント装置2上で機能するクライアント20に付与する権限を有している。
【0019】
1−3.クライアント装置2の構成
クライアント装置2は、銀行サーバ3またはIBサーバ4に記憶される、ユーザ装置1のユーザのリソースにアクセスして、当該リソースに基づいてユーザにサービスを提供するサービス事業者が使用するコンピュータである。例えば、サーバである。クライアント装置2は、具体的には、CPU等の演算処理装置と、HDD等の記憶装置と、データ通信カード等の通信モジュール等を備える。クライアント装置2では、演算処理装置が、記憶装置に記憶されるプログラムを実行することで、クライアント20の機能が実現される。クライアント20は、具体的には家計簿アプリケーションである。より具体的には、銀行サーバ3またはIBサーバ4に記憶される、ユーザ装置1のユーザの口座情報にアクセスして、当該口座情報に基づいてユーザのために家計簿を自動で作成するアプリケーションである。クライアント20は、家計簿を自動で作成するにあたり、ユーザの口座情報にアクセスする権限の付与を当該ユーザから受ける。
【0020】
クライアント20の記憶装置には、口座情報管理テーブル21と、アクセストークン管理テーブル22と、リフレッシュトークン管理テーブル23とが記憶される。
【0021】
図2(a)は、口座情報管理テーブル21の一例を示す図である。口座情報管理テーブル21は、ユーザ装置1のユーザの口座ごとに作成され、IBサーバ4から取得されたユーザの口座情報が登録される。口座情報管理テーブル21の各レコードは、日付と、入金金額と、出金金額と、残高と、摘要の各フィールドにより構成される。
【0022】
図2(b)は、アクセストークン管理テーブル22の一例を示す図である。アクセストークン管理テーブル22は、IBサーバ4によりクライアント20に対して発行されるアクセストークンを管理するためのテーブルである。ここで、アクセストークンとは、ユーザ装置1のユーザの口座情報にアクセスする権限が当該ユーザからクライアント20に付与されたことを証明する認証情報である。具体的には、ランダムな文字列である。アクセストークン管理テーブル22の各レコードは、アクセストークンと、アクセストークンの有効期限と、アクセストークンのスコープの各フィールドにより構成される。ここで、アクセストークンのスコープは、当該アクセストークンにより権限が付与されていることが証明されるアクセスの範囲を示し、アクセスの種類と、ユーザ装置1のユーザを識別するユーザID(銀行ごとに異なる)と、アクセスの処理方式と、照会期間とにより構成される。ここで、アクセスの処理方式のうち、オフライン方式は、IBサーバ4に記憶されるリソースにアクセスするものであり、オンライン方式は、銀行サーバ3に記憶されるオリジナルのリソースにアクセスするものである。
【0023】
図2(c)は、リフレッシュトークン管理テーブル23の一例を示す図である。リフレッシュトークン管理テーブル23は、IBサーバ4によりクライアント20に対して発行されるリフレッシュトークンを管理するためのテーブルである。ここで、リフレッシュトークンとは、アクセストークンを取得するために使用される認証情報である。より具体的には、アクセストークンの再発行を要求する権限を有することを証明する認証情報である。リフレッシュトークンは、ランダムな文字列からなる。リフレッシュトークン管理テーブル23の各レコードは、リフレッシュトークンと、リフレッシュトークンの有効期限と、リフレッシュトークンのスコープの各フィールドにより構成される。ここで、リフレッシュトークンのスコープは、当該リフレッシュトークンを使用して取得されるアクセストークンにより権限が付与されていることが証明されるアクセスの範囲を示し、アクセスの種類と、ユーザIDと、アクセスの処理方式と、照会期間とにより構成される。
【0024】
1−4.銀行サーバ3の構成
銀行サーバ3は、銀行が管理するサーバである。銀行サーバ3は、具体的には、CPU等の演算処理装置と、HDD等の記憶装置と、データ通信カード等の通信モジュール等を備える。銀行サーバ3の記憶装置には、口座情報管理テーブル30が記憶される。口座情報管理テーブル30は、ユーザ装置1のユーザの口座ごとに作成され、ユーザのオリジナルの口座情報が登録される。口座情報管理テーブル30の各レコードは、日付と、入金金額と、出金金額と、残高と、摘要の各フィールドにより構成される。口座情報管理テーブル30の構成は、口座情報管理テーブル21と同様のため、図示を省略する。
なお、銀行(普通銀行)は、あくまで金融機関の一例であり、他の実施形態では、信託銀行やクレジットカード会社や保険会社等の他の金融機関によりサーバが管理されてもよい。
【0025】
1−5.IBサーバ4の構成
図3は、IBサーバ4の構成の一例を示す図である。IBサーバ4は、銀行サーバ3に対してインターネットバンキングの機能を提供するインターネットバンキング事業者が管理するサーバである。IBサーバ4は、具体的には、CPU等の演算処理装置と、HDD等の記憶装置と、データ通信カード等の通信モジュール等を備える。IBサーバ4では、演算処理装置が、記憶装置に記憶されるプログラムを実行することで、ユーザ装置1のユーザからクライアント20に対してアクセス権限を付与するための各種機能が実現される。これらの機能については後述する。
【0026】
IBサーバ4の記憶装置には、ユーザ管理テーブル409と、クライアント管理テーブル410と、口座情報管理テーブル411と、認可コード管理テーブル412と、アクセストークン管理テーブル413と、リフレッシュトークン管理テーブル414と、有効期間テーブル415と、処理履歴管理テーブル416とが記憶される。
【0027】
図4は、ユーザ管理テーブル409の一例である。ユーザ管理テーブル409は、インターネットバンキングを利用する、ユーザ装置1のユーザの認証情報と個人情報を管理するためのテーブルである。ユーザ管理テーブル409の各レコードは、ユーザIDと、パスワードと、氏名と、住所とにより構成される。
【0028】
図5は、クライアント管理テーブル410の一例である。クライアント管理テーブル410は、IBサーバ4からアクセストークンの発行を受けるクライアント20の認証情報を管理するためのテーブルである。クライアント管理テーブル410の各レコードは、クライアント20を識別するクライアントIDと、パスワードとにより構成される。
【0029】
口座情報管理テーブル411は、ユーザ装置1のユーザの口座ごとに作成され、銀行サーバ3から取得されたユーザの口座情報が登録される。IBサーバ4は、口座情報管理テーブル411を、定期的に銀行サーバ3の口座情報管理テーブル30に同期させる。口座情報管理テーブル411の各レコードは、日付と、入金金額と、出金金額と、残高と、摘要の各フィールドにより構成される。口座情報管理テーブル411の構成は、口座情報管理テーブル21と同様のため、図示を省略する。
【0030】
図6(a)は、認可コード管理テーブル412の一例を示す図である。認可コード管理テーブル412は、クライアント20に対して発行された認可コードに関する情報を管理するためのテーブルである。ここで、認可コードとは、アクセストークンとリフレッシュトークンを取得するために使用される認証情報である。より具体的には、アクセストークンとリフレッシュトークンの発行を要求する権限を有することを証明する認証情報である。認可コードは、ランダムな文字列からなる。認可コード管理テーブル412の各レコードは、認可コードと、クライアントIDと、認可コードの有効期限と、認可コードの要求時にクライアント20からIBサーバ4に送信されるリダイレクトURIの各フィールドにより構成される。
【0031】
図6(b)は、アクセストークン管理テーブル413の一例を示す図である。アクセストークン管理テーブル22は、IBサーバ4によりクライアント20に対して発行されるアクセストークンを管理するためのテーブルである。アクセストークン管理テーブル413の各レコードは、アクセストークンと、クライアントIDと、アクセストークンの有効期限と、アクセストークンのスコープの各フィールドにより構成される。アクセストークンのスコープは、アクセスの種類と、ユーザIDと、アクセスの処理方式と、照会期間とにより構成される。
【0032】
図6(c)は、リフレッシュトークン管理テーブル414の一例を示す図である。リフレッシュトークン管理テーブル414は、IBサーバ4によりクライアント20に対して発行されるリフレッシュトークンを管理するためのテーブルである。リフレッシュトークン管理テーブル414の各レコードは、リフレッシュトークンと、クライアントIDと、リフレッシュトークンの有効期限と、リフレッシュトークンのスコープと、アクセストークンの再発行回数の各フィールドにより構成される。リフレッシュトークンのスコープは、アクセスの種類と、ユーザIDと、アクセスの処理方式と、照会期間とにより構成される。
【0033】
図7は、有効期間テーブル415の一例を示す図である。有効期間テーブル415は、アクセストークンの有効期間を設定するために参照されるテーブルである。この有効期間テーブル415では、アクセス権限が付与されたクライアント20により行われるまたは行われたリソースに対するアクセスに関する情報ごとに有効期間が対応付けられている。ここで、このアクセスに関する情報は、要求されたアクセストークンが発行された後にクライアント20によりリソースに対して行われるアクセス(言い換えると、将来のアクセス)に関する情報と、要求されたアクセストークンが発行される前にクライアント20によりリソースに対して行われたアクセス(言い換えると、過去のアクセス)に関する情報とに分けられる。将来のアクセスに関する情報は、言い換えると、アクセストークンのスコープの情報であり、処理方式と、照会範囲とが含まれる。ここで、照会範囲には、照会期間と、照会対象の口座数と、照会対象の入出金明細数とが含まれる。処理方式に対応付けられる有効期間については、セキュリティの観点から、オンライン方式に対応付けられる有効期間の方が、オフライン方式に対応付けられる有効期間よりも短めに設定されている。照会範囲に対応付けられる有効期間については、クライアント20の利便性の観点から、照会範囲の値に比例するように設定されている。一方、過去のアクセスに関する情報には、処理時間と、アクセス回数(言い換えると、アクセストークンの再発行回数)と、直近のアクセス日時とが含まれる。ここで、処理時間とは、IBサーバ4がクライアント20からアクセス要求を受信してから、要求されたアクセスを実行するまでに要する時間である。処理時間とアクセス回数に対応付けられる有効時間については、クライアント20の利便性の観点から、その値に比例するように設定されている。直近のアクセス日時に対応付けられる有効時間については、セキュリティの観点から、負の比例関係となるように設定されている。
【0034】
図8は、処理履歴管理テーブル416の一例を示す図である。処理履歴管理テーブル416は、アクセス権限が付与されたクライアント20により行われたリソースに対するアクセスの履歴を管理するためのテーブルである。処理履歴管理テーブル416は、クライアント20ごとに作成される。この処理履歴管理テーブル416の各レコードは、日時と、処理時間と、アクセスのスコープの各フィールドにより構成される。アクセスのスコープは、アクセスの種類と、ユーザIDと、アクセスの処理方式と、照会期間とにより構成される。
【0035】
次に、IBサーバ4で実現される各種機能について説明する。具体的には、認可取得部401と、トークン要求受付部402と、有効期間設定部403と、アクセストークン発行部404と、リフレッシュトークン発行部405と、アクセス要求受付部406と、処理実行部407と、トークン再要求受付部408とについて説明する。
【0036】
認可取得部401は、クライアント20により生成された認可要求を受け付けると、ユーザ装置1のユーザから、当該ユーザのリソースにアクセスする権限をクライアント20に付与することに対する認可を取得する。その際、認可取得部401は、ユーザから認可を取得するのに先立ち、ユーザ管理テーブル409を参照して、当該ユーザの認証を行う。この認証に成功すると、認可取得部401は、アクセス権限をクライアント20に付与することに対する認可をユーザから取得する。認可をユーザから取得すると、認可取得部401は、クライアント20に対して認可コードを発行する。
【0037】
トークン要求受付部402は、認可コードを発行されたクライアント20により生成される、アクセストークンの要求を受け付ける。この要求を受け付けると、トークン要求受付部402は、クライアント管理テーブル410を参照して、クライアント20を認証する。この認証に成功すると、トークン要求受付部402は、受け付けた要求に含まれる認可コードの有効性を検証する。具体的には、認可コード管理テーブル412を参照して、認可コードの有効期限が経過しているか否かを検証する。
【0038】
有効期間設定部403は、トークン要求受付部402による認証および検証が成功すると、トークン要求受付部402により要求が受け付けられたアクセストークンの有効期間を設定する。その際、有効期間設定部403は、有効期間テーブル415を参照しつつ、認可取得部401により受け付けられた認可要求に基づいて有効期間を設定する。具体的には、有効期間設定部403は、認可要求に含まれるクライアントIDとアクセスのスコープに基づいて複数の有効期間を特定し、特定した複数の有効期間のうち、最短の有効期間を、要求されたアクセストークンの有効期間として設定する。ここで、最短の有効期間をアクセストークンの有効期間として設定しているのは、セキュリティの観点から、アクセストークンに設定される有効期間は短い方が好ましいからである。
【0039】
アクセストークン発行部404は、有効期間設定部403により有効期間が設定されたアクセストークンを、クライアント20に対して発行する。アクセストークンを発行すると、アクセストークン発行部404は、現在の時点から、設定された有効期間が経過した後の時点である有効期限を算出し、発行したアクセストークンと、認可取得部401により受け付けられた認可要求に含まれるクライアントIDおよびアクセスのスコープとに対応付けて、アクセストークン管理テーブル413に登録する。
【0040】
リフレッシュトークン発行部405は、リフレッシュトークンをクライアント20に対して発行する。リフレッシュトークンを発行すると、リフレッシュトークン発行部405は、現在の時点から、銀行ごとに設定される所定の有効期間が経過した後の時点である有効期限を算出し、発行したリフレッシュトークンと、認可取得部401により受け付けられた認可要求に含まれるクライアントIDおよびアクセスのスコープとに対応付けて、リフレッシュトークン管理テーブル414に登録する。
【0041】
アクセス要求受付部406は、クライアント20から送信されるアクセス要求を受け付ける。アクセス要求を受け付けると、アクセス要求受付部406は、クライアント管理テーブル410を参照して、クライアント20を認証する。この認証に成功すると、アクセス要求受付部406は、受け付けたアクセス要求に含まれるアクセストークンの有効性を検証する。具体的には、アクセストークン管理テーブル413を参照して、アクセストークンの有効期限が経過しているか否かを検証する。アクセストークンの有効性を検証すると、アクセス要求受付部406は、要求されたアクセスが権限の範囲内のものであるか否かを検証する。具体的には、アクセストークン管理テーブル413を参照して、受け付けたアクセス要求に含まれるアクセストークンとアクセストークンのスコープの組が登録されているか否かを判断する。
【0042】
処理実行部407は、アクセス要求受付部406による認証および検証が成功すると、アクセス要求受付部406により要求が受け付けられたアクセスを許可する。ここで、アクセスとは、残高や入出金明細等の口座情報の照会である。アクセスは、例えば、IBサーバ4が有するAPI(Application Programming Interface)を呼び出すことにより行われる。処理実行部407は、要求された処理を実行すると、実行した処理の日時と、処理時間と、アクセスのスコープとを対応付けて、処理履歴管理テーブル416に登録する。
【0043】
トークン再要求受付部408は、クライアント20から送信されるアクセストークン再要求を受け付ける。アクセストークン再要求を受け付けると、トークン再要求受付部408は、クライアント管理テーブル410を参照して、クライアント20を認証する。この認証に成功すると、トークン再要求受付部408は、受け付けたアクセストークン再要求に含まれるリフレッシュトークンの有効性を検証する。具体的には、リフレッシュトークン管理テーブル23を参照して、リフレッシュトークンの有効期限が経過しているか否かを検証する。リフレッシュトークンの有効性を検証すると、トークン再要求受付部408は、受け付けたアクセストークン再要求に含まれるアクセストークンのスコープが、権限の範囲内のものであるか否かを検証する。具体的には、リフレッシュトークン管理テーブル414を参照して、受け付けたアクセストークン再要求に含まれるリフレッシュトークンとアクセストークンのスコープの組が登録されているか否かを判断する。この際、照会期間については、リフレッシュトークン管理テーブル414に登録されている照会期間と同じか、それよりも短ければよい。
【0044】
1−6.権限付与システム100の動作
権限付与システム100の動作について説明する。具体的には、ユーザ装置1のユーザの認可を受けて、クライアント20に対してアクセストークンとリフレッシュトークンを発行する権限付与処理と、クライアント20からのアクセス要求を受けてアクセスを許可するアクセス処理と、クライアント20からのアクセストークン再要求を受けてアクセストークンを再発行するアクセストークン再発行処理とについて説明する。
【0045】
1−6−1.権限付与処理
図9は、権限付与処理の一例を示すシーケンス図である。クライアント20が提供する家計簿作成サービスを利用するユーザ装置1のユーザは、当該サービスと、IBサーバ4が提供するインターネットバンキングサービスとの連携を希望する場合、クライアント20に対してインターネットバンキングサービスとの連携を依頼する。その際、ユーザ装置1のユーザエージェント10は、クライアント20に対して連携依頼を送信する(ステップSa1)。クライアント20は、ユーザエージェント10から送信された連携依頼を受け付けると、ユーザエージェント10をIBサーバ4にリダイレクトする(ステップSa2)。その際、ユーザエージェント10からIBサーバ4に対して認可要求を送信させる。この認可要求には、クライアント20のクライアントIDと、アクセスのスコープと、リダイレクトURIとが含まれる。ここで、アクセスのスコープは、アクセスの種類と、ユーザ装置1のユーザのユーザIDと、アクセスの処理方式と、照会期間とにより構成される。リダイレクトURIとは、認可コード発行時にIBサーバ4がユーザエージェント10をリダイレクトする先を示す識別情報である。具体的には、クライアント20のウェブページを示すURLである。
【0046】
IBサーバ4の認可取得部401は、ユーザエージェント10から送信された認可要求を受け付けると、ユーザを認証するための認証画面をユーザエージェント10に送信する(ステップSa3)。ユーザエージェント10は、IBサーバ4から送信された認証画面を取得すると、当該認証画面を表示装置に表示させる。この認証画面には、ユーザIDとパスワードを入力する入力欄と、ログインボタンとが含まれる。ユーザ装置1のユーザが、ユーザIDとパスワードを入力してログインボタンを選択すると、ユーザエージェント10は、入力されたユーザIDとパスワードの組を認証情報としてIBサーバ4に送信する(ステップSa4)。IBサーバ4の認可取得部401は、ユーザエージェント10から送信された認証情報を取得すると、この認証情報(すなわち、ユーザIDとパスワードの組)がユーザ管理テーブル409に登録されているか否かを判断する(ステップSa5)。この判断の結果、登録されていない場合には(すなわち、ユーザ認証に失敗した場合には)、認可取得部401はユーザエージェント10に対してエラー応答を送信する。一方、登録されている場合には(すなわち、ユーザ認証に成功した場合には)、認可取得部401は、ユーザの認可を得るための認可画面をユーザエージェント10に送信する(ステップSa6)。
【0047】
ユーザエージェント10は、IBサーバ4から送信された認可画面を取得すると、当該認可画面を表示装置に表示させる。この認可画面には、ステップSa2でIBサーバ4が取得した認可要求に含まれるアクセスのスコープに関する説明と、認可ボタンと、拒否ボタンとが含まれる。ユーザ装置1のユーザが認可ボタンを選択すると、ユーザエージェント10は、ユーザが認可したことをIBサーバ4に通知する(ステップSa7)。IBサーバ4の認可取得部401は、この通知を受け付けると、認可コードを発行して、ユーザエージェント10を、ステップSa3で取得したリダイレクトURIを用いてクライアント20にリダイレクトする(ステップSa8)。その際、ユーザエージェント10からクライアント20に対して認可コードを送信させる。また、IBサーバ4の認可取得部401は、発行した認可コードと、この認可コードの有効期限と、ステップSa3で取得したクライアントIDおよびリダイレクトURIとを対応付けて認可コード管理テーブル412に登録する。
【0048】
なお、ユーザ装置1のユーザが拒否ボタンを選択した場合には、ユーザエージェント10は、ユーザが認可を拒否したことをIBサーバ4に通知する。IBサーバ4の認可取得部401は、この通知を受け付けると、エラー応答を生成して、ユーザエージェント10を、ステップSa3で取得したリダイレクトURIを用いてクライアント20にリダイレクトする。その際、ユーザエージェント10からクライアント20に対してエラー応答を送信させる。
【0049】
クライアント20は、ユーザエージェント10から送信された認可コードを取得すると、アクセストークン要求をIBサーバ4に対して送信する(ステップSa9)。このアクセストークン要求には、認可コードと、クライアントIDと、クライアント20のパスワードと、ステップSa2でIBサーバ4に通知したリダイレクトURIとが含まれる。IBサーバ4のトークン要求受付部402は、クライアント20から送信されたアクセストークン要求を受け付けると、まずクライアント20を認証する(ステップSa10)。具体的には、第1に、受け付けたアクセストークン要求に含まれるクライアントIDとパスワードの組がクライアント管理テーブル410に登録されているか否かを判断する。第2に、受け付けたアクセストークン要求に含まれる認可コードとクライアントIDとリダイレクトURIの組が認可コード管理テーブル412に登録されているか否かを判断する。これら2つの判断のうち、いずれか一方または両方の判断結果が否定的であった場合には(すなわち、クライアント認証に失敗した場合には)、トークン要求受付部402はクライアント20に対してエラー応答を送信する。一方、両方の判断結果が肯定的であった場合には(すなわち、クライアント認証に成功した場合には)、次に、トークン要求受付部402は、認可コードの有効性を検証する(ステップSa11)。具体的には、認可コード管理テーブル412を参照して、受け付けたアクセストークン要求に含まれる認可コードの有効期限が経過しているか否かを判断する。この判断の結果、有効期限が経過済みの場合には(すなわち、認可コードが有効でない場合には)、トークン要求受付部402はクライアント20に対してエラー応答を送信する。一方、有効期限が経過していない場合には(すなわち、認可コードが有効である場合には)、IBサーバ4はアクセストークン発行処理を実行する(ステップSa12)。
【0050】
図10は、アクセストークン発行処理の一例を示すフロー図である。このアクセストークン発行処理のステップSb1〜Sb7において、有効期間設定部403は、アクセストークンの有効期間を特定する。その際、有効期間設定部403は、有効期間テーブル415を参照しつつ、ステップSa2で取得された認可要求に基づいて有効期間を特定する。
【0051】
まず、有効期間設定部403は、認可要求に示されるアクセスの処理方式に基づいて有効期間を特定する(ステップSb1)。例えば、処理方式が「オンライン」方式の場合には、有効期間として「3分」を特定する(
図7参照)。
【0052】
次に、有効期間設定部403は、認可要求に示される照会期間に基づいて有効期間を特定する(ステップSb2)。例えば、照会期間が「当日分」の場合には、有効期間として「3分」を特定する(
図7参照)。
【0053】
次に、有効期間設定部403は、認可要求に示されるユーザIDに対応付けられている口座の数(言い換えると、照会対象の口座数)に基づいて有効期間を特定する(ステップSb3)。ここで、照会対象の口座数とは、言い換えると、そのユーザIDに対応付けられている口座情報管理テーブル411の数であると言える。例えば、照会対象の口座数が「2」の場合には、有効期間として「3分」を特定する(
図7参照)。
【0054】
次に、有効期間設定部403は、認可要求に示されるユーザIDに対応付けられている口座の入出金明細であって、当該認可要求に示される照会期間に対応する入出金明細の数(言い換えると、照会対象の入出金明細数)に基づいて有効期間を特定する(ステップSb4)。例えば、照会対象の入出金明細数が「100」の場合には、有効期間として「9分」を特定する(
図7参照)。
【0055】
次に、有効期間設定部403は、認可要求に示されるクライアントIDにより識別されるクライアント20により過去に行われたアクセスの処理時間に基づいて有効期間を特定する(ステップSb5)。その際、有効期間設定部403は、そのクライアント20と対応付けられている処理履歴管理テーブル416を参照して、認可要求に示されるアクセスのスコープと対応付けられている処理時間のうち、現在の時点から所定の期間内に行われたアクセスの処理時間を特定する。処理時間を複数特定した場合には、平均値を算出する。例えば、有効期間設定部403は、処理時間として「3秒」を特定した場合には、有効期間として「3分」を特定する(
図7参照)。
【0056】
次に、有効期間設定部403は、認可要求に示されるクライアントIDにより識別されるクライアント20により過去に行われたアクセスの回数(言い換えると、アクセストークンの再発行回数)に基づいて有効期間を特定する(ステップSb6)。なお、このステップは、クライアント20に対してすでにアクセストークンとリフレッシュトークンが発行済みであり、クライアント20からリフレッシュトークンを提示されて、アクセストークンの再要求を受けた場合に実行される。有効期間設定部403は、リフレッシュトークン管理テーブル23を参照して、提示されたリフレッシュトークンと対応付けられているアクセストークンの再発行回数を特定する。例えば、有効期間設定部403は、アクセストークンの再発行回数として「50回」を特定した場合には、有効期間として「6分」を特定する(
図7参照)。
【0057】
次に、有効期間設定部403は、認可要求に示されるクライアントIDにより識別されるクライアント20により行われた直近のアクセス日時に基づいて有効期間を特定する(ステップSb7)。その際、有効期間設定部403は、そのクライアント20と対応付けられている処理履歴管理テーブル416を参照して、認可要求に示されるアクセスのスコープ(照会期間を除く。)と対応付けられている直近の日時を特定する。例えば、有効期間設定部403は、直近のアクセス日時として「3日前」を特定した場合には、有効期間として「6分」を特定する(
図7参照)。
【0058】
ステップSb1〜Sb7を経て、複数の有効期間を特定すると、有効期間設定部403は、それらの有効期間の中で最も短い有効期間を特定する(ステップSb8)。有効期間設定部403により最も短い有効期間が特定されると、アクセストークン発行部404は、アクセストークンを生成するとともに、現在の時点から、特定された有効期間が経過した後の時点である有効期限を算出し、生成したアクセストークンと算出した有効期限とを対応付けてアクセストークン管理テーブル413に登録する(ステップSb9)。その際、アクセストークン発行部404は、ステップSa2で取得された認可要求に示されるクライアントIDとアクセスのスコープも対応付けて登録する。次に、リフレッシュトークン発行部405は、リフレッシュトークンを生成するとともに、現在の時点から、銀行ごとに設定される所定の有効期間が経過した後の時点である有効期限を算出し、生成したリフレッシュトークンと算出した有効期限とを対応付けてリフレッシュトークン管理テーブル414に登録する(ステップSb10)。その際、リフレッシュトークン発行部405は、ステップSa2で取得された認可要求に示されるクライアントIDとアクセスのスコープも対応付けて登録する。
以上が、アクセストークン発行処理についての説明である。
【0059】
アクセストークン発行処理が完了すると、アクセストークン発行部404は、発行されたアクセストークンとリフレッシュトークンを含むアクセストークン応答をクライアント20に送信する(ステップSa13)。このアクセストークン応答には、発行されたアクセストークンおよびその有効期限と、発行されたリフレッシュトークンおよびその有効期限と、ステップSa2で取得された認可要求に示されるアクセスのスコープとが含まれる。クライアント20は、IBサーバ4から送信されたアクセストークン応答を取得すると、取得したアクセストークン応答に含まれる情報をアクセストークン管理テーブル22とリフレッシュトークン管理テーブル23とに登録する(ステップSa14)。
以上が、権限付与処理についての説明である。
【0060】
以上説明した権利付与処理によれば、アクセストークンの有効期間は、アクセス権限が付与されるクライアント20により行われるまたは行われたリソースに対するアクセスに関する情報に基づいて設定される。その際、アクセスに関する複数の情報に基づいて特定される複数の有効期間のうち、最短の有効期間がアクセストークンの有効期間として設定されるため、そのような設定が行われない場合と比較して、リソースのセキュリティが向上する。
【0061】
1−6−2.アクセス処理
図11は、アクセス処理の一例を示すシーケンス図である。銀行サーバ3またはIBサーバ4に記憶される、ユーザ装置1のユーザのリソースにアクセスするクライアント20は、IBサーバ4にアクセス要求を送信する(ステップSc1)。このアクセス要求には、アクセストークンと、クライアント20のクライアントIDおよびパスワードと、当該アクセストークンのスコープとが含まれる。ここで、アクセストークンのスコープは、アクセスの種類と、ユーザ装置1のユーザのユーザIDと、アクセスの処理方式と、照会期間とにより構成される。
【0062】
IBサーバ4のアクセス要求受付部406は、クライアント20から送信されたアクセス要求を受け付けると、まずクライアント20を認証する(ステップSc2)。具体的には、第1に、受け付けたアクセス要求に含まれるクライアントIDとパスワードの組がクライアント管理テーブル410に登録されているか否かを判断する。第2に、受け付けたアクセス要求に含まれるアクセストークンとクライアントIDの組がアクセストークン管理テーブル413に登録されているか否かを判断する。これら2つの判断のうち、いずれか一方または両方の判断結果が否定的であった場合には(すなわち、クライアント認証に失敗した場合には)、アクセス要求受付部406はクライアント20に対してエラー応答を送信する。一方、両方の判断結果が肯定的であった場合には(すなわち、クライアント認証に成功した場合には)、次に、アクセス要求受付部406は、アクセストークンの有効性を検証する(ステップSc3)。具体的には、アクセストークン管理テーブル413を参照して、受け付けたアクセス要求に含まれるアクセストークンの有効期限が経過しているか否かを判断する。この判断の結果、有効期限が経過済みの場合には(すなわち、アクセストークンが有効でない場合には)、アクセス要求受付部406はクライアント20に対してエラー応答を送信する。一方、有効期限が経過していない場合には(すなわち、アクセストークンが有効である場合には)、次に、アクセス要求受付部406は、要求されたアクセスが権限の範囲内のものであるか否かを検証する(ステップSc4)。具体的には、アクセストークン管理テーブル413を参照して、受け付けたアクセス要求に含まれるアクセストークンとアクセストークンのスコープの組が登録されているか否かを判断する。この判断の結果、登録されていない場合には(すなわち、権限の範囲内でない場合には)、アクセス要求受付部406はクライアント20に対してエラー応答を送信する。一方、登録されている場合には(すなわち、権限の範囲内である場合には)、処理実行部407は、要求されたアクセスを許可する(ステップSc5)。例えば、オフライン方式によるユーザAの残高情報の照会を要求された場合には、処理実行部407は、ユーザAに対応付けられている口座情報管理テーブル411を参照して、最新の残高を特定して、クライアント20に通知する。処理実行部407は、要求された処理の実行後、実行した処理の日時と、処理時間と、アクセスのスコープとを対応付けて処理履歴管理テーブル416に登録する(ステップSc6)。
以上が、アクセス処理についての説明である。
【0063】
1−6−3.アクセストークン再発行処理
図12は、アクセストークン再発行処理の一例を示す図である。アクセストークンの再発行を要求するクライアント20は、IBサーバ4に対してアクセストークン再要求を送信する(ステップSd1)。このアクセストークン再要求には、リフレッシュトークンと、クライアントIDおよびパスワードと、発行を要求するアクセストークンのスコープとが含まれる。ここで、アクセストークンのスコープは、アクセスの種類と、ユーザ装置1のユーザのユーザIDと、アクセスの処理方式と、照会期間とにより構成される。
【0064】
IBサーバ4のトークン再要求受付部408は、クライアント20から送信されたアクセストークン再要求を受け付けると、まずクライアント20を認証する(ステップSd2)。具体的には、第1に、受け付けたアクセストークン再要求に含まれるクライアントIDとパスワードの組がクライアント管理テーブル410に登録されているか否かを判断する。第2に、受け付けたアクセストークン再要求に含まれるリフレッシュトークンとクライアントIDの組がリフレッシュトークン管理テーブル414に登録されているか否かを判断する。これら2つの判断のうち、いずれか一方または両方の判断結果が否定的であった場合には(すなわち、クライアント認証に失敗した場合には)、トークン再要求受付部408はクライアント20に対してエラー応答を送信する。一方、両方の判断結果が肯定的であった場合には(すなわち、クライアント認証に成功した場合には)、次に、トークン再要求受付部408は、リフレッシュトークンの有効性を検証する(ステップSd3)。具体的には、リフレッシュトークン管理テーブル414を参照して、受け付けたアクセストークン再要求に含まれるリフレッシュトークンの有効期限が経過しているか否かを判断する。この判断の結果、有効期限が経過済みの場合には(すなわち、リフレッシュトークンが有効でない場合には)、トークン再要求受付部408はクライアント20に対してエラー応答を送信する。一方、有効期限が経過していない場合には(すなわち、リフレッシュトークンが有効である場合には)、次に、トークン再要求受付部408は、受け付けたアクセストークン再要求に含まれるアクセストークンのスコープが、権限の範囲内であるか否かを検証する(ステップSd4)。具体的には、リフレッシュトークン管理テーブル414を参照して、受け付けたアクセストークン再要求に含まれるリフレッシュトークンとアクセストークンのスコープの組が登録されているか否かを判断する。この際、照会期間については、リフレッシュトークン管理テーブル414に登録されている照会期間と同じか、それよりも短ければよい。この判断の結果、登録されていない場合には(すなわち、権限の範囲内でない場合には)、アクセス要求受付部406はクライアント20に対してエラー応答を送信する。一方、登録されている場合には(すなわち、権限の範囲内である場合には)、IBサーバ4は、
図10に示すアクセストークン発行処理を実行する(ステップSd5)。
【0065】
ただし、ここで実行されるアクセストークン発行処理では、有効期間設定部403は、ステップSb1〜Sb7において、ステップSa2で取得された認可要求に代えて、ステップSd2で受け付けられたアクセストークン再要求に基づいて有効期間を特定する。また、アクセストークン発行部404は、ステップSb9において、ステップSa2で取得された認可要求に代えて、ステップSd2で受け付けられたアクセストークン再要求に示されるクライアントIDとアクセストークンのスコープとを、生成したアクセストークンと算出した有効期限とに対応付けて、アクセストークン管理テーブル413に登録する。また、リフレッシュトークンの発行(ステップSb10)は行われない。
【0066】
アクセストークン発行処理が完了すると、アクセストークン発行部404は、リフレッシュトークン管理テーブル414を参照して、ステップSd2で受け付けられたアクセストークン再要求に含まれるリフレッシュトークンと対応付けられているアクセストークン再発行回数をインクリメントする(ステップSd6)。次に、アクセストークン発行部404は、発行されたアクセストークンを含むアクセストークン応答をクライアント20に送信する(ステップSd7)。このアクセストークン応答には、発行されたアクセストークンおよびその有効期限と、ステップSd2で受け付けられたアクセストークン再要求に示されるアクセストークンのスコープとが含まれる。クライアント20は、IBサーバ4から送信されたアクセストークン応答を取得すると、取得したアクセストークン応答に含まれる情報をアクセストークン管理テーブル22に登録する(ステップSd8)。
以上が、アクセストークン再発行処理についての説明である。
【0067】
2.変形例
上記の実施形態は、以下に示すように変形してもよい。また、以下の変形例は互いに組み合わせてもよい。
【0068】
2−1.変形例1
上記の実施形態に係るクライアント20は家計簿アプリケーションであるが、ユーザ装置1のユーザの口座情報にアクセスして、当該口座情報に基づいてユーザにサービスを提供する他のアプリケーションであってもよい。例えば、会計帳簿を作成する会計アプリケーションや、銀行の口座間で金銭を移動させる金銭移動(具体的には、決済または送金)アプリケーションであってもよい。
【0069】
2−2.変形例2
上記の実施形態に係るIBサーバ4は、アクセストークンを発行する認可サーバの機能と、リソースを保持して、当該リソースに対するアクセス要求を処理するリソースサーバの機能を兼ね備えているが、各機能につき別々のサーバを構築してもよい。
【0070】
2−3.変形例3
上記の実施形態に係る権限付与システム100では、IBサーバ4により銀行サーバ3に対してインターネットバンキングの機能が提供されているが、銀行サーバ3自体がインターネットバンキングの機能(すなわち、IBサーバ4の機能)を有し、通信回線5に接続されてもよい。
【0071】
2−4.変形例4
上記の実施形態では、ユーザから認可を取得する方法として、「The OAuth 2.0 Authorization Framework」([online] D. Hardt、2016年8月 <URL http://tools.ietf.org/html/rfc6749>)に規定されるAuthorization Code Grant方式が採用されているが、これに代えて、同仕様書に規定されるImplicit Grant方式や、Resource Owner Password Credentials Grant方式や、Client Credentials Grant方式が採用されてもよい。
【0072】
2−5.変形例5
上記の実施形態に係るアクセストークン発行処理のステップSb3において、有効期間設定部403は、ユーザが複数の銀行に口座を有する場合に、それら複数の銀行の口座の合計を、照会対象の口座数として特定してもよい。
【0073】
2−6.変形例6
上記の実施形態に係るアクセストークン発行処理のステップSb5において、有効期間設定部403は、処理履歴管理テーブル416を参照してアクセスの処理時間を特定し、有効期間テーブル415を参照して、その特定した処理時間に対応付けられている有効時間を特定しているが、処理履歴管理テーブル416を参照して特定したアクセスの処理時間を、有効期間としてもよい。
【0074】
2−7.変形例7
上記の実施形態に係るアクセストークン発行処理において、有効期間設定部403は、ステップSb1〜Sb7に加えてまたはいずれかと代えて、クライアント20によるアクセスに関する他の情報に基づいて有効期間を特定してもよい。例えば、有効期間設定部403は、認可要求に示されるアクセスの種類に基づいて有効期間を特定してもよい。ここで、アクセスの種類には、口座情報の照会と、口座情報の更新が含まれる。口座情報の更新とは、具体的には、振込や振替といった口座間の金銭の移動のことである。アクセスの種類に対応付けられる有効期間については、口座情報の更新に対応付けられる有効期間の方が、口座情報の照会に対応付けられる有効期間よりも短めに設定される。
【0075】
または、有効期間設定部403は、認可要求により、照会対象の口座情報の種類が示される場合には、その口座情報の種類に基づいて有効期間を特定してもよい。ここで、口座情報の種類には、残高と、入出金明細と、ユーザの個人情報とが含まれる。口座情報の種類に対応付けられる有効期間については、残高に対応付けられる有効期間の方が、入出金明細に対応付けられる有効期間よりも短めに設定される。
【0076】
2−8.変形例8
上記の実施形態に係るアクセストークン発行処理において、有効期間設定部403は、ステップSb1〜Sb7のすべてを実行しなくてもよい。
【0077】
2−9.変形例9
上記の実施形態に係るアクセストークン発行処理のステップSb1〜Sb7において、有効期間設定部403は、有効期間テーブル415を参照せずに、クライアント20によるアクセスに関する情報ごとに用意された所定の数式を用いて有効期間を特定してもよい。
【0078】
2−10.変形例10
上記の実施形態に係る有効期間テーブル415において、処理方式に対応付けられる有効期間について、クライアント20の利便性の観点から、オンライン方式に対応付けられる有効期間の方を、オフライン方式に対応付けられる有効期間よりも長めに設定するようにしてもよい。また、直近のアクセス日時に対応付けられる有効時間について、クライアント20の利便性の観点から、正の比例関係となるように設定してもよい。
【0079】
2−11.変形例11
上記の実施形態に係るアクセストークン発行処理のステップSb8において、有効期間設定部403は、クライアント20の利便性の観点から、特定した複数の有効期間のうち、最も長い有効期間を特定するようにしてもよい。
【0080】
2−12.変形例12
上記の実施形態に係るアクセストークン発行処理のステップSb8において、有効期間設定部403は、特定した複数の有効期間を所定の数式に代入して算出することにより、一の有効期間を特定するようにしてもよい。ここで、所定の数式は、例えば、以下のように表される。
(数1)
y=(ax
1+bx
2+cx
3+dx
4+ex
5+fx
6+gx
7)/(a+b+c+d+e+f+g)
【0081】
数1の式において、yは求める有効期間を表し、x
1〜x
7はステップSb1〜Sb7で特定される有効期間を表し、a〜gは係数を表す。ここで、係数a〜gは、ステップSb1〜Sb7で特定される有効期間ごとに異なるように設定されてもよい。すなわち、有効期間設定部403は、ステップSb1〜Sb7で特定した複数の有効期間の各々に対して、当該有効期間を特定するために参照した情報に応じた重み付けを行うようにしてもよい。例えば、アクセスの処理方式に基づいて特定した有効期間に対して、照会対象の入出金明細数に基づいて特定した有効期間よりも大きい重みを付けるようにしてもよい。あるいは、係数a〜gは、一律に「1」に設定されてもよい。すなわち、有効期間設定部403は、ステップSb1〜Sb7で特定した複数の有効期間の各々に対して重み付けを行わなくてもよい。
【0082】
2−13.変形例13
上記の実施形態において、アクセストークンは、その有効期間を示す文字列を含むような文字列としてもよい。同様に、リフレッシュトークンは、その有効期間を示す文字列を含むような文字列としてもよい。
【0083】
2−14.変形例14
上記の実施形態において、IBサーバ4は、アクセストークンのスコープに応じて当該アクセストークンに優先度を設定し、クライアント20からアクセス要求を受け付けた際に、アクセストークンに設定された優先度と、要求されたアクセスの種類に対応付けられた優先度とを比較することで、当該アクセスを許可するか否かを判断するようにしてもよい。
【0084】
アクセストークンに優先度を設定するために、IBサーバ4は、優先度設定部の機能を有してもよい。この優先度設定部の機能は、IBサーバ4の演算処理装置が、記憶装置に記憶されるプログラムを実行することで実現される。この優先度設定部は、認可取得部401により受け付けられた認可要求に含まれるアクセスのスコープに基づいて、トークン要求受付部402により要求が受け付けられたアクセストークンの優先度を設定する。その際、優先度設定部は、後述する優先度テーブルを参照して、アクセストークンの優先度を設定する。ここで、優先度とは、アクセス権限が付与されたクライアント20により行われるリソースに対するアクセスを許可するか否かを判断するために参照される情報である。
【0085】
図13は、優先度テーブルの一例を示す図である。この優先度テーブルでは、アクセスの種類ごとに優先度が対応付けられている。優先度の高さは、優先度を示す数字の大きさに比例する。
【0086】
優先度設定部は、上記の実施形態に係るアクセストークン発行処理において、有効期間設定部403により最も短い有効期間が特定されると(ステップSb8)、優先度テーブルを参照しつつ、認可要求に示されるアクセスの種類に基づいて、発行されるアクセストークンの優先度を設定する。例えば、認可要求に示されるアクセスの種類が「決済(振替)」の場合には、アクセストークンの優先度として「2」を設定する(
図13参照)。優先度設定部が優先度を設定すると、アクセストークン発行部404は、ステップSb9において、アクセスのスコープに代えて、設定された優先度を、アクセストークンと有効期限とクライアントIDと対応付けて、アクセストークン管理テーブル413に登録する。リフレッシュトークン発行部405は、ステップSb10において、アクセスのスコープに代えて、設定された優先度を、リフレッシュトークンと有効期限とクライアントIDと対応付けて、リフレッシュトークン管理テーブル414に登録する。
【0087】
アクセストークンに優先度が設定された場合、上記の実施形態に係るアクセス処理のステップSc4において、アクセス要求受付部406は、要求されたアクセスが権限の範囲内のものであるか否かを検証するために、受け付けたアクセス要求に含まれるアクセストークンの優先度が、要求されたアクセスの種類に対応付けられた優先度以上であるか否かを判断する。ここで、アクセス要求に含まれるアクセストークンの優先度は、アクセストークン管理テーブル413を参照することにより特定され、要求されたアクセスの種類に対応付けられた優先度は、優先度テーブルを参照することにより特定される。この判断の結果、アクセストークンの優先度が、要求されたアクセスの種類の優先度未満である場合には(すなわち、権限の範囲内でない場合には)、アクセス要求受付部406はクライアント20に対してエラー応答を送信する。一方、アクセストークンの優先度が、要求されたアクセスの種類の優先度以上である場合には(すなわち、権限の範囲内である場合には)、処理実行部407は、要求されたアクセスを許可する(ステップSc5)。
【0088】
また、アクセストークンに優先度が設定された場合、上記の実施形態に係るアクセストークン再発行処理のステップSd4において、トークン再要求受付部408は、受け付けたアクセストークン再要求に含まれるアクセストークンのスコープが、権限の範囲内であるか否かを検証するために、受け付けたアクセストークン再要求に含まれるリフレッシュトークンの優先度が、受け付けたアクセストークン再要求に示されるアクセスの種類に対応付けられた優先度以上であるか否かを判断する。ここで、アクセストークン再要求に含まれるリフレッシュトークンの優先度は、リフレッシュトークン管理テーブル414を参照することにより特定され、受け付けたアクセストークン再要求に示されるアクセスの種類の優先度は、優先度テーブルを参照することにより特定される。この判断の結果、リフレッシュトークンの優先度が、受け付けたアクセストークン再要求に示されるアクセスの種類の優先度未満である場合には(すなわち、権限の範囲内でない場合には)、トークン再要求受付部408はクライアント20に対してエラー応答を送信する。一方、リフレッシュトークンの優先度が、受け付けたアクセストークン再要求に示されるアクセスの種類の優先度以上である場合には(すなわち、権限の範囲内である場合には)、IBサーバ4は、
図10に示すアクセストークン発行処理を実行する(ステップSd5)。
【0089】
以上説明した本変形例によれば、アクセスの種類ごとに異なるアクセストークンを発行する必要がない。
【0090】
2−15.変形例15
上記の変形例14に係るアクセス処理のステップSc4において、アクセストークンの優先度が、要求されたアクセスの種類の優先度未満である場合に(すなわち、権限の範囲内でない場合に)、アクセス要求受付部406は、当該アクセストークンを失効させてもよい。具体的には、当該アクセストークンに関する情報をアクセストークン管理テーブル413から削除してもよい。
【0091】
2−16.変形例16
上記の変形例14に係るアクセス処理のステップSc4において、IBサーバ4からエラー応答を受信したクライアント20は、当該エラー応答の受信を受けて、IBサーバ4に拒否されたアクセスの権限をユーザ装置1のユーザから取得するようにしてもよい。言い換えると、クライアント20は、IBサーバ4により拒否されたアクセス要求に含まれていたアクセストークンよりも高い優先度が設定されたアクセストークンをIBサーバ4から取得するようにしてもよい。優先度の高いアクセストークンを取得するために、クライアント20は、ユーザエージェント10に連携依頼を促して取得し、
図9に示す権限付与処理を開始してもよい。
【0092】
なお、ここで実行される権限付与処理内のアクセストークン発行処理において、アクセストークン発行部404は、生成したアクセストークンをアクセストークン管理テーブル413に登録するのに伴い、当該アクセストークンよりも優先度の低いアクセストークンであって、共通のクライアントIDおよびユーザIDと対応付けられているアクセストークンを削除するようにしてもよい(ステップSb9)。また、リフレッシュトークン発行部405は、生成したリフレッシュトークンをリフレッシュトークン管理テーブル414に登録するのに伴い、当該リフレッシュトークンよりも優先度の低いリフレッシュトークンであって、共通のクライアントIDおよびユーザIDと対応付けられているリフレッシュトークンを削除するようにしてもよい(ステップSb10)。
【0093】
あるいは、アクセストークン発行部404が優先度の低いアクセストークンを削除する代わりに、リフレッシュトークン発行部405がリフレッシュトークンの発行を省略するようにしてもよい。リフレッシュトークンの発行が省略されることで、新たに生成されたアクセストークンの再発行が不可能となり、新たに生成されたアクセストークンの使用機会が制限されることになる。あるいは、リフレッシュトークン発行部405は、アクセストークンと同じ有効期間を、リフレッシュトークンの有効期間として設定するようにしてもよい。
【0094】
2−17.変形例17
上記の変形例14に係るアクセストークン発行処理において、有効期間設定部403は、ステップSb1〜Sb8を実行せずに、銀行ごとに設定される所定の有効期間を、発行されるアクセストークンの有効期間として特定してもよい。
【0095】
2−18.変形例18
上記の実施形態では、クライアント20ごとにアクセストークンおよびリフレッシュトークンが発行されているが、複数のクライアント20からなるグループ単位でアクセストークンおよびリフレッシュトークンが発行されてもよい。
【0096】
2−19.変形例19
上記の実施形態に係るアクセストークン発行処理のステップSb10において、リフレッシュトークン発行部405は、ステップSa2で取得された認可要求に示されるアクセスの種類に基づいて、リフレッシュトークン発行部405の有効期間を設定してもよい。ここで、アクセスの種類には、口座情報の照会と、口座情報の更新が含まれる。アクセスの種類に対応付けられる有効期間については、口座情報の更新に対応付けられる有効期間の方が、口座情報の照会に対応付けられる有効期間よりも短めに設定される。
【0097】
2−20.変形例20
上記の実施形態に係る権限付与処理において、リフレッシュトークンのみの発行が、クライアント20からIBサーバ4に対して要求されてもよい。
【0098】
2−21.変形例21
上記の実施形態または変形例に係るIBサーバ4において実行されるプログラムは、磁気ディスク、光ディスク、光磁気ディスク、メモリ等の記憶媒体に記憶された状態で提供されてもよい。また、当該プログラムは、インターネット等の通信回線を介してダウンロードされてもよい。