(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6785526
(24)【登録日】2020年10月29日
(45)【発行日】2020年11月18日
(54)【発明の名称】ネットワークサービス連携方法、クライアントサービスプラットフォーム、クライアントインスタンス生成サーバ及びプログラム
(51)【国際特許分類】
H04L 12/66 20060101AFI20201109BHJP
H04L 12/70 20130101ALI20201109BHJP
G06F 21/33 20130101ALI20201109BHJP
【FI】
H04L12/66 B
H04L12/70 100Z
G06F21/33
【請求項の数】4
【全頁数】12
(21)【出願番号】特願2017-179958(P2017-179958)
(22)【出願日】2017年9月20日
(65)【公開番号】特開2019-57778(P2019-57778A)
(43)【公開日】2019年4月11日
【審査請求日】2019年8月28日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100119677
【弁理士】
【氏名又は名称】岡田 賢治
(74)【代理人】
【識別番号】100115794
【弁理士】
【氏名又は名称】今下 勝博
(72)【発明者】
【氏名】川幡 太一
(72)【発明者】
【氏名】坂井田 規夫
(72)【発明者】
【氏名】谷口 篤
(72)【発明者】
【氏名】南 勇貴
【審査官】
野元 久道
(56)【参考文献】
【文献】
津田 宏 外3名,研究開発最前線,FUJITSU,富士通株式会社,2011年 9月29日,第62巻 第5号,p.531-537
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/66
G06F 21/33
H04L 12/70
(57)【特許請求の範囲】
【請求項1】
ユーザ端末毎に所望のサービスを提供するリソースサーバのオープンAPIを利用可能なクライアントをインスタンスとして生成するクライアントインスタンス生成サーバと、前記ユーザ端末から前記クライアントへのアクセスを介するクライアントゲートウェーと、前記クライアントから前記リソースサーバへのアクセスを介するサービスゲートウェーと、を備えたクライアントサービスプラットフォームにおけるネットワークサービス連携方法であって、
前記クライアントインスタンス生成サーバが、
前記クライアントの生成とともに、前記クライアントへの前記クライアントゲートウェー以外からのアクセス、および前記クライアントから前記サービスゲートウェー以外へのアクセスを遮断するファイアウォール機能を生成し、
前記ファイアウォール機能は、
前記クライアントの有効性を確認するアクセストークンを前記リソースサーバ側から前記クライアントゲートウェーに取得させ、前記ユーザ端末から前記クライアントゲートウェー及び前記クライアントを経由して前記サービスゲートウェーへ転送されるアクセスに前記アクセストークンを付加するとともに、
前記ユーザ端末の識別情報、前記リソースサーバのアドレス及び前記クライアントのアドレスを前記クライアントゲートウェーから前記サービスゲートウェーへ通知させ、前記サービスゲートウェーにて前記クライアントから前記サービスゲートウェーへ転送される前記アクセスの送信元と送信先を確認する
ことを特徴とするネットワークサービス連携方法。
【請求項2】
ユーザ端末毎に所望のサービスを提供するリソースサーバのオープンAPIを利用可能なクライアントをインスタンスとして生成するクライアントインスタンス生成サーバと、
前記ユーザ端末から前記クライアントへのアクセスを介するクライアントゲートウェーと、
前記クライアントから前記リソースサーバへのアクセスを介するサービスゲートウェーと、
を備えたクライアントサービスプラットフォームであって、
前記クライアントインスタンス生成サーバは、
前記クライアントの生成とともに、前記クライアントへの前記クライアントゲートウェー以外からのアクセス、および前記クライアントから前記サービスゲートウェー以外へのアクセスを遮断するファイアウォール機能を生成し、
前記ファイアウォール機能は、
前記クライアントの有効性を確認するアクセストークンを前記リソースサーバ側から前記クライアントゲートウェーに取得させ、前記ユーザ端末から前記クライアントゲートウェー及び前記クライアントを経由して前記サービスゲートウェーへ転送されるアクセスに前記アクセストークンを付加するとともに、
前記ユーザ端末の識別情報、前記リソースサーバのアドレス及び前記クライアントのアドレスを前記クライアントゲートウェーから前記サービスゲートウェーへ通知させ、前記サービスゲートウェーにて前記クライアントから前記サービスゲートウェーへ転送される前記アクセスの送信元と送信先を確認する
ことを特徴とするクライアントサービスプラットフォーム。
【請求項3】
ユーザ端末毎に所望のサービスを提供するリソースサーバのオープンAPIを利用可能なクライアントをインスタンスとして、前記ユーザ端末から前記クライアントへのアクセスを介するクライアントゲートウェーと、前記クライアントから前記リソースサーバへのアクセスを介するサービスゲートウェーと、を備えたクライアントサービスプラットフォームに生成するクライアントインスタンス生成サーバであって、
前記クライアントの生成とともに、前記クライアントへの前記クライアントゲートウェー以外からのアクセス、および前記クライアントから前記サービスゲートウェー以外へのアクセスを遮断するファイアウォール機能を生成し、
前記ファイアウォール機能は、
前記クライアントの有効性を確認するアクセストークンを前記リソースサーバ側から前記クライアントゲートウェーに取得させ、前記ユーザ端末から前記クライアントゲートウェー及び前記クライアントを経由して前記サービスゲートウェーへ転送されるアクセスに前記アクセストークンを付加するとともに、
前記ユーザ端末の識別情報、前記リソースサーバのアドレス及び前記クライアントのアドレスを前記クライアントゲートウェーから前記サービスゲートウェーへ通知させ、前記サービスゲートウェーにて前記クライアントから前記サービスゲートウェーへ転送される前記アクセスの送信元と送信先を確認する
ことを特徴とするクライアントインスタンス生成サーバ。
【請求項4】
コンピュータを請求項3に記載のクライアントインスタンス生成サーバとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、複数の異なる事業者が運営するサービスを連携し、ユーザに提供するネットワークサービス連携方法、クライアントサービスプラットフォーム、クライアントインスタンス生成サーバ及びプログラムに関する。
【背景技術】
【0002】
現在、多くのB2B2C(Business to Business to Consumer)サービスは、Oauth等の認可技術(例えば、非特許文献2を参照。)を用いてユーザの権限の一部を委譲している。この方法では、権限の委譲先のサービスの信頼性は、HTTPSによるリダイレクトにおけるURLと証明書による信用に基づいている。
【0003】
なお、背景には次のような技術がある。
1.オープンAPI・APIエコノミー
サービス提供にあたり、複数の他サービスを利用し、組み合わせる(連携させる)ことで、効率的なサービス構築を実現させる。そのために、サービスAPIをオープンにし、他者による利用を促進させる技術である。
2.マイクロサービス
サービスを構築する際に、一枚岩のプログラムで作るのではなく、機能毎に細かく分割し、ネットワークでそれらをつなげることで、サービスの部品単位のスケーラビリティと可用性を高める技術である。
3.OAuth2(非特許文献1)
自サービスを他サービスに利用させるためにAPIを整備する際、自サービスが持つ個人のID・パスワードを他サービスに知らせないようにするために、他サービスへの利用認可は自サービスで行い、他サービスには「トークン」を発行し、APIアクセスの際にそのトークンも附帯させる技術である。本技術の前は、「スクレイピング」による情報取得が一般であり、ID・パスワードの漏洩の危険性があった。
4.FaaS(Function as a Service)
サービス連携にあたり、使用するクラウドの資源を極小化するために、ユーザがサービスを利用するときのみ動的に資源を確保し、それ以外は資源を開放する。利用者がいないときは資源を確保しないため、全体としての資源利用効率は他のXaaS(IaaS/PaaS)サービスより良い。
5.コンテナ技術
オペレーティング・システムが管理する計算機の諸資源を、OSの名前空間で分離し、分離された資源間の通信には仮想的なネットワークのみを用いることで、低コストで仮想化環境を実現する技術である。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】RFC6749
【発明の概要】
【発明が解決しようとする課題】
【0005】
現在の認可技術の手法には2つの問題点がある。
1つ目は、クライアント(ユーザの一部権限の委譲先のサービス)は技術的には、通過するデータを自分の自由に利用することができ、悪意があれば利用者の情報を第三者に漏洩させることができる点である。
2つ目は、権限の委譲元のサービス(リソースサーバ)は委譲先のサービス(クライアント)をURL等で個別に管理しなければならず、オープンAPIであるにも関わらず接続先を限定したり、管理したりしなければならず、自由な接続が実現できない点である。
【0006】
従来のB2B2Cのフレームワークにおいて、中間のBが、処理中に得られた情報を外部に漏洩することを防ぐ手段は一般には存在しない。このため、金融のようなプライバシーの高い情報を扱うサービスにおいて、オープンAPIによるクライアント間の自由競争を阻害していた。また、現状では複数の銀行の口座情報を見るためには、サービスはユーザのIDやパスワードを預かり、代理ログインしてスクレイピングしなければならず、パスワードの漏洩のリスクがあった。
【0007】
つまり、従来技術には次のような課題があった。
日常生活で扱われる様々なデータや機器を利用するAPI(Application Programming Interface)が共通化ないしオープン化され、ユーザがAPIをアクセスする第三者サービス(クライアント)を経由してサービスを利用することが望まれている。そのためには、ユーザが第三者サービスに自分の利用するサービスにおける権限の一部を委譲する必要がある。しかし、悪意ある第三者サービスが、委譲された権限を悪用してユーザの個人情報を外部に流出させる可能性があり、これを防ぐような技術的な対処方法は、現在存在していない。
【0008】
なお、OAuth2では、中間アプリケーションの信頼性を確認する手段として第三者サービスへのHTTPSリダイレクト先URLに対して、発行される信頼ある認証機関の証明書で確認することを想定しているが、これは社会的な契約による制約であり、技術的な情報漏えい防止の担保はとられていない。
【0009】
そこで、本発明は、上記課題を解決するために、ユーザがAPIをアクセスする第三者サービスに対して技術的な情報漏えい防止ができるネットワークサービス連携方法、クライアントサービスプラットフォーム、クライアントインスタンス生成サーバ及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明は、あるサービスがユーザの個人情報を持ち、他サービスに自サービスを利用させるAPIを提供している状況において、自サービスが持つ利用者の個人情報を他サービスが利用する際、他サービスが外部に自サービスの情報を漏洩させないよう、自サービスと他サービスを接続する閉じたネットワークを動的に生成することとした。
【0011】
具体的には、本発明に係るネットワークサービス連携方法は、
ユーザ端末毎に所望のサービスを提供するリソースサーバのオープンAPIを利用可能なクライアントをインスタンスとして、
前記ユーザ端末から前記クライアントインスタンスへのアクセスを介するクライアントゲートウェーと、前記クライアントインスタンスから前記リソースサーバへのアクセスを介するサービスゲートウェーと、を備えたクライアントサービスプラットフォームに生成するネットワークサービス連携方法であって、
前記クライアントインスタンスの生成とともに、前記クライアントインスタンスへの前記クライアントゲートウェー以外からのアクセス、および前記クライアントインスタンスから前記サービスゲートウェー以外へのアクセスを遮断するファイアウォール機能を生成する
ことを特徴とする。
【0012】
また、本発明に係るクライアントサービスプラットフォームは、
ユーザ端末毎に所望のサービスを提供するリソースサーバのオープンAPIを利用可能なクライアントをインスタンスとして生成するクライアントインスタンス生成サーバと、
前記ユーザ端末から前記クライアントインスタンスへのアクセスを介するクライアントゲートウェーと、
前記クライアントインスタンスから前記リソースサーバへのアクセスを介するサービスゲートウェーと、
を備えたクライアントサービスプラットフォームであって、
前記クライアントインスタンス生成サーバは、前記クライアントインスタンスの生成とともに、前記クライアントインスタンスへの前記クライアントゲートウェー以外からのアクセス、および前記クライアントインスタンスから前記サービスゲートウェー以外へのアクセスを遮断するファイアウォール機能を生成することを特徴とする。
【0013】
さらに、本発明に係るクライアントインスタンス生成サーバは、
ユーザ端末毎に所望のサービスを提供するリソースサーバのオープンAPIを利用可能なクライアントをインスタンスとして、
前記ユーザ端末から前記クライアントインスタンスへのアクセスを介するクライアントゲートウェーと、前記クライアントインスタンスから前記リソースサーバへのアクセスを介するサービスゲートウェーと、を備えたクライアントサービスプラットフォームに生成するクライアントインスタンス生成サーバであって、
前記クライアントインスタンスの生成とともに、前記クライアントインスタンスへの前記クライアントゲートウェー以外からのアクセス、および前記クライアントインスタンスから前記サービスゲートウェー以外へのアクセスを遮断するファイアウォール機能を生成することを特徴とする。
【0014】
本発明は、サービス連携における被利用側が持つ利用者情報の保護を、FaaS(Function as a Service)の技術および最新のコンテナ技術をベースに、Oauth2(RFC 6749)の仕組みから進化させたものである。
【0015】
前述したように、「他サービスに自サービスを利用してもらいたいが、自サービスの利用者のIDやパスワードを他サービスには知られたくない」場合の認可技術として、Oauth2規格がある。しかし、Oauth2では、「他サービスに自サービスを利用してもらう際に、自サービスの顧客データが他サービス経由で外部に流出されるのを防ぐ」ことは想定されていない。それは、他サービスのサーバが、他サービス提供者の管理下にあるためである。
【0016】
近年、クラウド技術の発展・エッジ技術の発展により、サービスの配置に自由度が増し、その究極の形として、サービスが必要な時だけ機能が活性化される FaaS(Function as a Service)が注目されている。
【0017】
そこで、本発明は、オープンAPIを利用する他サービスをFaaS化したものに限定し、特定プラットフォーム下に配置、他サービスを利用する自サービスのエンドユーザ毎に、他サービスのインスタンスを動的に生成し、情報を保護する仮想ネットワークを動的に構築ないし配置することで、上記の課題を解決する。
【0018】
具体的には、クライアント・インスタンスを生成する際、その「クライアント・インスタンス」への「クライアント・ゲートウェー」以外からのアクセス、および「クライアント・インスタンス」から「サービス・ゲートウェー」および「クライアント用リソース・データベース」以外へのアクセスの通信を遮断するファイアウォールをインスタンスに設けている。
【0019】
従って、本発明は、ユーザがAPIをアクセスする第三者サービスに対して技術的な情報漏えい防止ができるネットワークサービス連携方法、クライアントサービスプラットフォーム、及びクライアントインスタンス生成サーバを提供することができる。
【0020】
詳細な動作は次の通りである。
前記ファイアウォール機能は、
前記クライアントインスタンスの有効性を確認するアクセストークンを前記リソースサーバ側から前記クライアントゲートウェーに取得させ、前記ユーザ端末から前記クライアントゲートウェー及び前記クライアントインスタンスを経由して前記サービスゲートウェーへ転送されるアクセスに前記アクセストークンを付加するとともに、
前記ユーザ端末の識別情報、前記リソースサーバのアドレス及び前記クライアントインスタンスのアドレスを前記クライアントゲートウェーから前記サービスゲートウェーへ通知させ、前記サービスゲートウェーにて前記クライアントインスタンスから前記サービスゲートウェーへ転送される前記アクセスの送信元と送信先を確認する
ことを特徴とする。
【0021】
また、本発明に係るプログラムは、コンピュータを前記クライアントインスタンス生成サーバとして機能させるためのプログラムである。本発明に係るクライアントインスタンス生成サーバは、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【発明の効果】
【0022】
本発明は、ユーザがAPIをアクセスする第三者サービスに対して技術的な情報漏えい防止ができるネットワークサービス連携方法、クライアントサービスプラットフォーム、クライアントインスタンス生成サーバ及びプログラムを提供することができる。
【図面の簡単な説明】
【0023】
【
図1】本発明に係るネットワークサービス連携方法を説明する図である。
【発明を実施するための形態】
【0024】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【0025】
[概要]
本実施形態の「エンティティ」「クライアント」「認可コード」「アクセストークン」「リソースサーバ」「認可サーバ」などの用語は、OAuth2(非特許文献1)での用法を用いる。
【0026】
本実施形態は、「リソースサーバ」のオープンAPIを用いる「クライアント」が、「エンティティ」が意図していない第三者にネットワーク的に接続することを防ぐ技術である。
【0027】
本実施形態は、OAuthの「認可」の仕組みをFaaSの技術で発展させ、仮想ネットワーク技術を取り入れることにより、従来は困難とされていた「クライアント」自身が「リソースサーバ」の情報を使いつつも、それを「クライアント」が第三者に漏洩させることを防ぐものである。
【0028】
本実施形態は、サービスの認可サーバへのユーザの認証とクライアントからのアクセスの認可に伴い発行される「認可コード」を、エンティティがクライアントへアクセスする際に認可サーバと照合し、アクセストークンの発行を受ける。それによってOSの制御グループ技術を使って動的に接続先を制限する。また、パスワードや金銭の振込先のような、クライアントに秘匿したい情報は事前にサーバにクライアントとは別の方法でアクセスする。なお、本技術は認証を対象としない。また、携帯端末の専用アプリや、Java(登録商標)Sciprtで書かれたWebアプリケーションのように、ユーザ側で改造可能なクライアントも対象としない。
【0029】
本実施形態は、Webブラウザで接続され、ユーザ側にサービスのパスワード等の重要な情報を置かないシステムを想定する(OAuthにおけるAuthentication Flow)。現在、一般のWebブラウザからは、CORS等による特別な許可がないかぎり他サイトへ情報は漏洩されない。
【0030】
本実施形態におけるロール間の全ての通信は、HTTPS(TCP)で行われ、接続先のIPアドレスはURLから一意に決定されることを前提とする。
なお、本実施形態のロールとは次の通りである。
本発明にて、安全な中間サービス(クライアント)を実現するロールは独立した5者である。
(1)エンティティ
利用者の端末。パソコンのWebブラウザや携帯端末を想定する。
(2)クライアントサービスプラットフォーム
安全なクライアントを動作させるためのプラットフォームである。サービス事業者による運営を想定し、次を含む構成である。
・クライアントゲートウェー
・サービスゲートウェー
・クライアントインスタンス生成サーバ
・クライアントインスタンス
・クライアント用リソースデータベース
・クライアント監視モニタ(必須ではない。
図1には記載していない)
(3)サービス
利用者に対する役務を提供する。本実施形態では、利用者はサービスを直接利用するのではなく、クライアントを経由して利用する。サービスは次を含む。
・認可サーバ
・リソースサーバ
(4)クライアント
利用者の代わりにサービスへアクセスする。
(5)証明書発行者
証明書は未発行でも良く、必須ではない。
図1には記載していない。
【0031】
[サービス連携初期設定]
(手順1)クライアント・サービス開発者は、開発したクライアント・ソフトウェアを「クライアント・サービスプラットフォーム」の「クライアントインスタンス生成サーバ」に配置する。
ここで、クライアント開発者は、クライアント・ソフトウェアに、クライアントを利用する者の認証情報・アクセス先サービスのアドレスなどを記憶させても良い。また、配置したクライアント・ソフトウェアは任意に更新しても良い。
また、クライアント開発者は、(第三者が発行する)クライアント証明書をクライアントソフトウェアに付加し、サービスのリソース(リソースサーバ)にアクセスする際にその証明書を用いても良い。
(手順2)配置したクライアントに対し、クライアント・サービスプラットフォームはユニークなURLを発行(払い出し)する。利用者は、このURLへのアクセスを通じてクライアントを利用する。このURLはエンティティ側の端末内のソフトウェアに組み込まれてもよい。
【0032】
[動作詳細]
図1は、本実施形態のネットワークサービス連携方法を説明する図である。本ネットワークサービス連携方法は、
ユーザ端末102毎に所望のサービスを提供するリソースサーバ17のオープンAPIを利用可能なクライアントインスタンス13をインスタンスとして、
ユーザ端末102からクライアントインスタンス13へのアクセスを介するクライアントゲートウェー11と、クライアントインスタンス13からリソースサーバ17へのアクセスを介するサービスゲートウェー12と、を備えたクライアントサービスプラットフォーム301に生成するネットワークサービス連携方法であって、
クライアントインスタンス13の生成とともに、クライアントインスタンス13へのクライアントゲートウェー11以外からのアクセス、およびクライアントインスタンス13から前記サービスゲートウェー12以外へのアクセスを遮断するファイアウォール機能を生成する
ことを特徴とする。
【0033】
前記ファイアウォール機能は、
クライアントインスタンス13の有効性を確認するアクセストークンをサービス101側からクライアントゲートウェー11に取得させ、ユーザ端末102からクライアントゲートウェー11及びクライアントインスタンス13を経由してサービスゲートウェー12へ転送されるアクセスに前記アクセストークンを付加するとともに、
ユーザ端末102の識別情報、リソースサーバ17のアドレス及びクライアントインスタンス13のアドレスをクライアントゲートウェー11からサービスゲートウェー12へ通知させ、サービスゲートウェー12にてクライアントインスタンス13からサービスゲートウェー12へ転送される前記アクセスの送信元と送信先を確認する。
【0034】
クライアントサービスプラットフォーム301は、
ユーザ端末102毎に所望のサービスを提供するリソースサーバ17のオープンAPIを利用可能なクライアントインスタンス13をインスタンスとして生成するクライアントインスタンス生成サーバ14と、
ユーザ端末102からクライアントインスタンス13へのアクセスを介するクライアントゲートウェー11と、
クライアントインスタンス13からリソースサーバ17へのアクセスを介するサービスゲートウェー12と、
を備える。
そして、クライアントインスタンス生成サーバ14は、クライアントインスタンス13の生成とともに、クライアントインスタンス13へのクライアントゲートウェー11以外からのアクセス、およびクライアントインスタンス13からサービスゲートウェー12以外へのアクセスを遮断するファイアウォール機能を生成する。
【0035】
(ステップS01)
「エンティティ(ユーザ端末102)」は、サービス101の「認可サーバ16」にログイン認証し、クライアントインスタンス13がリソースサーバ17を利用する権限の範囲を示し、「認可コード」と「リソースサーバのURL」を取得する。
(ステップS02)
「エンティティ」は、サービス連携初期設定の(手順2)で示されるクライアントインスタンス13のURLにアクセスする。その際、「クライアント・サービスプラットフォーム301」の「クライアント・ゲートウェー11」の認証を受けていないエンティティは、「クライアント・ゲートウェー11」に「ユーザID」でログイン(認証)する。
なお、このステップS01とステップS02は前後しても良い。また、ステップS02のログインの後に、自動的にステップ1の認可サーバへリダイレクトしても良い。
(ステップS03)
「エンティティ」は、「クライアント・ゲートウェー11」に、ステップS01で取得した「認可コード」および「リソースURL」を通知する。
(ステップS04)
「クライアント・ゲートウェー11」は、「認可サーバ16」に対して、「認可コード」を提示して、「アクセストークン」を取得する。ここで、エンティティが直接、アクセストークンを取得しないのは、エンティティの盗難ないし解析等による不正なリソースサーバへのアクセスを防ぐためである。
(ステップS05)
「クライアント・ゲートウェー11」は、「サービス・ゲートウェー12」へ、ユーザ端末102の「ユーザID」や「リソースサーバのアドレス」を通知する。
(ステップS06)
「エンティティ」は、「クライアント・ゲートウェー11」を経由し、クライアントインスタンス13へアクセスする。
(ステップS07)
「クライアント・ゲートウェー11」は、「ユーザID」に基いて、「クライアント・サービスプラットフォーム301」内の当該IDを持つユーザ専用の「クライアントインスタンス13」がインスタンスで形成されているか否かを確認する。「クライアントインスタンス13」が存在しない場合は、「クライアント・インスタンス生成サーバ14」に「クライアントインスタンス13」の生成を指示する。
(ステップS08)
「クライアント・インスンタンス生成サーバ14」は、「ユーザID」固有の「クライアントインスタンス13」をインスタンスで生成し、当該クライアントインスタンス13にアクセスするためのアドレスを「クライアント・ゲートウェー11」に返す。その際、「クライアント・サービスプラットフォーム301」は、ユーザ情報を長期保存するための「クライアント用リソース・データベース15」をユーザID毎に用意し、「クライアント用リソース・データベース15」のみ情報(アクセストークンなど)の保存ないし取得を許容しても良い。
(ステップS09)
「クライアント・ゲートウェー11」は、「サービス・ゲートウェー12」に「クライアントインスタンス13」のアドレスを通知する。
(ステップS10)
「クライアント・ゲートウェー11」は、「エンティティ」からのアクセスに対し、「アクセストークン」をURL等に付加し、「クライアントインスタンス13」へアクセスを転送する。
(ステップS11)
「クライアントインスタンス13」は、サービスの「リソースサーバ17」へアクセスする際、ステップS10で受領した「アクセストークン」を付与する。
(ステップS12)
「クライアントインスタンス13」から「リソースサーバ17」へアクセスするHTTPS通信パケットは、「サービスゲートウェー12」において、その発信元および送信先アドレスがチェックされる。発信元および送信先アドレスがステップS05およびステップS09で通知されたアドレス情報と一致していることを確認する。
(ステップS13)
「サービスゲートウェー12」を通過したパケットは、「リソースサーバ17」にアクセスし、サービスを受ける。「リソースサーバ17」は、アクセストークンで「クライアントインスタンス13」の有効性を確認する。
【0036】
図1で説明した動作は、次の特徴を持つ。
(A)エンティティは、Webブラウザが前提である。Webブラウザには、“Same Origin Policy”と呼ばれる、サーバから取得した情報を外部に漏洩させない機構が標準で装備されている。
(B)エンティティはリソースサーバ17へアクセスするのに必要なアクセストークンを保存しない。そのため、認可コードの有効期間を短くすることで、エンティティ側のブラウザの内部状態を第三者が解析できたとしても、認可コードの有効期間を渡過していればリソースサーバ17へのアクセスはできない。
(C)第三者サービス(クライアントインスタンス13)は、その通信路をクライアントサービスプラットフォーム301が利用するクライアント・ゲートウェー11およびサービス・ゲートウェー12によって、アクセス先をリソースサーバ17に制限されている。クライアントサービスプラットフォーム301は、他にアクセスすることをネットワーク的に防止しているため、クライアントインスタンス13は自分が入手した利用者のプライバシーに関わる情報を、漏洩することはできない。
【0037】
従って、本実施形態で説明したネットワークサービス連携方法は、携帯端末やパソコン等から、ユーザが利用するサービスのオープンAPIを利用する第三者サービス(クライアント)を利用する際、悪意のある第三者サービス(クライアント)がユーザのサービスに関する情報を他に漏洩することを防止できる。
【産業上の利用可能性】
【0038】
本発明に係るネットワークサービス連携方法は、サービスインスタンスの稼動状態を、CPUやDBの利用率としてサービス運営会社に通知するための品質管理サービスを別途用意しても良い。その際、ログ等の情報を経由して情報が漏洩しないよう、第三者が確認できるようにしたり、客観的な性能情報のみをサービス開発者に通知できるように考慮すべきである。
【符号の説明】
【0039】
11:クライアント・ゲートウェー
12:サービス・ゲートウェー
13:クライアントインスタンス
14:クライアント・インスタンス生成サーバ
15:クライアント用リソース・データベース
16:認可サーバ
17:リソースサーバ
101:サービス
102:ユーザ端末(エンティティ)
301:クライアント・サービスプラットフォーム