(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
サービス提供サイトから、API(Application Programming Interface)を介して各種情報が提供されつつある。例えば、銀行が保有している顧客に関する金融情報の利用促進を図るために、他のシステムとの連携が検討されている(例えば、非特許文献1)。このような銀行システムから情報を取得するための銀行APIの公開も検討されている(例えば、非特許文献2)。この銀行APIは、残高照会や資金移動等、既存機能を個別にサービス化して、外部のアプリケーションから利用するために使用する。
【0003】
そこで、事業者に対して、APIを利用して会計処理を支援する技術も検討されている(例えば、特許文献1)。この文献に記載された会計処理装置は、ウェブサーバと、ウェブサーバと接続されたDBと、DBと接続されたスクレイピングサーバとを備える。ウェブサーバは、スクレイピングサーバにより取り込んだウェブ明細データを識別し、各取引を、各取引の取引内容の記載に基づいて、特定の勘定科目に仕訳する。ウェブサーバは、この際、取引内容の記載を形態素に分節し、各形態素に対応づけられた1又は複数の勘定科目の出現頻度を参照して、取引内容の記載が表す勘定科目を推測する。
【0004】
また、権限の認可を行うためにOAuthによる認証を用いることもある。このOAuthは、ユーザの代理で、サーバにあるユーザのリソースへのアクセスを許可するための認証用のプロトコルである。OAuthを使用することで、エンドユーザはクライアントにユーザ名やパスワードを知らせることなく、リソースへの第三者アクセスを認可することができる。OAuthでは、ログインのために必要なユーザID及びパスワードを、ユーザ毎に割り当てるOAuth用トークン(アクセストークン)に置き換える。このOAuth用トークンにより、外部のサービスにはパスワードを知らせることなく、システム間の情報の共有が可能になる。
【0005】
更に、ユーザの生体情報を用いたユーザ認証において、FIDO(登録商標)も検討されている。このFIDOでは、ユーザ端末に、予め登録された生体情報を用いて照合を行ない、照合を完了した場合、暗号化した認証情報であるFIDO用トークンを認証サーバに送信する。
【発明を実施するための形態】
【0013】
以下、
図1〜
図4を用いて、サービス管理システムの一実施形態を説明する。
図1に示すように、本実施形態では、ユーザ端末10、中継サーバ20、APIゲートウェイ30、認証サーバ40、銀行サーバ50を用いる。ここで、APIゲートウェイ30、銀行サーバ50が、サービス管理システムとして機能する。
【0014】
ユーザ端末10は、銀行サーバ50を利用する顧客(ユーザ)が用いるコンピュータ端末(クライアント端末)である。ユーザ端末10は、ユーザ認証を行なうための生体情報取得部11、認証モジュール12を備える。生体情報取得部11は、利用者の生体情報(例えば、指紋等)を読み取り、その特徴量(生体識別情報)を算出するデバイスである。認証モジュール12は、ユーザ認証のためのデータを生成する。このユーザ認証には、FIDO(登録商標)を用いる。このため、ユーザ端末10に、生体情報取得部11で読み取った本人の生体識別情報を登録しておく。そして、認証時には、認証モジュール12が、登録されている生体識別情報を用いて照合を行なう。照合を完了した場合、認証モジュール12は、ユーザ秘密鍵を使って、暗号化した認証用シリアルデータ(生体認証データとしてのFIDO用トークン)を生成し、認証サーバ40に送信する。
【0015】
中継サーバ20は、金融機関が提供する金融サービス(第1のサービス)を利用して新たなサービス(第2のサービス)を提供するサービスプロバイダのサーバコンピュータである。サービスプロバイダとしては、例えば、インターネットを介して金融サービスを提供する企業(所謂フィンテック企業)等がある。この中継サーバ20は、銀行サーバ50の金融サービスを利用するためのアクセストークン記憶部22を備える。このアクセストークン記憶部22には、ユーザIDに関連付けられ、ユーザが利用する銀行サーバ50の金融サービスについてのアクセストークンが記録される。
【0016】
APIゲートウェイ30は、API(Application Programming Interface)を管理するゲートウェイサーバ(認可サーバ)である。このAPIゲートウェイ30は、金融サービスAPI31及びオートログインAPI32を備える。金融サービスAPI31は、銀行の顧客に対して各種サービス(例えば、残高照会)を提供する。オートログインAPI32は、金融サービスAPI31が用意されていないサービス(API未対応サービス)について、銀行サーバ50との間でログイン状態のセッションを生成する。このセッションを用いて、API未対応サービスにおける情報を提供する。
【0017】
認証サーバ40は、ユーザ認証(ここでは、FIDO(登録商標))を実行するサーバコンピュータである。認証サーバ40では、ユーザ端末10から受信した認証用シリアルデータを、ユーザ公開鍵を使って検証し、検証の結果が正しければユーザ認証を完了する。このため、認証サーバ40は、ユーザIDに関連付けて、認証用シリアルデータを記録する認証情報記憶部42を備える。
【0018】
銀行サーバ50は、顧客に対して金融サービスを提供する銀行のサーバコンピュータ(サービス提供サーバ)である。この銀行サーバ50は、顧客に対して金融サービスを提供するための内部APIを備える。銀行サーバ50は、銀行の顧客に関する情報を記憶した顧客情報記憶部52を備える。この顧客情報記憶部52には、各顧客を特定するためのユーザID、この顧客を認証するためのパスワードが記録されている。
【0019】
図2を用いて、ユーザ端末10〜銀行サーバ50を構成する情報処理装置H10のハードウェア構成を説明する。情報処理装置H10は、通信インタフェースH11、入力装置H12、表示装置H13、記憶部H14、プロセッサH15を備える。なお、このハードウェア構成は一例であり、他のハードウェアにより実現することも可能である。
【0020】
通信インタフェースH11は、他の装置との間で通信経路を確立して、データの送受信を実行するインタフェースであり、例えばネットワークインタフェースカードや無線インタフェース等である。
【0021】
入力装置H12は、利用者等からの入力を受け付ける装置であり、例えばマウスやキーボード等である。表示装置H13は、各種情報を表示するディスプレイ等である。
【0022】
記憶部H14は、ユーザ端末10〜銀行サーバ50の各種機能を実行するためのデータや各種プログラムを格納する記憶装置である。記憶部H14の一例としては、ROM、RAM、ハードディスク等がある。
【0023】
プロセッサH15は、記憶部H14に記憶されるプログラムやデータを用いて、ユーザ端末10〜銀行サーバ50における各処理を制御する。プロセッサH15の一例としては、例えばCPUやMPU等がある。このプロセッサH15は、ROM等に記憶されるプログラムをRAMに展開して、各サービスのための各種プロセスを実行する。
【0024】
(認証情報の登録処理)
まず、
図3を用いて、認証情報の登録処理を説明する。ここでは、サービスプロバイダのサービスを利用するために生体識別情報を登録する。
【0025】
ユーザ端末10は、ID/PW入力処理を実行する(ステップS1−1)。具体的には、サービスプロバイダのサービス利用を希望する顧客(ユーザ)は、ユーザ端末10を用いて、中継サーバ20にアクセスする。この場合、中継サーバ20は、ユーザ端末10のディスプレイに利用登録画面を出力する。この利用登録画面には、利用希望のサービスコードの選択欄、ユーザID、パスワードの入力欄が設けられている。この場合、利用登録画面において、利用希望のサービスコードを選択し、ユーザID、パスワードを入力する。そして、利用登録画面の送信ボタンが選択された場合、ユーザ端末10は、利用登録画面に設定されたサービスコード、ユーザID、パスワードを中継サーバ20に送信する。
【0026】
次に、中継サーバ20は、中継処理を実行する(ステップS1−2)。具体的には、中継サーバ20は、サービスコードに対応して利用するAPIのAPIコードを特定する。そして、中継サーバ20は、アクセストークン発行要求を、APIゲートウェイ30に送信する。このアクセストークン発行要求には、APIコード、ユーザ端末10から取得したユーザID、パスワードに関するデータを含める。
【0027】
次に、APIゲートウェイ30は、中継処理を実行する(ステップS1−3)。具体的には、APIゲートウェイ30は、中継サーバ20から取得したアクセストークン発行要求を、銀行サーバ50に転送する。
【0028】
次に、銀行サーバ50は、ID/PW認証処理を実行する(ステップS1−4)。具体的には、銀行サーバ50は、APIゲートウェイ30から取得したアクセストークン発行要求のユーザID、パスワードが顧客情報記憶部52に記録されているかどうかを確認する。ユーザID、パスワードが顧客情報記憶部52に記録されていない場合には、サービス提供を拒否する。また、ユーザID、パスワードが顧客情報記憶部52に記録されている場合には、本人認証を完了する。
【0029】
本人認証を完了した銀行サーバ50は、アクセストークンの発行指示処理を実行する(ステップS1−5)。具体的には、銀行サーバ50は、APIゲートウェイ30に対して、アクセストークンの発行指示を送信する。この発行指示には、APIコード、ユーザIDに関するデータを含める。
【0030】
次に、APIゲートウェイ30は、アクセストークンの発行処理を実行する(ステップS1−6)。具体的には、APIゲートウェイ30は、発行指示を受けたユーザID、APIコード(利用可能APIコード)についてのアクセストークンを発行する。そして、APIゲートウェイ30は、ユーザID、アクセストークンを中継サーバ20に送信する。
【0031】
次に、中継サーバ20は、アクセストークンの保持処理を実行する(ステップS1−7)。具体的には、中継サーバ20は、APIゲートウェイ30から受信したユーザID、アクセストークンをアクセストークン記憶部22に記録する。そして、中継サーバ20は、ユーザ端末10にアクセストークン発行通知を送信する。
【0032】
アクセストークン発行通知を受信したユーザ端末10は、生体情報の取得処理を実行する(ステップS1−8)。具体的には、ユーザ端末10は、生体情報取得部11を用いて、生体情報の読み取りを指示するメッセージを、ディスプレイに出力する。ユーザは、生体情報取得部11において、本人の生体情報の読み取り操作を行なう。
【0033】
次に、ユーザ端末10は、シリアルデータの生成処理を実行する(ステップS1−9)。具体的には、ユーザ端末10の認証モジュール12は、生体情報取得部11において読み取った生体情報を用いて、認証用シリアルデータを生成する。なお、認証用シリアルデータを生成するための情報は、生体情報に限定されるものではない。例えば、ユーザ端末10をユニークに特定できる端末固有情報を用いて、認証用シリアルデータを生成してもよい。
【0034】
次に、ユーザ端末10は、シリアルデータ、IDの送信処理を実行する(ステップS1−10)。具体的には、ユーザ端末10は、認証用シリアルデータ、ユーザIDを中継サーバ20に送信する。
【0035】
次に、中継サーバ20は、アクセストークンの登録確認処理を実行する(ステップS1−11)。具体的には、中継サーバ20は、ユーザ端末10から取得したユーザIDが、アクセストークン記憶部22に記録されていることを確認する。ユーザ端末10から取得したユーザIDが、アクセストークン記憶部22に記録されていない場合には、中継サーバ20は、サービス提供を拒否する。
【0036】
一方、ユーザ端末10から取得したユーザIDが、アクセストークン記憶部22に記録されている場合、中継サーバ20は、シリアルデータ、IDの転送処理を実行する(ステップS1−12)。具体的には、中継サーバ20は、生体情報登録要求をAPIゲートウェイ30に送信する。この生体情報登録要求には、認証用シリアルデータ、ユーザIDに関するデータを含める。
【0037】
次に、APIゲートウェイ30は、シリアルデータ、IDの転送処理を実行する(ステップS1−13)。具体的には、APIゲートウェイ30は、中継サーバ20から取得した生体情報登録要求を認証サーバ40に転送する。
【0038】
次に、認証サーバ40は、シリアルデータ、IDの登録処理を実行する(ステップS1−14)。具体的には、認証サーバ40は、生体情報登録要求に含まれる認証用シリアルデータを、ユーザIDに関連付けて認証情報記憶部42に記録する。
【0039】
(サービスの利用処理)
次に、
図4を用いて、サービスの利用処理を説明する。
ここでは、ユーザ端末10は、生体情報の読取処理を実行する(ステップS2−1)。具体的には、ユーザがサービスプロバイダのサービスを利用する場合、ユーザ端末10を用いて、中継サーバ20にアクセスする。この場合、中継サーバ20は、ユーザ端末10のディスプレイに認証画面を出力する。この認証画面には、ユーザIDの入力、生体情報の読み取りを指示するメッセージが含まれる。ユーザは、ユーザIDを入力し、生体情報取得部11において、生体情報の読み取り操作を行なう。
【0040】
次に、ユーザ端末10は、シリアルデータ、IDの送信処理を実行する(ステップS2−2)。具体的には、ユーザ端末10は、読み取った生体情報の生体識別情報を用いて、認証用シリアルデータを生成する。そして、ユーザ端末10は、サービス利用要求を中継サーバ20に送信する。このサービス利用要求には、認証用シリアルデータ、ユーザIDに関するデータを含める。
【0041】
次に、中継サーバ20は、アクセストークンの確認処理を実行する(ステップS2−3)。具体的には、中継サーバ20は、ユーザ端末10から取得したユーザIDが、アクセストークン記憶部22に記録されていることを確認する。ユーザ端末10から取得したユーザIDが、アクセストークン記憶部22に記録されていない場合には、中継サーバ20は、サービス提供を拒否する。
【0042】
ユーザ端末10から取得したユーザIDが、アクセストークン記憶部22に記録されている場合、中継サーバ20は、シリアルデータ、IDの転送処理を実行する(ステップS2−4)。具体的には、中継サーバ20は、生体認証要求をAPIゲートウェイ30に送信する。この生体認証要求には、認証用シリアルデータ、ユーザIDに関するデータを含める。
【0043】
次に、APIゲートウェイ30は、シリアルデータ、IDの転送処理を実行する(ステップS2−5)。具体的には、APIゲートウェイ30は、中継サーバ20から取得した生体認証要求を認証サーバ40に転送する。
【0044】
次に、認証サーバ40は、シリアルデータ、IDの認証処理を実行する(ステップS2−6)。具体的には、認証サーバ40は、認証情報記憶部42を用いて、ユーザIDに関連付けられた認証用シリアルデータを確認する。認証サーバ40は、認証結果を中継サーバ20に返信する。認証情報記憶部42において、ユーザIDに関連付けられた認証用シリアルデータが登録されていない場合には、認証結果に認証不可フラグを含める。一方、認証情報記憶部42において、ユーザIDに関連付けられた認証用シリアルデータが登録されている場合には、認証結果に認証完了フラグを含める。
【0045】
次に、中継サーバ20は、オートログインAPI呼出処理を実行する(ステップS2−7)。具体的には、中継サーバ20は、認証サーバ40から取得した認証結果に認証不可フラグが含まれている場合には、サービス提供を拒否する。一方、認証結果に認証完了フラグが含まれている場合には、中継サーバ20は、オートログインAPIの利用要求を、APIゲートウェイ30に送信する。この利用要求には、ユーザIDに関するデータを含める。
【0046】
次に、APIゲートウェイ30は、アクセストークンの確認処理を実行する(ステップS2−8)。具体的には、APIゲートウェイ30は、利用要求に応じて、オートログインAPIを呼び出す。このオートログインAPIは、オートログイン要求に含まれるユーザIDに関連付けられたアクセストークンを確認する。
【0047】
次に、APIゲートウェイ30は、ID送信処理を実行する(ステップS2−9)。具体的には、APIゲートウェイ30は、オートログイン要求を銀行サーバ50に送信する。このオートログイン要求には、ユーザIDに関するデータを含める。
【0048】
次に、銀行サーバ50は、IDに基づいた認証処理を実行する(ステップS2−10)。具体的には、銀行サーバ50の内部APIは、顧客情報記憶部52に、ユーザIDが登録されているかどうかを確認する。
【0049】
次に、銀行サーバ50は、他の認証処理のスキップ処理を実行する(ステップS2−11)。具体的には、銀行サーバ50は、顧客情報記憶部52に、ユーザIDが登録されていることを確認した場合、パスワード等を用いた他の認証は省略し、ユーザID及びパスワードを用いた認証処理に準じたログインを許可する。
【0050】
次に、銀行サーバ50は、トップ画面URLの返信処理を実行する(ステップS2−12)。具体的には、銀行サーバ50は、トップ画面のURL(トップ画面URL)を中継サーバ20に返信する。このトップ画面には、ユーザID及びパスワードを用いてログインしたときに出力されるログインメニューの各要素が含まれる。
【0051】
次に、中継サーバ20は、トップ画面URLの取得処理を実行する(ステップS2−13)。具体的には、中継サーバ20は、トップ画面URLを取得する。この場合、中継サーバ20は、銀行サーバ50との間で、本人認証済みのセッションを維持する。
次に、中継サーバ20は、トップ画面の要求処理を実行する(ステップS2−14)。具体的には、中継サーバ20は、取得したトップ画面URLを用いて、トップ画面(ログイン画面)を要求する。
次に、銀行サーバ50は、トップ画面の送信処理を実行する(ステップS2−15)。具体的には、銀行サーバ50は、トップ画面URLに対応したトップ画面を中継サーバ20に送信する。
【0052】
次に、中継サーバ20は、スクレイプ処理を実行する(ステップS2−16)。具体的には、中継サーバ20は、トップ画面URLを用いてトップ画面を解析し、トップ画面に含まれる要素を抽出する。
次に、中継サーバ20は、サービス画面の要求処理を実行する(ステップS2−17)。具体的には、中継サーバ20は、抽出した要素に基づいて、サービス画面を取得するためのURLを特定する。そして、中継サーバ20は、特定したURLを用いて、銀行サーバ50にサービス画面を要求する。
【0053】
次に、銀行サーバ50は、サービス画面の返信処理を実行する(ステップS2−18)。具体的には、銀行サーバ50は、画面要求を受けたサービス画面を、中継サーバ20に返信する。
次に、中継サーバ20は、スクレイプ処理を実行する(ステップS2−19)。具体的には、中継サーバ20は、取得したサービス画面を解析し、サービス画面に含まれる要素を抽出する。そして、中継サーバ20は、抽出した要素を用いて、ユーザ提供画面を構築し、ユーザ端末10に送信する。
次に、ユーザ端末10は、画面表示処理を実行する(ステップS2−20)。具体的には、ユーザ端末10は、ユーザ提供画面を出力する。
【0054】
以上、本実施形態によれば、以下のような効果を得ることができる。
(1)本実施形態によれば、銀行サーバ50におけるID/PW認証処理(ステップS1−4)を完了した場合、APIゲートウェイ30は、アクセストークンの発行処理を実行する(ステップS1−6)。中継サーバ20は、アクセストークンを保持し(ステップS1−7)、ユーザ端末10からシリアルデータ、IDを取得し、認証サーバ40において、シリアルデータ、IDを登録する。これにより、OAuthで利用されているアクセストークンと、生体認証で利用されるシリアルデータとを関連付けることができる。
【0055】
(2)本実施形態によれば、ユーザ端末10からシリアルデータ、IDを取得した中継サーバ20は、アクセストークンの確認処理(ステップS2−3)、シリアルデータ、IDの転送処理(ステップS2−4)を実行する。認証サーバ40は、APIゲートウェイ30から転送されたシリアルデータ、IDの認証処理を実行する(ステップS2−6)。これにより、アクセストークンを有するユーザについて、生体認証を行なうことができる。
【0056】
(3)本実施形態によれば、中継サーバ20は、オートログインAPI呼出処理を実行する(ステップS2−7)。APIゲートウェイ30は、アクセストークンの確認処理(ステップS2−8)、ID送信処理(ステップS2−9)を実行する。銀行サーバ50は、IDに基づいた認証処理(ステップS2−10)、トップ画面URLの返信処理(ステップS2−12)を実行する。中継サーバ20は、トップ画面URLの取得処理を実行する(ステップS2−13)。これにより、オートログインAPIにより、銀行サーバ50においてログイン状態のセッションを生成することができる。そして、中継サーバ20は、このトップ画面を用いたスクレイプ処理(ステップS2−16)により、サービス画面を取得し、このサービス画面を用いたスクレイプ処理(ステップS2−19)により、ユーザ端末10に、ユーザ提供画面を出力する。従って、API未対応サービスについて、ログインメニューから任意の要素にアクセスできる。
【0057】
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記実施形態では、生体認証はFIDO(登録商標)認証に限定されるものではない。また、銀行サーバ50の金融サービスを中継サーバ20が、ユーザの代理で利用する場合の認証は、OAuthに限定されるものではない。
【0058】
・上記実施形態では、銀行サーバ50における金融サービスの利用に適用したが、適用対象は金融サービスに限定されるものではなく、各種サービスに適用することができる。具体的には、ユーザ情報を管理するサーバ(第1のサーバ)でユーザ認証を行なった認証結果を用いて、連携する他のサーバ(第2のサーバ)が提供する各種サービスを利用する場合に用いることができる。
【0059】
・上記実施形態では、銀行サーバ50は、ID/PW認証処理を実行する(ステップS1−4)。ユーザが利用するサービスを提供するシステムにおける認証方法は、ID/PWに限定されるものではない。例えば、ここで、FIDO(登録商標)等の生体認証を用いることも可能である。
【0060】
・上記実施形態では、ユーザ端末10は、ID/PW入力処理を実行する(ステップS1−1)。そして、中継サーバ20、APIゲートウェイ30は、中継処理(ステップS1−2,S1−3)を実行し、銀行サーバ50は、ID/PW認証処理を実行する(ステップS1−4)。銀行サーバ50が、ユーザID、パスワードを取得する方法は、これに限定されるものではない。例えば、中継サーバ20にアクセスしたユーザ端末10からのリダイレクトにより、銀行サーバ50が、ユーザ端末10からユーザID、パスワードを直接的に取得するようにしてもよい。この場合、リダイレクト時に、中継サーバ20を特定するための情報を含める。そして、銀行サーバ50は、ユーザ端末10から取得したユーザID、パスワードの認証結果に基づいて、中継サーバ20に対するアクセストークンの発行指示処理を実行する(ステップS1−5)。