[go: up one dir, main page]

JP6904183B2 - 情報処理装置、プログラム及び情報処理方法 - Google Patents

情報処理装置、プログラム及び情報処理方法 Download PDF

Info

Publication number
JP6904183B2
JP6904183B2 JP2017174614A JP2017174614A JP6904183B2 JP 6904183 B2 JP6904183 B2 JP 6904183B2 JP 2017174614 A JP2017174614 A JP 2017174614A JP 2017174614 A JP2017174614 A JP 2017174614A JP 6904183 B2 JP6904183 B2 JP 6904183B2
Authority
JP
Japan
Prior art keywords
unit
primary
data
web api
web
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017174614A
Other languages
English (en)
Other versions
JP2019050535A (ja
Inventor
敏達 野田
敏達 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017174614A priority Critical patent/JP6904183B2/ja
Priority to US16/126,276 priority patent/US11050722B2/en
Publication of JP2019050535A publication Critical patent/JP2019050535A/ja
Application granted granted Critical
Publication of JP6904183B2 publication Critical patent/JP6904183B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、ネットワークを介した機能呼び出しにおける秘匿化技術に関する。
ブラウザと連携するWebアプリケーションがWeb API(Application Programming Interface)の機能を利用する形態において、Webアプリケーションに利用される一次のWeb APIが、更に二次のWeb APIの機能を利用すれば、多様なサービスが実現されると考えられる。
このように多段にWeb APIを呼び出す態様において、二次のWeb APIのレスポンスが、秘匿性の高い内容であれば、中間段階における暴露を防ぐことが望ましい。
或る多段呼び出し態様では、一次のWeb APIが二次のWeb APIのレスポンスを用いることなく、二次レスポンスをそのまま一次のWeb APIのレスポンスに含めてWebアプリケーションに送り返すかも知れない。このような場合は、一次のWeb APIで受け取る二次レスポンスが平文である必要はない。
但し、Webアプリケーションは、元来、直接的に二次のWeb APIを呼び出すことを想定していないので、Webアプリケーションが自発的に二次のWeb APIと連携することは難しい。
特開2005−86428号公報 特表2016−531528号公報 特開2012−151843号公報
本発明の目的は、一側面では、一次機能のレスポンスに内包される二次機能のレスポンスを秘匿化することである。
一態様に係る情報処理装置は、第1サーバが提供する一次機能を利用する情報処理装置であって、(A)一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、第1サーバから受信する受信部と、(B)アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、暗号化用の鍵データを第2サーバに送る転送部と、(C)一次機能によるレスポンスに含まれる、二次機能によるレスポンスの少なくとも一部に基づく暗号化データを暗号化用の鍵データに適応した復号用の鍵データを用いて復号する復号部とを有する。
一側面としては、一次機能のレスポンスに内包される二次機能のレスポンスを秘匿化できる。
図1は、ネットワーク構成例を示す図である。 図2は、一次認可及び一次API呼び出しの概要を示す図である。 図3は、一次同意画面の例を示す図である。 図4は、二次認可における課題を示す図である。 図5は、二次認可及び二次API呼び出しの概要を示す図である。 図6は、二次同意画面の例を示す図である。 図7は、アクセストークンと暗号鍵とに関する紐付けの概要を示す図である。 図8Aは、アプリケーション部のモジュール構成例を示す図である。 図8Bは、第1紐付けテーブルの例を示す図である。 図9は、第1機能提供部のモジュール構成例を示す図である。 図10は、一次認可のシーケンス例を示す図である。 図11は、一次認可のシーケンス例を示す図である。 図12は、一次認可のシーケンス例を示す図である。 図13は、一次認可及び一次API呼び出しのシーケンス例を示す図である。 図14Aは、二次認可のシーケンス例を示す図である。 図14Bは、二次認可のシーケンス例を示す図である。 図15は、第2紐付けテーブルの例を示す図である。 図16Aは、第2機能提供部のモジュール構成例を示す図である。 図16Bは、第3紐付けテーブルの例を示す図である。 図17は、二次認可のシーケンス例を示す図である。 図18は、二次認可のシーケンス例を示す図である。 図19Aは、二次認可及び二次API呼び出しのシーケンス例を示す図である。 図19Bは、二次認可及び二次API呼び出しのシーケンス例を示す図である。 図20Aは、二次API呼び出し以降のシーケンス例を示す図である。 図20Bは、二次API呼び出し以降のシーケンス例を示す図である。 図21は、一次API呼び出し及び二次API呼び出しのシーケンス例を示す図である。 図22は、実施の形態2における一次認可のシーケンス例を示す図である。 図23は、実施の形態2における一次認可及び一次API呼び出しのシーケンス例を示す図である。 図24Aは、実施の形態2における二次認可のシーケンス例を示す図である。 図24Bは、実施の形態2における二次認可のシーケンス例を示す図である。 図25は、実施の形態2における二次認可及び二次API呼び出しのシーケンス例を示す図である。 図26は、ネットワーク構成例を示す図である。 図27は、コンピュータの機能ブロック図である。
図1に、ネットワーク構成例を示す。ユーザ端末101は、ブラウザ103を有し、インターネットに接続する機能を有している。Webサーバ105aは、インターネットに接続している。Webサーバ105aは、Webアプリケーション_A107を有する。この例におけるWebアプリケーション_A107は、ブラウザ103からのリクエストに応じてHTML(HyperText Markup Language)ファイルを提供する。尚、Webアプリケーション_A107は、ブラウザ103と連携するアプリケーションプログラムの例である。
Webサーバ105bは、Web API_X109を有する。この例において、Web API_X109は、Webアプリケーション_A107に呼び出され、所定の機能に係るサービスをWebアプリケーション_A107に提供するものとする。Webサーバ105cは、Web API_Y111を有する。この例において、Web API_Y111は、Web API_X109に呼び出され、所定の機能に係るサービスをWeb API_X109に提供するものとする。
図2に、一次認可及び一次API呼び出しの概要を示す。この例で、Webアプリケーション_A107がWeb API_X109を利用するための権限について、ユーザから受ける認可を一次認可という。また、一次認可に基づくWeb API_X109の呼び出しを、一次API呼び出しという。尚、以下では、一次認可に係るエンティティ、プログラム、処理、画面、データ及びパラメータ等について、「一次」の語句を付して、後述する二次認可に係るエンティティ、プログラム、処理、画面、データ及びパラメータ等と区別する。
この例における一次認可の手順は、OAuthに準拠する。OAuthは、権限の認可を行う手順に係るオープンスタンダードである。この例におけるプログラムをOAuthにおけるエンティティに当てはめる。ブラウザ103は、一次認可におけるリソースオーナー(つまり、一次リソースオーナー)である。リソースオーナーは、保護リソースに対するアクセス権限に関するユーザの同意を直接的に受け付ける。Webアプリケーション_A107は、一次認可におけるクライアント(つまり、一次クライアント)である。クライアントは、アクセス権限が与えられた場合に保護リソースを利用する。Web API_X109は、一次認可における許可サーバ(つまり、一次許可サーバ)である。許可サーバは、ユーザの同意を取り付けて、保護リソースにアクセスするためのトークン(アクセストークン)を発行する。Web API_X109は、更に一次認可におけるリソースサーバ(つまり、一次リソースサーバ)である。リソースサーバは、保護リソースを管理する。
最初に、Web API_X109を利用しようとするWebアプリケーション_A107は、一次認可要求をブラウザ103へ送る(S201)。次に、ブラウザ103とWeb API_X109との間における一次認可の手続きを経て(S203)、Web API_X109は一次認可を受け付ける。尚、一次認可の手続きにおいて、ブラウザ103に一次同意画面が表示される。
図3に、一次同意画面の例を示す。「AAA」は、Webアプリケーション_A107の名前である。「XXX」は、Web API_X109の名前である。図3に示したように、一次クライアントが一次リソースサーバを呼び出すことについての同意を確認する内容のコメントが表示される。「認可する」と表示された認可ボタンが選択されると、Webアプリケーション_A107によるWeb API_X109の呼び出しをユーザが認可したことになる。一方、「拒否する」と表示された拒否ボタンが選択されると、Webアプリケーション_A107によるWeb API_X109の呼び出しをユーザが拒否したことになる。
図2の説明に戻る。Web API_X109が一次認可を受け付けると、Web API_X109は一次アクセストークンを発行し、当該一次アクセストークンはWebアプリケーション_A107に引き渡される。本実施の形態では、OAuthにおける認可コードグラント方式によって一次アクセストークンが発行される例について説明する。この例では、Web API_X109からブラウザ103を介してWebアプリケーション_A107へ認可コードを渡した後で(S205a及びS205b)、認可コードに基づいて一次アクセストークンが渡される(S205c)。
一次アクセストークンを得たWebアプリケーション_A107は、一次アクセストークンを伴ってWeb API_X109を呼び出す(S207)。Web API_X109は、一次アクセストークンが正当であることを確認して、呼び出されたWeb API_X109のコマンドの機能に基づくサービスを提供する。
この例では、更にWeb API_X109がWeb API_Y111を利用することを想定する。Web API_X109がWeb API_Y111を利用するための権限について、ユーザから受ける認可を二次認可という。また、二次認可に基づくWeb API_Y111の呼び出しを、二次API呼び出しという。
ここで、図4を用いて二次認可における課題について説明する。尚、二次認可に係るエンティティ、プログラム、処理、画面、データ及びパラメータ等について、「二次」の語句を付して、一次認可に係るエンティティ、プログラム、処理、画面、データ及びパラメータ等と区別する。
この例における二次認可の手順も、OAuthに準拠する。この例におけるプログラムをOAuthにおけるエンティティに当てはめる。ブラウザ103は、二次認可におけるリソースオーナー(つまり、二次リソースオーナー)である。Web API_X109は、二次認可におけるクライアント(つまり、二次クライアント)である。Web API_Y111は、二次認可における許可サーバ(つまり、二次許可サーバ)である。Web API_Y111は、更に二次認可におけるリソースサーバ(つまり、二次リソースサーバ)である。
上記一次認可の手順で説明したように、従来技術によれば呼び出し元に対して認可要求が送られる。従って、二次認可にこの仕組みを適用すれば、二次認可要求は、Webアプリケーション_A107に送られることになる。しかし、Webアプリケーション_A107は、二次リソースオーナーではないので二次認可に係る対応を行えない。本来的には、二次リソースオーナーであるブラウザ103に二次認可要求を送るべきところであるが、そのような仕組みは従来ない。
図5を用いて、本実施の形態における二次認可及び二次API呼び出しの概要について説明する。Web API_X109は、呼び出し元であるWebアプリケーション_A107へ二次認可要求の転送指示を送る(S501)。Webアプリケーション_A107は、自ら暗号鍵を生成し、生成した暗号鍵を当該二次認可要求に付加する。Webアプリケーション_A107は、転送指示に従って、暗号鍵が付加された二次認可要求をブラウザ103へ転送する(S503)。
暗号鍵が付加された二次認可要求を、ブラウザ103が受け取ることによって、ブラウザ103とWeb API_Y111との間における二次認可の手続きが行われる(S505)。この手続きによって、Web API_Y111は二次認可を受け付ける。尚、二次認可の手続きにおいて、ブラウザ103に二次同意画面が表示される。また、Web API_Y111は、受け取った暗号鍵を保持する。
図6に、二次同意画面の例を示す。上述した通り、「AAA」は、Webアプリケーション_A107の名前である。同じく「XXX」は、Web API_X109の名前である。「YYY」は、Web API_Y111の名前である。
図6に示したように、一次クライアントに呼び出された一次リソースサーバが、二次クライアントとして二次リソースサーバを呼び出すことについての同意を確認する内容のコメントが表示される。「認可する」と表示された認可ボタンが選択されると、Webアプリケーション_A107により呼び出されたWeb API_X109によるWeb API_Y111の呼び出しをユーザが認可したことになる。一方、「拒否する」と表示された拒否ボタンが選択されると、Webアプリケーション_A107により呼び出されたWeb API_X109によるWeb API_Y111の呼び出しをユーザが拒否したことになる。
図5の説明に戻る。Web API_Y111が二次認可を受け付けると、Web API_Y111は二次アクセストークンを発行し、当該二次アクセストークンはWeb API_X109に引き渡される。本実施の形態では、OAuthにおける認可コードグラント方式によって二次アクセストークンが発行される例について説明する。この例では、Web API_Y111からブラウザ103を介してWeb API_X109へ認可コードを渡した後で(S507a及びS507b)、認可コードに基づいて二次アクセストークンが渡される(S507c)。
二次アクセストークンを得たWeb API_X109は、二次アクセストークンを伴ってWeb API_Y111を呼び出す(S509)。Web API_Y111は、二次アクセストークンが正当であることを確認して、呼び出されたWeb API_Y111のコマンドの機能に基づくサービスを提供する。
Web API_Y111のサービスによって生成されWeb API_X109へ送られるレスポンスのデータ本体は、保持している暗号鍵を用いて暗号化される。そして、暗号化データは、Web API_X109からWebアプリケーション_A107へのレスポンスに含められる。
Webアプリケーション_A107は、受け取ったレスポンスに含まれる暗号化データを、先に生成した暗号鍵を用いて復号する。このようにすれば、Web API_Y111からのレスポンスのデータ本体は、中継過程で暗号化されており、例えばWeb API_X109に対してその内容を秘密にすることができる。
続いて、アクセストークンと暗号鍵とに関する紐付けについて説明する。図7に、アクセストークンと暗号鍵とに関する紐付けの概要を示す。上述した通り、Webアプリケーション_A107がブラウザ103からのリクエストに応じた処理を行う際にWeb API_X109を利用し、また利用されるWeb API_X109は、更にWeb API_Y111を利用する。このとき、Web API_X109はWebアプリケーション_A107に対して一次アクセストークンであるTX_Aを発行する。また、Web API_Y111は、Web API_X109に対して二次アクセストークンであるTY_X1を発行する。
Webアプリケーション_A107は、Web API_Y111で用いられる暗号鍵KA_Yを生成したときに、Web API_X109へのアクセスに用いた一次アクセストークンTX_Aと対応付けて、当該暗号鍵KA_Yを記憶する。
また、Web API_Y111は、Web API_X109に対して二次アクセストークンTY_X1を発行するときに、二次認可の手続きで受け取った暗号鍵KA_Yを、当該二次アクセストークンTY_X1と対応付けて記憶する。
Web API_X109は、二次アクセストークンのTY_X1を取得したときに、TY_X1を取得する契機となった呼び出しにおいて示された一次アクセストークンのTX_Aと当該TY_X1とを紐付ける。
上記紐付けを前提として、Web API_Y111は、二次レスポンスのデータ本体を二次アクセストークンTY_X1に対応する暗号鍵KA_Yで暗号化してから、Web API_X109へ送る。Web API_X109は、暗号化データを含む一次レスポンスを生成し、Webアプリケーション_A107へ送る。
Webアプリケーション_A107は、Web API_X109へのアクセスに用いた一次アクセストークンTX_Aに対応する暗号鍵KA_Yを用いて、一次レスポンスに含まれる暗号化データを復号する。
その後、再びWebアプリケーション_A107が一次アクセストークンのTX_Aを伴ってWeb API_X109を呼び出した場合には、Web API_X109はTX_Aに対応する二次アクセストークンのTY_X1を伴ってWeb API_Y111を呼び出すようにする。暗号化及び復号については、その後も同様である。
一方、Webアプリケーション_B701がブラウザ103からのリクエストに応じた処理を行う際にWeb API_X109を利用し、また利用されるWeb API_X109は、更にWeb API_Y111を利用するものとする。このとき、Web API_X109はWebアプリケーション_B701に対して一次アクセストークンであるTX_Bを発行する。また、Web API_Y111は、Web API_X109に対して二次アクセストークンであるTY_X2を発行する。
Webアプリケーション_B701は、Web API_Y111で用いられる暗号鍵KB_Yを生成したときに、Web API_X109へのアクセスに用いた一次アクセストークンTX_Bと対応付けて、当該暗号鍵KB_Yを記憶する。
また、Web API_Y111は、Web API_X109に対して二次アクセストークンTY_X2を発行するときに、二次認可の手続きで受け取った暗号鍵KB_Yを、当該二次アクセストークンTY_X2と対応付けて記憶する。
Web API_X109は、二次アクセストークンのTY_X2を取得したときに、TY_X2を取得する契機となった呼び出しにおいて示された一次アクセストークンのTX_Bと当該TY_X2とを紐付ける。
上記紐付けを前提として、Web API_Y111は、二次レスポンスのデータ本体を二次アクセストークンTY_X2に対応する暗号鍵KB_Yで暗号化してから、Web API_X109へ送る。Web API_X109は、暗号化データを含む一次レスポンスを生成し、Webアプリケーション_B701へ送る。
Webアプリケーション_B701は、Web API_X109へのアクセスに用いた一次アクセストークンTX_Bに対応する暗号鍵KB_Yを用いて、一次レスポンスに含まれる暗号化データを復号する。
その後、再びWebアプリケーション_B701が一次アクセストークンのTX_Bを伴ってWeb API_X109を呼び出した場合には、Web API_X109はTX_Bに対応する二次アクセストークンのTY_X2を伴ってWeb API_Y111を呼び出すようにする。暗号化及び復号については、その後も同様である。
このようにすれば、Web API_Y111からの二次レスポンスのデータ本体は、起点となったアプリケーション以外において不明であり、秘密となる。つまり、Webアプリケーション_B701が、Webアプリケーション_A107へ送られる二次レスポンスの内容を得ることはない。逆に、Webアプリケーション_A107が、Webアプリケーション_B701へ送られる二次レスポンスの内容を得ることもない。
尚、二次同意画面に示されたコメントの内容に従ってアクセス権限を区別することができるという面もある。もしも、Webアプリケーション_B701の動作に伴う二次同意画面においてユーザが拒否した場合には、Web API_X109が二次アクセストークンのTY_X1を保持していたとしても、この二次アクセストークンを用いることはない。つまり、二次アクセストークンのTY_X1は、Webアプリケーション_A107の動作における認可に基づくので流用されない。以上で、本実施の形態における概要の説明を終える。
以下、本実施の形態における動作について詳述する。図8Aに示すように、Webサーバ105aは、アプリケーション部801を有する。アプリケーション部801は、Webアプリケーション_A107のプログラムに含まれる命令をCPU(Central Processing Unit)が処理することによって実現される。
図8Aを用いてアプリケーション部801のモジュール構成について説明する。アプリケーション部801は、第1送信部803、第2送信部805、受信部807、作成部809、第1生成部811、認証部813、呼び出し部815及び転送部817を有する。
第1送信部803は、ブラウザ103へ各種データを送信する。第2送信部805は、Web API_X109へ各種データを送信する。受信部807は、各種データを受信する。作成部809は、HTMLファイルを作成する。第1生成部811は、一次乱数を生成する。認証部813は、一次ローカルステートの認証を行う。一次ローカルステートは、一次認可要求を識別するデータである。OAuthの仕様に従ったローカルステートの認証によって、成りすましが防止される。呼び出し部815は、一次API呼び出しを行う。転送部817は、二次認可要求をブラウザ103へ転送する。
アプリケーション部801は、更に第2生成部821、紐付け部823、特定部825、復号部827及び紐付けテーブル記憶部831を有する。
第2生成部821は、暗号鍵を生成する。紐付け部823は、一次アクセストークンに暗号鍵を紐付ける。特定部825は、第1紐付けテーブルに基づいて暗号鍵を特定する。復号部827は、一次APIからのレスポンスに含まれる暗号化データを復号する。紐付けテーブル記憶部831は、第1紐付けテーブルを記憶する。
図8Bに、第1紐付けテーブルの例を示す。第1紐付けテーブルにおけるレコードは、一次アクセストークンが格納されるフィールドと、暗号鍵が格納されるフィールドとを有している。暗号鍵は、第2生成部821において生成されたものである。一次アクセストークンは、暗号鍵を生成する契機となった一次API呼び出しにおいて用いられたアクセストークンである。
上述したアプリケーション部801、第1送信部803、第2送信部805、受信部807、作成部809、第1生成部811、認証部813、呼び出し部815、転送部817、第2生成部821、紐付け部823、特定部825及び復号部827は、ハードウエア資源(例えば、図27)と、以下で述べる処理をCPUに実行させるアプリケーションプログラムとを用いて実現される。
上述した紐付けテーブル記憶部831は、ハードウエア資源(例えば、図27)を用いて実現される。
図9に示すように、Webサーバ105bは、第1機能提供部901を有する。第1機能提供部901は、Web API_X109のプログラムに含まれる命令をCPUが処理することによって実現される。
図9を用いて第1機能提供部901のモジュール構成について説明する。第1機能提供部901は、第1送信部903、第2送信部905、第3送信部907、受信部909、第1生成部911、第2生成部913、第1認証部915、第1検証部917、第3生成部919、第4生成部921、第1特定部923、紐付け部925、第2認証部927、呼び出し部929、探索部931、第2特定部933、第2検証部935、機能部937及び紐付けテーブル記憶部941を有する。
第1送信部903は、ブラウザ103へ各種データを送信する。第2送信部905は、Webアプリケーション_A107へ各種データを送信する。第3送信部907は、Web API_Y111へ各種データを送信する。受信部909は、各種データを受信する。
第1生成部911は、一次同意画面のデータを生成する。第2生成部913は、一次認可コードを生成する。認可コードは、OAuthの仕様に基づき、アクセストークンを取得する前提となるデータである。第1認証部915は、一次クライアントの認証を行う。第1検証部917は、一次認可コードの検証を行う。第3生成部919は、一次アクセストークンを生成する。第4生成部921は、二次乱数を生成する。第1特定部923は、一次クライアントIDに基づいて一次クライアント名を特定する。紐付け部925は、第2紐付けテーブルを生成する。第2紐付けテーブルは、紐付けテーブル記憶部941に記憶される。第2紐付けテーブルについては、図15を用いて後述する。
第2認証部927は、二次ローカルステートの認証を行う。二次ローカルステートは、二次認可要求を識別するデータである。OAuthの仕様に従ったローカルステートの認証によって、成りすましが防止される。呼び出し部929は、二次API呼び出しを行う。探索部931は、第2紐付けテーブルにおいて二次アクセストークンを探索する。第2特定部933は、一次クライアントIDに基づいてコールバックURLを特定する。尚、第2特定部933については、実施の形態2において説明する。
第2検証部935は、一次アクセストークンの検証を行う。機能部937は、Web API_X109のコマンドの機能を実現するための処理を実行する。
上述した第1機能提供部901、第1送信部903、第2送信部905、第3送信部907、受信部909、第1生成部911、第2生成部913、第1認証部915、第1検証部917、第3生成部919、第4生成部921、第1特定部923、紐付け部925、第2認証部927、呼び出し部929、探索部931、第2特定部933、第2検証部935及び機能部937は、ハードウエア資源(例えば、図27)と、以下で述べる処理をCPUに実行させるWeb APIのプログラムとを用いて実現される。
上述した紐付けテーブル記憶部941は、ハードウエア資源(例えば、図27)を用いて実現される。
続いて、本実施の形態におけるシーケンスについて説明する。図10に、一次認可のシーケンス例を示す。Webアプリケーション_A107に相当するアプリケーション部801の受信部807が、ブラウザ103から送られたHTMLファイルのリクエストを受信すると(S1001)、Webアプリケーション_A107に相当するアプリケーション部801の作成部809は、HTMLファイルを作成する処理を開始する(S1003)。
HTMLファイルを作成する処理においてWeb API_X109を利用しようとする場合に、Webアプリケーション_A107に相当するアプリケーション部801は、Web API_X109を呼び出すための準備処理を開始する(S1005)。S1007以降の処理が、Web API_X109を呼び出すための準備処理に相当する。
Webアプリケーション_A107に相当するアプリケーション部801の第1生成部811は、一次乱数を生成する(S1007)。一次乱数は、一次認可要求の識別子として用いられる。
Webアプリケーション_A107に相当するアプリケーション部801の第1送信部803は、一次認可要求を、S1001におけるリクエストの送信元であるブラウザ103へ送信する(S1009)。具体的には、一次認可要求は、HTTPリダイレクトの指示である。リダイレクト先URLは、Web API_X109における一次同意画面のURLである。リダイレクト先URLには、パラメータとして、一次レスポンスタイプ、一次クライアントID、一次認可レスポンスのコールバックURL及び一次ローカルステートが付加される。
認可コードグラント方式の場合に、一次レスポンスタイプには、認可コード型が設定される。この例における一次クライアントIDは、Webアプリケーション_A107のIDである。一次認可レスポンスのコールバックURLは、一次認可レスポンスの宛先に相当する。この例における一次認可レスポンスのコールバックURLは、Webアプリケーション_A107のURLである。一次ローカルステートには、一次乱数が設定される。一次ローカルステートは、一次認可要求を識別するデータであって、OAuthの仕様に従って一次認可におけるやり取りの一貫性を保つために用いられる。第三者による成りすましを防止するために、推測され難い値が用いられる。
ブラウザ103が一次認可要求を受信すると(S1011)、ブラウザ103は、HTTPリダイレクトによってWeb API_X109における一次同意画面のURLへアクセスする(S1013)。このとき、Web API_X109における一次同意画面のURLに付加されている上記パラメータも引き渡される。図11に示したシーケンスに移る。
図11について説明する。Web API_X109に相当する第1機能提供部901の第1生成部911は、一次同意画面のデータを生成する(S1101)。このとき、Web API_X109に相当する第1機能提供部901の第1生成部911は、一次同意画面のコメントに、一次クライアントのプログラム名(以下、一次クライアント名という。)と一次リソースサーバとのプログラム名(以下、一次リソースサーバ名という。)を設定する。一次クライアント名は、一次クライアントIDに基づいて特定される。尚 、Web API_X109に相当する第1機能提供部901は、予め一次クライアントIDに対応付けて一次クライアント名を保持している。そして、Web API_X109に相当する第1機能提供部901の第1送信部903は、一次同意画面のデータをアクセス元であるブラウザ103へ送信する(S1103)。
ブラウザ103が一次同意画面のデータを受信すると(S1105)、ブラウザ103は、一次同意画面を表示する(S1107)。一次同意画面において認可ボタンが選択されると、ブラウザ103は、一次認可を受け付ける(S1109)。一次同意画面の仕組みに従って、ブラウザ103は、一次認可通知をWeb API_X109へ送信する(S1111)。
Web API_X109に相当する第1機能提供部901の受信部909が一次認可通知を受信すると(S1113)、図12に示したシーケンスに移る。
図12について説明する。Web API_X109に相当する第1機能提供部901の第2生成部913は、一次認可コードを生成する(S1201)。一次認可コードの生成は、従来技術による。
Web API_X109に相当する第1機能提供部901の第1送信部903は、一次認可レスポンスを、一次認可通知の送信元であるブラウザ103へ送信する(S1203)。具体的には、一次認可レスポンスは、HTTPリダイレクトの指示である。リダイレクト先URLは、一次認可レスポンスのコールバックURL(この例では、Webアプリケーション_A107のURL)である。リダイレクト先URLには、パラメータとして、一次認可コード及び一次ローカルステートが付加される。
ブラウザ103が一次認可レスポンスを受信すると(S1205)、ブラウザ103は、HTTPリダイレクトによってWebアプリケーション_A107のURLへアクセスする(S1207)。このとき、Webアプリケーション_A107のURLに付加されている上記パラメータも引き渡される。図13に示したシーケンスに移る。
図13について説明する。Webアプリケーション_A107に相当するアプリケーション部801の認証部813は、一次ローカルステートの認証を行う(S1301)。具体的には、図10のS1009で一次認可要求に含めた一次ローカルステートと、図12のS1207で引き渡された一次ローカルステートが一致する場合には、一次ローカルステートの認証が成功する。一次ローカルステートの認証が失敗した場合には、処理が中断される。この例では、一次ローカルステートの認証が成功したものと想定する。
Webアプリケーション_A107に相当するアプリケーション部801の第2送信部805は、一次認可コードに基づく一次アクセストークン要求をWeb API_X109へ送信する(S1303)。一次認可コードには、一次クライアントID及び一次クライアントシークレットが付加される。シークレットは、パスワードに相当する。つまり、一次クライアントID及び一次クライアントシークレットは、一次クレデンシャルである。この例における一次クライアントIDは、Webアプリケーション_A107のIDである。この例における一次クライアントシークレットは、Webアプリケーション_A107のシークレットである。
Web API_X109に相当する第1機能提供部901の受信部909が一次アクセストークン要求を受信すると(S1305)、Web API_X109に相当する第1機能提供部901の第1認証部915は、一次クライアントID及び一次クライアントシークレットに基づいて、一次クライアントの認証を行う(S1307)。一次クライアントの認証が失敗した場合には、処理が中断される。この例では、一次クライアントの認証が成功したものと想定する。
Web API_X109に相当する第1機能提供部901の第1検証部917は、一次認可コードの検証を行う(S1309)。一次認可コードが正当なものであれば、一次認可コードの検証が成功する。一次認可コードの検証が失敗した場合には、処理が中断される。この例では、一次認可コードの検証が成功したものと想定する。
Web API_X109に相当する第1機能提供部901の第3生成部919は、一次アクセストークンを生成する(S1311)。一次アクセストークンの生成方法は、従来技術による。
Web API_X109に相当する第1機能提供部901の第2送信部905は、一次アクセストークンを、一次アクセストークン要求の送信元であるWebアプリケーション_A107へ送信する(S1313)。ここでは、一次アクセストークンであるTX_Aが送信されたものとする。
Webアプリケーション_A107に相当するアプリケーション部801の受信部807が一次アクセストークンであるTX_Aを受信すると(S1315)、Webアプリケーション_A107に相当するアプリケーション部801は、Web API_X109を呼び出すための準備処理を終了することになる(S1317)。Webアプリケーション_A107に相当するアプリケーション部801の呼び出し部815は、Web API_X109の呼び出しを行う(S1319)。Web API_X109へのアクセスの際に、一次アクセストークンであるTX_Aが転送される。
Web API_X109に相当する第1機能提供部901の受信部909がWeb API_X109へのアクセスを受信すると(S1321)、Web API_X109に相当する第1機能提供部901の第2検証部935は、一次アクセストークンの検証を行う(S1323)。一次アクセストークンが正当なものであれば、一次アクセストークンの検証が成功する。一次アクセストークンの検証が失敗した場合には、処理が中断される。この例では、一次アクセストークンの検証が成功したものと想定する。
一次アクセストークンの検証が成功すると、Web API_X109に相当する第1機能提供部901の機能部937が当該アクセスに係るコマンドの機能を実現するための処理を開始する。そして、図14Aに示したシーケンスに移る。
図14Aについて説明する。ここから、二次認可のシーケンスに移る。上記コマンドの機能を実現するための処理においてWeb API_Y111を利用しようとする場合に、Web API_X109に相当する第1機能提供部901は、Web API_Y111を呼び出すための準備処理を開始する(S1401)。S1403以降の処理が、Web API_Y111を呼び出すための準備処理に相当する。
Web API_X109に相当する第1機能提供部901の第4生成部921は、二次乱数を生成する(S1403)。二次乱数は、二次認可要求の識別子として用いられる。
Web API_X109に相当する第1機能提供部901の第1特定部923は、一次クライアントIDに基づいて一次クライアント名を特定する(S1405)。この例における一次クライアント名は、Webアプリケーション_A107の名前「AAA」である。
Web API_X109に相当する第1機能提供部901の第2送信部905は、二次認可要求の転送指示をWeb API_X109の呼び出し元であるWebアプリケーション_A107へ送信する(S1407)。具体的には、二次認可要求は、HTTPリダイレクトの指示である。リダイレクト先URLは、Web API_Y111における二次同意画面のURLである。リダイレクト先URLには、パラメータとして、二次レスポンスタイプ、二次クライアントID、二次認可レスポンスのコールバックURL及び二次ローカルステートが付加される。
認可コードグラント方式の場合に、二次レスポンスタイプには、認可コード型が設定される。この例における二次クライアントIDは、Web API_X109のIDである。二次認可レスポンスのコールバックURLは、二次認可レスポンスの宛先に相当する。この例における二次認可レスポンスのコールバックURLは、Web API_X109のURLである。二次ローカルステートには、二次乱数と一次クライアント名との組み合わせが設定される。つまり、この例では、二次ローカルステートの一部を一次クライアント名を伝送するために用いる。但し、二次ローカルステートに、二次乱数のみを設定し、一次クライアント名を別のパラメータとして伝送するようにしてもよい。
Web API_X109に相当する第1機能提供部901の紐付け部925は、ローカルステートの紐付けを行う(S1409)。具体的には、当該紐付け部925は、第2紐付けテーブルに新たなレコードを設けて、当該レコードに一次アクセストークン、二次リソースサーバのURL及び二次ローカルステート(二次乱数と一次クライアント名との組み合わせ)が設定される。この例では、一次アクセストークンであるTX_A、二次リソースサーバのURLであるWeb API_Y111のURL、二次乱数であるRX_A及び一次クライアント名であるAAAが設定される。
図15に、第2紐付けテーブルの例を示す。この例における第2紐付けテーブルは、二次認可に対応するレコードを有している。第2紐付けテーブルのレコードは、一次アクセストークンが格納されるフィールドと、二次リソースサーバのURLが格納されるフィールドと、二次ローカルステートである二次乱数と一次クライアント名との組み合わせが格納されるフィールドと、二次認可コードが格納されるフィールドと、二次アクセストークンが格納されるフィールドとを有している。
図14Aの説明に戻る。Webアプリケーション_A107に相当するアプリケーション部801の受信部807が二次認可要求の転送指示を受信した後(S1410)、図14Bに示したシーケンスに移る。
Webアプリケーション_A107に相当するアプリケーション部801の第2生成部821は、暗号鍵KA_Yを生成する(S1411)。当該第2生成部821は、この例における暗号鍵は、対称暗号化方式における共通鍵である。非対称暗号化方式を採用する場合には、暗号化鍵と、当該暗号化鍵に対応した復号鍵とを生成するようにしてもよい。対称暗号化方式と非対称暗号化方式とのいずれであっても、復号に用いられる鍵は、暗号化に用いられる鍵に適応したものである。
Webアプリケーション_A107に相当するアプリケーション部801の紐付け部823は、図13のS1321に示したWeb API_X109の呼び出しにおいてWeb API_X109に転送した一次アクセストークンTX_Aに、S1411で生成した暗号鍵を紐付ける(S1412)。具体的には、当該紐付け部823は、第1紐付けテーブルに新たなレコードを設け、当該レコードに一次アクセストークンTX_A及び暗号鍵KA_Yを格納する。非対称暗号化方式を採用する場合には、当該紐付け部823は、復号鍵を格納するようにしてもよい。
Webアプリケーション_A107に相当するアプリケーション部801の転送部817は、受信した二次認可要求を、図10のS1001におけるリクエストの送信元であるブラウザ103へ転送する(S1413)。このとき、Webアプリケーション_A107に相当するアプリケーション部801の転送部817は、二次認可要求に上記パラメータ(二次レスポンスタイプ、二次クライアントID、二次認可レスポンスのコールバックURL及び二次ローカルステート)の他に暗号鍵もパラメータとして付加する。非対称暗号化方式を採用する場合には、転送部817は、暗号化鍵を付加するようにしてもよい。
ブラウザ103が二次認可要求を受信すると(S1415)、ブラウザ103は、HTTPリダイレクトによってWeb API_Y111における二次同意画面のURLへアクセスする(S1417)。このとき、Web API_Y111における二次同意画面のURLに付加されている上記パラメータ(二次レスポンスタイプ、二次クライアントID、二次認可レスポンスのコールバックURL及び二次ローカルステート)及び暗号鍵も引き渡される。
ここで、一旦シーケンスについての説明を中断し、Webサーバ105cにおけるモジュールについて説明する。
図16Aに示すように、Webサーバ105cは、第2機能提供部1601を有する。第2機能提供部1601は、Web API_Y111のプログラムに含まれる命令をCPUが処理することによって実現される。
図16Aを用いて第2機能提供部1601のモジュール構成について説明する。図16Aに、第2機能提供部1601のモジュール構成例を示す。第2機能提供部1601は、第1送信部1603、第2送信部1605、受信部1607、第1生成部1609、第2生成部1611、認証部1613、第1検証部1615、第3生成部1617、第1特定部1619、第2検証部1621及び機能部1623を有する。
第1送信部1603は、ブラウザ103へ各種データを送信する。第2送信部1605は、Web API_X109へ各種データを送信する。受信部1607は、各種データを受信する。第1生成部1609は、二次同意画面のデータを生成する。第2生成部1611は、二次認可コードを生成する。認証部1613は、二次クライアントの認証を行う。第1検証部1615は、二次認可コードの検証を行う。第3生成部1617は、二次アクセストークンを生成する。第1特定部1619は、二次クライアントIDに基づいてコールバックURLを特定する。第2検証部1621は、二次アクセストークンの検証を行う。機能部1623は、Web API_Y111のコマンドの機能を実現するための処理を実行する。
第2機能提供部1601は、更に紐付け部1631、第2特定部1633、暗号化部1635及び紐付けテーブル記憶部1641を有する。
紐付け部1631は、二次アクセストークンに暗号鍵を紐付ける。第2特定部1633は、第3紐付けテーブルに基づいて暗号鍵を特定する。暗号化部1635は、暗号鍵を用いてAPIレスポンスのデータ本体を暗号化する。紐付けテーブル記憶部1641は、第3紐付けテーブルを記憶する。
図16Bに、第3紐付けテーブルの例を示す。第3紐付けテーブルにおけるレコードは、二次アクセストークンが格納されるフィールドと、暗号鍵が格納されるフィールドとを有している。暗号鍵は、図14BのS1417で示したWeb API_Y111へのアクセスにおいて引き渡されたものである。二次アクセストークンは、当該アクセスを契機として発行されるアクセストークンである。
上述した第2機能提供部1601、第1送信部1603、第2送信部1605、受信部1607、第1生成部1609、第2生成部1611、認証部1613、第1検証部1615、第3生成部1617、第1特定部1619、第2検証部1621、機能部1623、紐付け部1631、第2特定部1633及び暗号化部1635は、ハードウエア資源(例えば、図27)と、以下で述べる処理をCPUに実行させるWeb APIのプログラムとを用いて実現される。
上述した紐付けテーブル記憶部1641は、ハードウエア資源(例えば、図27)を用いて実現される。
シーケンスの説明に戻る。図14Bに示したシーケンスから図17に示したシーケンスに移る。Web API_Y111に相当する第2機能提供部1601の第1生成部1609は、二次同意画面のデータを生成する(S1701)。このとき、Web API_Y111に相当する第2機能提供部1601の第1生成部1609は、二次同意画面のコメントに、一次クライアント名と、一次リソースサーバである二次クライアントのプログラム名(以下、二次クライアント名という。)と、二次リソースサーバのプログラム名(以下、二次リソースサーバ名という。)とを設定する。一次クライアント名は、二次ローカルステートから取り出される。二次クライアント名は、二次クライアントIDに基づいて特定される。尚、Web API_Y111に相当する第2機能提供部1601は、予め二次クライアントIDに対応付けて二次クライアント名を保持している。そして、Web API_Y111に相当する第2機能提供部1601の第1送信部1603は、二次同意画面のデータをアクセス元であるブラウザ103へ送信する(S1703)。
ブラウザ103が二次同意画面のデータを受信すると(S1705)、ブラウザ103は、二次同意画面を表示する(S1707)。二次同意画面において認可ボタンが選択されると、ブラウザ103は、二次認可を受け付ける(S1709)。二次同意画面の仕組みに従って、ブラウザ103は、二次認可通知をWeb API_Y111へ送信する(S1711)。
Web API_Y111に相当する第2機能提供部1601の受信部1607が二次認可通知を受信すると(S1713)、図18に示したシーケンスに移る。
図18について説明する。Web API_Y111に相当する第2機能提供部1601の第2生成部1611は、二次認可コードを生成する(S1801)。二次認可コードの生成は、従来技術による。
Web API_Y111に相当する第2機能提供部1601の第1送信部1603は、二次認可レスポンスを、二次認可通知の送信元であるブラウザ103へ送信する(S1803)。具体的には、二次認可レスポンスは、HTTPリダイレクトの指示である。リダイレクト先URLは、二次認可レスポンスのコールバックURL(この例では、Web API_X109のURL)である。リダイレクト先URLには、パラメータとして、二次認可コード及び二次ローカルステートが付加される。
ブラウザ103が二次認可レスポンスを受信すると(S1805)。ブラウザ103は、HTTPリダイレクトによってWeb API_X109のURLへアクセスする(S1807)。このとき、Web API_X109のURLに付加されている上記パラメータも引き渡される。図19Aに示したシーケンスに移る。
図19Aについて説明する。Web API_X109に相当する第1機能提供部901の第2認証部927は、二次ローカルステートの認証を行う(S1901)。図14AのS1407で二次認可要求に含めた二次ローカルステートと、図18のS1807で引き渡された二次ローカルステートが一致する場合には、二次ローカルステートの認証が成功する。二次ローカルステートの認証が失敗した場合には、処理が中断される。この例では、二次ローカルステートの認証が成功したものと想定する。
Web API_X109に相当する第1機能提供部901の紐付け部925は、二次認可コードの紐付けを行う(S1903)。具体的には、Web API_X109に相当する第1機能提供部901の紐付け部925は、S1409で設けたレコードに、二次認可コードを設定する。このとき、Web API_X109に相当する第1機能提供部901の紐付け部925は、二次ローカルステートに基づいてレコードを特定するようにしてもよい。このようにすれば、結果的に二次認可コードが一次アクセストークンに紐付けられる。
Web API_X109に相当する第1機能提供部901の第3送信部907は、二次認可コードに基づく二次アクセストークン要求をWeb API_Y111へ送信する(S1905)。二次認可コードには、二次クライアントID及び二次クライアントシークレットが付加される。二次クライアントID及び二次クライアントシークレットは、二次クレデンシャルである。この例における二次クライアントIDは、Web API_X109のIDである。この例における二次クライアントシークレットは、Web API_X109のシークレットである。
Web API_Y111に相当する第2機能提供部1601の受信部1607が二次アクセストークン要求を受信すると(S1907)、Web API_Y111に相当する第2機能提供部1601の認証部1613は、二次クライアントID及び二次クライアントシークレットに基づいて、二次クライアントの認証を行う(S1909)。二次クライアントの認証が失敗した場合には、処理が中断される。この例では、二次クライアントの認証が成功したものと想定する。
Web API_Y111に相当する第2機能提供部1601の第1検証部1615は、二次認可コードの検証を行う(S1911)。二次認可コードが正当なものであれば、二次認可コードの検証が成功する。二次認可コードの検証が失敗した場合には、処理が中断される。この例では、二次認可コードの検証が成功したものと想定する。
Web API_Y111に相当する第2機能提供部1601の第3生成部1617は、二次アクセストークンを生成する(S1913)。二次アクセストークンの生成方法は、従来技術による。
Web API_Y111に相当する第2機能提供部1601の紐付け部1631は、S1913で生成した二次アクセストークンTY_X1に、図14BのS1417で示したHTTPリダイレクトによるアクセスにおいて引き渡された暗号鍵を紐付ける(S1914)。具体的には、当該紐付け部1631は、第3紐付けテーブルに新たなレコードを設け、当該レコードに二次アクセストークンTY_X1及び暗号鍵KA_Yを格納する。
Web API_Y111に相当する第2機能提供部1601の第2送信部1605は、二次アクセストークンを、二次アクセストークン要求の送信元であるWeb API_X109へ送信する(S1915)。ここでは、二次アクセストークンであるTY_X1が送信されたものとする。
Web API_X109に相当する第1機能提供部901の受信部909が二次アクセストークンであるTY_X1を受信した後(S1917)、図19Bに示したシーケンスに移る。
Web API_X109に相当する第1機能提供部901の紐付け部925は、二次アクセストークンの紐付けを行う(S1919)。具体的には、Web API_X109に相当する第1機能提供部901の紐付け部925は、S1409で設けたレコードに、二次アクセストークンを設定する。このとき、Web API_X109に相当する第1機能提供部901の紐付け部925は、二次認可コードに基づいてレコードを特定するようにしてもよい。このようにすれば、結果的に二次アクセストークンが一次アクセストークンに紐付けられる。
この段階で、Web API_X109に相当する第1機能提供部901は、Web API_Y111を呼び出すための準備処理を終了することになる(S1921)。Web API_X109に相当する第1機能提供部901の呼び出し部929は、Web API_Y111の呼び出しを行う(S1923)。Web API_Y111へのアクセスの際に、二次アクセストークンであるTY_X1が転送される。
Web API_Y111に相当する第2機能提供部1601の受信部1607がWeb API_Y111へのアクセスを受信すると(S1925)、Web API_Y111に相当する第2機能提供部1601の第2検証部1621は二次アクセストークンの検証を行う(S1927)。二次アクセストークンが正当なものであれば、二次アクセストークンの検証が成功する。二次アクセストークンの検証が失敗した場合には、処理が中断される。この例では、二次アクセストークンの検証が成功したものと想定する。
二次アクセストークンの検証が成功すると、Web API_Y111に相当する第2機能提供部1601の機能部1623が、Web API_Y111におけるコマンドの機能を実現するための処理を開始する。そして、図20Aに示したシーケンスに移る。
図20Aについて説明する。Web API_Y111に相当する第2機能提供部1601の機能部1623が、Web API_Y111におけるコマンドの機能を実現するための処理を終えると、 Web API_Y111に相当する第2機能提供部1601の第2特定部1633は、第3紐付けテーブルに基づいて暗号鍵を特定する(S2000)。具体的には、当該第2特定部1633は、図19BのS1925に示したAPI_Y111の呼び出しにおいて転送された二次アクセストークンTY_X1に対応する暗号鍵KA_Yを特定する。
Web API_Y111に相当する第2機能提供部1601の暗号化部1635は、特定した暗号鍵を用いて、APIレスポンスのデータ本体を暗号化する(S2001)。このとき、暗号化部1635は、例えばデータ本体の全体を暗号化する。或いは、暗号化部1635は、ポリシーに従ってデータ本体の所定部分を暗号化するようにしてもよい。
Web API_Y111に相当する第2機能提供部1601の第2送信部1605は、APIレスポンスをWeb API_Y111の呼び出し元であるWeb API_X109へ、暗号化されたAPIレスポンスを送信する(S2002)。
Web API_X109に相当する第1機能提供部901の受信部909がWeb API_Y111からのレスポンスを受信すると(S2003)、Web API_X109に相当する第1機能提供部901の機能部937がWeb API_X109におけるコマンドの機能を実現するための処理を継続する。そして、Web API_X109に相当する第1機能提供部901の機能部937が当該処理を終えると、Web API_X109に相当する第1機能提供部901の第2送信部905は、APIレスポンスをWeb API_X109の呼び出し元であるWebアプリケーション_A107へ送信する(S2005)。このとき送られるWeb API_X109からのレスポンスには、Web API_Y111からのレスポンスに含まれる暗号化データが含まれるものとする。
Webアプリケーション_A107に相当するアプリケーション部801の受信部807がWeb API_X109からのレスポンスを受信した後(S2006)、図20Bに示したシーケンスに移る。
Webアプリケーション_A107に相当するアプリケーション部801の特定部825は、第1紐付けテーブルに基づいて暗号鍵を特定する(S2007)。具体的には、当該特定部825は、図13のS1321に示したAPI_X109の呼び出しにおいて転送された一次アクセストークンTX_Aに対応する暗号鍵KA_Yを特定する。
Webアプリケーション_A107に相当するアプリケーション部801の復号部827は、特定された暗号鍵KA_Yを用いて、API_X109からのレスポンスに含まれる暗号化データを復号する(S2008)。
Webアプリケーション_A107に相当するアプリケーション部801の作成部809がHTMLファイル作成の処理を継続する。そして、Webアプリケーション_A107に相当するアプリケーション部801の作成部809がHTMLファイル作成の処理を終えると(S2009)、Webアプリケーション_A107に相当するアプリケーション部801の第1送信部803は、HTMLファイルをリクエスト元のブラウザ103へ送信する(S2011)。
ブラウザ103がHTMLファイルを受信すると(S2013)、ブラウザ103は、HTMLファイルに基づく画面表示を行う(S2015)。
その後ブラウザ103が、例えば前回と同様にHTMLファイルをリクエストする場合に、一次アクセストークンの発行及び二次アクセストークンの発行は省略される。図21に、2回目以降における一次API呼び出し及び二次API呼び出しのシーケンス例を示す。
Webアプリケーション_A107に相当するアプリケーション部801の受信部807がブラウザ103から送られたHTMLファイルのリクエストを受信すると(S2101)、Webアプリケーション_A107に相当するアプリケーション部801の呼び出し部815は、Webアプリケーション_A107におけるユーザアカウントに対応付けられている一次アクセストークン(この例では、TX_A)を用いて、Web API_X109の呼び出しを行う(S2103)。
Web API_X109に相当する第1機能提供部901の受信部909がWeb API_X109へのアクセスを受信すると(S2105)、Web API_X109に相当する第1機能提供部901の第2検証部935は、一次アクセストークンの検証を行う(S2106)。一次アクセストークンが正当であるので、Web API_X109に相当する第1機能提供部901は正常に動作する。
Web API_X109に相当する第1機能提供部901は、Web API_Y111を呼び出すための準備処理に移る。Web API_X109に相当する第1機能提供部901の探索部931は、二次アクセストークンを探索する(S2107)。具体的には、Web API_X109に相当する第1機能提供部901の探索部931は、第2紐付けテーブルにおいて、一次アクセストークンをキーとして、当該一次アクセストークンと一致するレコードを探索する。或いは、Web API_X109に相当する第1機能提供部901の探索部931は、第2紐付けテーブルにおいて、一次アクセストークンと二次リソースサーバのURLとの組をキーとして、当該組と一致するレコードを探索する。該当するレコードがあれば、当該レコードに格納されている二次アクセストークンを用いる。尚、該当するレコードがない場合には、図14Aに示したS1401以降の処理を行う。
この例では、Web API_X109に相当する第1機能提供部901の呼び出し部929は、二次アクセストークン(TY_X1)を用いて、Web API_Y111の呼び出しを行う(S2109)。
Web API_Y111に相当する第2機能提供部1601の受信部1607がWeb API_Y111へのアクセスを受信すると(S2111)、Web API_Y111に相当する第2機能提供部1601の第2検証部1621は二次アクセストークンの検証を行う(S2113)。二次アクセストークンが正当であるので、Web API_Y111に相当する第2機能提供部1601は正常に動作する。
本実施の形態によれば、一次機能のレスポンスに内包される二次機能のレスポンスを秘匿化できる。
また、二次機能の利用に関する同意画面のURLに暗号鍵を付加するので、比較的に処理が簡単になる。
[実施の形態2]
上述した実施の形態では、OAuthにおける認可コードグラント方式によって一次アクセストークンを発行し、同じく認可コードグラント方式によって二次アクセストークンを発行する例について説明した。但し、別の方式によって一次アクセストークンを発行するようにしてもよい。また、別の方式によって二次アクセストークンを発行するようにしてもよい。本実施の形態では、OAuthにおけるインプリシットグラント方式によって一次アクセストークンを発行し、同じくインプリシットグラント方式によって二次アクセストークンを発行する例について説明する。
実施の形態2では、図10に示した一次認可のシーケンスにおける処理に代えて、図22に示した一次認可のシーケンスにおける処理が実行される。
S1001乃至S1007に示した処理は、図10の場合と同様である。
S2201においてWebアプリケーション_A107に相当するアプリケーション部801の第1送信部803が送信する一次認可要求は、実施の形態1の場合と同様にHTTPリダイレクトの指示である。但し、インプリシットグラント方式の場合に、二次レスポンスタイプには、アクセストークン型が設定される。また、二次認可レスポンスのコールバックURLは、省かれる。
ブラウザ103が上記パラメータを含む一次認可要求を受信すると(S2203)、ブラウザ103は、HTTPリダイレクトによってWeb API_X109における一次同意画面のURLへアクセスする(S2205)。このとき、Web API_X109における一次同意画面のURLに付加されている上記パラメータも引き渡される。図11に示したシーケンスに移る。
実施の形態2では、図11に示した一次認可のシーケンスの場合と同様の処理が実行される。
実施の形態2では、図12及び図13に示した一次認可及び一次API呼び出しのシーケンスにおける処理に代えて、図23に示した一次認可及び一次API呼び出しのシーケンスにおける処理が実行される。
Web API_X109に相当する第1機能提供部901の第4生成部921は、一次アクセストークンを生成する(S2301)。一次アクセストークンの生成方法は、従来技術による。
Web API_X109に相当する第1機能提供部901の第2特定部933は、一次クライアントIDに基づいてコールバックURLを特定する(S2303)。コールバックURLは、一次クライアントのURLである。尚、第1機能提供部901は、従来技術の通り、一次クライアントのURLを一次クライアントIDと対応付けるデータを保持しているものとする。
Web API_X109に相当する第1機能提供部901の第1送信部903は、一次認可レスポンスを、一次認可通知の送信元であるブラウザ103へ送信する(S2305)。実施の形態2では、リダイレクト先URLのパラメータとして、一次認可コードに代えて、一次アクセストークン(この例では、TX_A)が付加される。
ブラウザ103が一次認可レスポンスを受信すると(S2307)、ブラウザ103は、HTTPリダイレクトによってWebアプリケーション_A107のURLへアクセスする(S2309)。このとき、Webアプリケーション_A107のURLに付加されている上記パラメータも引き渡される。
S1317乃至S1323に示した処理は、図13の場合と同様である。
実施の形態2では、図14A及び図14Bに示した二次認可のシーケンスにおける処理に代えて、図24A及び図24Bに示した、二次認可のシーケンスにおける処理が実行される。
S1401乃至S1405に示した処理は、図14Aの場合と同様である。
S2401において転送指示の対象となる二次認可要求は、実施の形態1の場合と同様にHTTPリダイレクトの指示である。但し、インプリシットグラント方式の場合に、二次レスポンスタイプには、アクセストークン型が設定される。また、二次認可レスポンスのコールバックURLは、省かれる。
Web API_X109に相当する第1機能提供部901の紐付け部925は、ローカルステートの紐付けを行う(S2403)。具体的には、当該紐付け部925は、第2紐付けテーブルに新たなレコードを設けて、当該レコードに一次アクセストークン、二次リソースサーバのURL及び二次ローカルステート(二次乱数と一次クライアント名との組み合わせ)が設定される。この例では、一次アクセストークンであるTX_A、二次リソースサーバのURLであるWeb API_Y111のURL、二次乱数であるRX_A及び一次クライアント名であるAAAが設定される。
Webアプリケーション_A107に相当するアプリケーション部801の受信部807が二次認可要求の転送指示を受信した後(S2404)、図24Bに示したシーケンスに移る。
Webアプリケーション_A107に相当するアプリケーション部801の第2生成部821は、暗号鍵KA_Yを生成する(S2405)。当該第2生成部821は、例えば乱数を用いて無作為に暗号鍵KA_Yを生成する。
Webアプリケーション_A107に相当するアプリケーション部801の紐付け部823は、図13のS1321に示したWeb API_X109の呼び出しにおいてWeb API_X109に転送した一次アクセストークンTX_Aに、S2405で生成した暗号鍵を紐付ける(S2406)。具体的には、当該紐付け部823は、第1紐付けテーブルに新たなレコードを設け、当該レコードに一次アクセストークンTX_A及び暗号鍵KA_Yを格納する。
Webアプリケーション_A107に相当するアプリケーション部801の転送部817は、受信した二次認可要求を、図22のS1001におけるリクエストの送信元であるブラウザ103へ転送する(S2407)。このとき、Webアプリケーション_A107に相当するアプリケーション部801の転送部817は、二次認可要求に上記パラメータ(二次レスポンスタイプ、二次クライアントID、二次認可レスポンスのコールバックURL及び二次ローカルステート)の他に暗号鍵もパラメータとして付加する。
ブラウザ103が二次認可要求を受信すると(S2409)、ブラウザ103は、HTTPリダイレクトによってWeb API_Y111における二次同意画面のURLへアクセスする(S2411)。このとき、Web API_Y111における二次同意画面のURLに付加されている上記パラメータ(二次レスポンスタイプ、二次クライアントID、二次認可レスポンスのコールバックURL及び二次ローカルステート)及び暗号鍵も引き渡される。
実施の形態2では、図17に示した二次認可のシーケンスの場合と同様の処理が実行される。
実施の形態2では、図18、図19A及び図19Bに示した二次認可及び二次API呼び出しのシーケンスにおける処理に代えて、図25に示した二次認可及び二次API呼び出しのシーケンスにおける処理が実行される。
Web API_Y111に相当する第2機能提供部1601の第3生成部1617は、二次アクセストークンを生成する(S2501)。二次アクセストークンの生成方法は、従来技術による。
Web API_Y111に相当する第2機能提供部1601の第1特定部1619は、二次クライアントIDに基づいてコールバックURLを特定する(S2503)。コールバックURLは、二次クライアントのURLである。尚、第2機能提供部1601は、従来技術の通り、二次クライアントのURLを二次クライアントIDと対応付けるデータを保持しているものとする。
Web API_Y111に相当する第2機能提供部1601の第1送信部1603は、二次認可レスポンスを、二次認可通知の送信元であるブラウザ103へ送信する(S2505)。実施の形態2では、リダイレクト先URLのパラメータとして、二次認可コードに代えて、二次アクセストークン(この例では、TY_X1)が付加される。
ブラウザ103が二次認可レスポンスを受信すると(S2507)、ブラウザ103は、HTTPリダイレクトによってWebアプリケーション_A107のURLへアクセスする(S2509)。このとき、Web API_X109のURLに付加されている上記パラメータも引き渡される。
Web API_X109に相当する第1機能提供部901の紐付け部925は、二次アクセストークンの紐付け(S2511)。具体的には、Web API_X109に相当する第1機能提供部901の紐付け部925は、図24AのS2403で設けたレコードに、二次アクセストークンを設定する。このとき、Web API_X109に相当する第1機能提供部901の紐付け部925は、二次ローカルステートに基づいてレコードを特定するようにしてもよい。このようにすれば、結果的に二次アクセストークンが一次アクセストークンに紐付けられる。
S1921乃至S1927に示した処理は、図19Bの場合と同様である。
また、実施の形態2では、図20A、図20B及び図21に示したシーケンスの場合と同様の処理が実行される。
本実施の形態によれば、インプリシットグラント方式によってアクセストークンを発行する場合も、実施の形態1と同様の効果を奏するようにできる。
尚、上述した実施の形態では、ブラウザ103と連携するアプリケーションプログラムの例として、WebアプリケーションがWeb APIを利用することを想定した。但し、ブラウザ103と連携するプログラムの例として、図26に示すようにネイティブアプリケーション2601がWeb APIを利用することを想定し、上述した実施の形態を適用するようにしてもよい。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べたユーザ端末101及びWebサーバ105は、コンピュータ装置であって、図27に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーションプログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーションプログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーションプログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーションプログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報処理装置は、第1サーバが提供する一次機能を利用する情報処理装置であって、(A)一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、第1サーバから受信する受信部と、(B)アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、暗号化用の鍵データを第2サーバに送る転送部と、(C)一次機能によるレスポンスに含まれる、二次機能によるレスポンスの少なくとも一部に基づく暗号化データを暗号化用の鍵データに適応した復号用の鍵データを用いて復号する復号部とを有する。
このようにすれば、一次機能のレスポンスに内包される二次機能のレスポンスを秘匿化できる。
更に、アクセス先データは、二次機能の利用に関する同意画面のURLであってもよい。
このようにすれば、比較的に処理が簡単になる。
更に、暗号化用の鍵データ及び復号用の鍵データは、対称暗号化方式における共通鍵であってもよい。
このようにすれば、対称暗号化方式を採用できる。
更に、暗号化用の鍵データは、非対称暗号化方式における暗号化鍵であってもよく、復号用の鍵データは、非対称暗号化方式における復号鍵であってもよい。
このようにすれば、非対称暗号化方式を採用できる。
本実施の形態に係るアクセス制御システムは、ネットワークを介して一次機能を提供する第1サーバと、ネットワークを介して二次機能を提供する第2サーバと、一次機能を利用するアプリケーション装置とを含むアクセス制御システムである。そして、上記アプリケーション装置は、(D)一次認証データと第1鍵データとを対応付けて記憶する第1記憶部と、(E)一次認証データを付して一次機能を呼び出す第1呼び出し部とを有する。上記第1サーバは、(F)一次認証データと二次認証データとを対応付けて記憶する第2記憶部と、(G)一次機能が呼び出された場合に、一次認証データを検証する第1検証部と、(H)一次認証データに対応する二次認証データを探索する探索部と、(I)二次認証データを付して二次機能を呼び出す第2呼び出し部とを有する。上記第2サーバは、(J)二次認証データと第2鍵データとを対応付けて記憶する第3記憶部と、(K)二次機能が呼び出された場合に、二次認証データを検証する第2検証部と、(L)二次認証データに対応する第2鍵データを特定する第1特定部と、(M)二次機能によって生成された二次レスポンスの少なくとも一部データを、第2鍵データで暗号化する暗号化部と、(N)暗号化データを含む二次レスポンスを二次呼び出し元の第1サーバへ送信する第1送信部とを有する。上記第1サーバは、(O)暗号化データを含む二次レスポンスを受信する第1受信部と、(P)暗号化データを含み、一次機能によって生成された一次レスポンスを一次呼び出し元のアプリケーション装置へ送信する第2送信部とをさらに有する。上記アプリケーション装置は、(Q)暗号化データを含む一次レスポンスを受信する第2受信部と、(R)一次レスポンスの契機である一次呼び出しに付した一次認証データに対応する第1鍵データを特定する第2特定部と、(E)第1鍵データを用いて、暗号化データを復号する復号部とをさらに有する。
このようにすれば、秘匿化された二次レスポンスを、適正なアクセス権限に基づいて復元できるようになる。
更に、上記アプリケーション装置は、(T)第1サーバから受信してユーザ端末に転送する二次機能に関する認可要求に、第2鍵データを付して転送する転送部をさらに有するようにしてもよい。上記第2サーバは、(U)認可要求に応じたリダイレクトによってユーザ端末から第2鍵データを受信する第3受信部と、(V)二次機能の呼び出しに関する二次認証データを生成した際に、二次認証データに第2鍵データを紐付ける紐付け部とをさらに有するようにしてもよい。
このようにすれば、アプリケーション装置から受けた鍵データを適正なアクセス権限と対応付けられる。
更に、第1鍵データ及び第2鍵データとは、対称暗号化方式における共通鍵であってもよい。
このようにすれば、対称暗号化方式を採用できる。
更に、第1鍵データは、非対称暗号化方式における復号鍵であってもよく、第2鍵データは、非対称暗号化方式における暗号化鍵であってもよい。
このようにすれば、非対称暗号化方式を採用できる。
本実施の形態に係る情報処理装置は、(W)自ら提供する機能の利用に関する同意画面へのアクセスにおいて鍵データを受信する受信部と、(X)同意画面の送信先から受信した認可通知に基づいて発行する認証データと鍵データとを紐付ける紐付け部と、(Y)機能が呼び出されたときに、当該呼び出しに付された認証データに対応する鍵データを用いて、上記機能によるレスポンスの少なくとも一部を暗号化する暗号化部とを有する。
このようにすれば、適正なアクセス権限に基づく鍵データを用いて暗号化できる。
なお、上で述べた情報処理装置、第1サーバ、第2サーバ及びアプリケーション装置における処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1サーバが提供する一次機能を利用する情報処理装置であって、
前記一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、前記第1サーバから受信する受信部と、
前記アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、前記暗号化用の鍵データを前記第2サーバに送る転送部と、
前記一次機能によるレスポンスに含まれる、前記二次機能によるレスポンスの少なくとも一部に基づく暗号化データを前記暗号化用の鍵データに適応した復号用の鍵データを用いて復号する復号部と
を有する情報処理装置。
(付記2)
前記アクセス先データは、前記二次機能の利用に関する同意画面のURLである
付記1記載の情報処理装置。
(付記3)
前記暗号化用の鍵データ及び前記復号用の鍵データは、対称暗号化方式における共通鍵である
付記1又は2記載の情報処理装置。
(付記4)
前記暗号化用の鍵データは、非対称暗号化方式における暗号化鍵であり、前記復号用の鍵データは、非対称暗号化方式における復号鍵である
付記1又は2記載の情報処理装置。
(付記5)
第1サーバが提供する一次機能を利用するコンピュータに、
前記一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、前記第1サーバから受信し、
前記アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、前記暗号化用の鍵データを前記第2サーバに送り、
前記一次機能によるレスポンスに含まれる、前記二次機能によるレスポンスの少なくとも一部に基づく暗号化データを前記暗号化用の鍵データに適応した復号用の鍵データを用いて復号する
処理を実行させるプログラム。
(付記6)
第1サーバが提供する一次機能を利用するコンピュータにより実行される情報処理方法であって、
前記一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、前記第1サーバから受信し、
前記アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、前記暗号化用の鍵データを前記第2サーバに送り、
前記一次機能によるレスポンスに含まれる、前記二次機能によるレスポンスの少なくとも一部に基づく暗号化データを前記暗号化用の鍵データに適応した復号用の鍵データを用いて復号する
処理を含む情報処理方法。
(付記7)
ネットワークを介して一次機能を提供する第1サーバと、
前記ネットワークを介して二次機能を提供する第2サーバと、
前記一次機能を利用するアプリケーション装置と
を含むアクセス制御システムであって、
前記アプリケーション装置は、
一次認証データと第1鍵データとを対応付けて記憶する第1記憶部と、
前記一次認証データを付して前記一次機能を呼び出す第1呼び出し部と
を有し、
前記第1サーバは、
前記一次認証データと二次認証データとを対応付けて記憶する第2記憶部と、
前記一次機能が呼び出された場合に、前記一次認証データを検証する第1検証部と、
前記一次認証データに対応する前記二次認証データを探索する探索部と、
前記二次認証データを付して前記二次機能を呼び出す第2呼び出し部と
を有し、
前記第2サーバは、
前記二次認証データと第2鍵データとを対応付けて記憶する第3記憶部と、
前記二次機能が呼び出された場合に、前記二次認証データを検証する第2検証部と、
前記二次認証データに対応する前記第2鍵データを特定する第1特定部と、
前記二次機能によって生成された二次レスポンスの少なくとも一部データを、前記第2鍵データで暗号化する暗号化部と、
暗号化データを含む前記二次レスポンスを二次呼び出し元の前記第1サーバへ送信する第1送信部と
を有し、
前記第1サーバは、
前記暗号化データを含む前記二次レスポンスを受信する第1受信部と、
前記暗号化データを含み、前記一次機能によって生成された一次レスポンスを一次呼び出し元の前記アプリケーション装置へ送信する第2送信部と
をさらに有し、
前記アプリケーション装置は、
前記暗号化データを含む前記一次レスポンスを受信する第2受信部と、
前記一次レスポンスの契機である一次呼び出しに付した前記一次認証データに対応する前記第1鍵データを特定する第2特定部と、
前記第1鍵データを用いて、前記暗号化データを復号する復号部と
をさらに有するアクセス制御システム。
(付記8)
前記アプリケーション装置は、
前記第1サーバから受信してユーザ端末に転送する前記二次機能に関する認可要求に、前記第2鍵データを付して転送する転送部
をさらに有し、
前記第2サーバは、
前記認可要求に応じたリダイレクトによって前記ユーザ端末から前記第2鍵データを受信する第3受信部と、
前記二次機能の呼び出しに関する前記二次認証データを生成した際に、前記二次認証データに前記第2鍵データを紐付ける紐付け部と
をさらに有する付記7記のアクセス制御システム。
(付記9)
前記第1鍵データ及び前記第2鍵データとは、対称暗号化方式における共通鍵である
付記7又は8記載のアクセス制御システム。
(付記10)
前記第1鍵データは、非対称暗号化方式における復号鍵であり、前記第2鍵データは、非対称暗号化方式における暗号化鍵である
付記7又は8記載のアクセス制御システム。
(付記11)
自ら提供する機能の利用に関する同意画面へのアクセスにおいて鍵データを受信する受信部と、
前記同意画面の送信先から受信した認可通知に基づいて発行する認証データと前記鍵データとを紐付ける紐付け部と、
前記機能が呼び出されたときに、当該呼び出しに付された前記認証データに対応する前記鍵データを用いて、前記機能によるレスポンスの少なくとも一部を暗号化する暗号化部と
を有する情報処理装置。
(付記12)
自ら提供する機能の利用に関する同意画面へのアクセスにおいて鍵データを受信し、
前記同意画面の送信先から受信した認可通知に基づいて発行する認証データと前記鍵データとを紐付け、
前記機能が呼び出されたときに、当該呼び出しに付された前記認証データに対応する前記鍵データを用いて、前記機能によるレスポンスの少なくとも一部を暗号化する
処理をコンピュータに実行させるプログラム。
(付記13)
自ら提供する機能の利用に関する同意画面へのアクセスにおいて鍵データを受信し、
前記同意画面の送信先から受信した認可通知に基づいて発行する認証データと前記鍵データとを紐付け、
前記機能が呼び出されたときに、当該呼び出しに付された前記認証データに対応する前記鍵データを用いて、前記機能によるレスポンスの少なくとも一部を暗号化する
処理を含み、コンピュータにより実行される情報処理方法。
101 ユーザ端末 103 ブラウザ
105 Webサーバ 107 Webアプリケーション_A
109 Web API_X 111 Web API_Y
701 Webアプリケーション_B 801 アプリケーション部
803 第1送信部 805 第2送信部
807 受信部 809 作成部
811 第1生成部 813 認証部
815 呼び出し部 817 転送部
821 第2生成部 823 紐付け部
825 特定部 827 復号部
831 紐付けテーブル記憶部
901 第1機能提供部 903 第1送信部
905 第2送信部 907 第3送信部
909 受信部 911 第1生成部
913 第2生成部 915 第1認証部
917 第1検証部 919 第3生成部
921 第4生成部 923 第1特定部
925 紐付け部 927 第2認証部
929 呼び出し部 931 探索部
933 第2特定部 935 第2検証部
937 機能部 941 紐付けテーブル記憶部
1601 第2機能提供部 1603 第1送信部
1605 第2送信部 1607 受信部
1609 第1生成部 1611 第2生成部
1613 認証部 1615 第1検証部
1617 第3生成部 1619 第1特定部
1621 第2検証部 1623 機能部
1631 紐付け部 1633 第2特定部
1635 暗号化部 1641 紐付けテーブル記憶部
2601 ネイティブアプリケーション

Claims (4)

  1. 第1サーバが提供する一次機能を利用する情報処理装置であって、
    前記一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、前記第1サーバから受信する受信部と、
    前記アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、前記暗号化用の鍵データを前記第2サーバに送る転送部と、
    前記一次機能によるレスポンスに含まれる、前記二次機能によるレスポンスの少なくとも一部に基づく暗号化データを前記暗号化用の鍵データに適応した復号用の鍵データを用いて復号する復号部と
    を有する情報処理装置。
  2. 前記アクセス先データは、前記二次機能の利用に関する同意画面のURLである
    請求項1記載の情報処理装置。
  3. 第1サーバが提供する一次機能を利用するコンピュータに、
    前記一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、前記第1サーバから受信し、
    前記アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、前記暗号化用の鍵データを前記第2サーバに送り、
    前記一次機能によるレスポンスに含まれる、前記二次機能によるレスポンスの少なくとも一部に基づく暗号化データを前記暗号化用の鍵データに適応した復号用の鍵データを用いて復号する
    処理を実行させるプログラム。
  4. 第1サーバが提供する一次機能を利用するコンピュータにより実行される情報処理方法であって、
    前記一次機能が利用しようとする二次機能を提供する第2サーバ宛にリダイレクトさせるアクセス先データを、前記第1サーバから受信し、
    前記アクセス先データに暗号化用の鍵データを付してブラウザへ転送して当該ブラウザにリダイレクトさせることで、前記暗号化用の鍵データを前記第2サーバに送り、
    前記一次機能によるレスポンスに含まれる、前記二次機能によるレスポンスの少なくとも一部に基づく暗号化データを前記暗号化用の鍵データに適応した復号用の鍵データを用いて復号する
    処理を含む情報処理方法。
JP2017174614A 2017-09-12 2017-09-12 情報処理装置、プログラム及び情報処理方法 Expired - Fee Related JP6904183B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017174614A JP6904183B2 (ja) 2017-09-12 2017-09-12 情報処理装置、プログラム及び情報処理方法
US16/126,276 US11050722B2 (en) 2017-09-12 2018-09-10 Information processing device, program, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017174614A JP6904183B2 (ja) 2017-09-12 2017-09-12 情報処理装置、プログラム及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2019050535A JP2019050535A (ja) 2019-03-28
JP6904183B2 true JP6904183B2 (ja) 2021-07-14

Family

ID=65632009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017174614A Expired - Fee Related JP6904183B2 (ja) 2017-09-12 2017-09-12 情報処理装置、プログラム及び情報処理方法

Country Status (2)

Country Link
US (1) US11050722B2 (ja)
JP (1) JP6904183B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10382424B2 (en) * 2016-01-26 2019-08-13 Redhat, Inc. Secret store for OAuth offline tokens
US10880312B1 (en) * 2018-11-21 2020-12-29 Amazon Technologies, Inc. Authentication and authorization with remotely managed user directories
US11979743B2 (en) * 2021-06-16 2024-05-07 Verizon Patent And Licensing Inc. Systems and methods for secure access to 5G non-public networks using mobile network operator credentials

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437550B2 (en) * 1999-12-02 2008-10-14 Ponoi Corp. System for providing session-based network privacy, private, persistent storage, and discretionary access control for sharing private data
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
JP3914193B2 (ja) 2003-09-08 2007-05-16 株式会社野村総合研究所 認証を得て暗号通信を行う方法、認証システムおよび方法
GB2434947B (en) * 2006-02-02 2011-01-26 Identum Ltd Electronic data communication system
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US8825999B2 (en) * 2007-10-20 2014-09-02 Blackout, Inc. Extending encrypting web service
US20110023131A1 (en) * 2008-01-24 2011-01-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for Checking Aggregated Web Services
EP2392114B1 (en) * 2009-01-30 2021-01-20 British Telecommunications public limited company Secure web-based service provision
US20120183144A1 (en) 2011-01-17 2012-07-19 General Electric Company Key management system and methods for distributed software
US8959347B2 (en) * 2011-08-29 2015-02-17 Salesforce.Com, Inc. Methods and systems of data security in browser storage
US9225690B1 (en) * 2011-12-06 2015-12-29 Amazon Technologies, Inc. Browser security module
US9117062B1 (en) * 2011-12-06 2015-08-25 Amazon Technologies, Inc. Stateless and secure authentication
JP5942503B2 (ja) * 2012-03-15 2016-06-29 富士通株式会社 サービス要求装置、サービス要求方法およびサービス要求プログラム
US9154470B2 (en) * 2012-05-25 2015-10-06 Canon U.S.A., Inc. System and method for processing transactions
US9374369B2 (en) * 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
EP4246892A3 (en) 2013-09-13 2023-11-08 Alcatel Lucent Method and system for controlling the exchange of privacy-sensitive information
US9589122B2 (en) * 2013-11-19 2017-03-07 Tencent Technology (Shenzhen) Company Limited Operation processing method and device
JP6546100B2 (ja) * 2014-02-17 2019-07-17 富士通株式会社 サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置
EP3132559B1 (en) * 2014-04-14 2019-08-28 McAfee, LLC Automatic log-in and log-out of a session with session sharing
JP6335657B2 (ja) * 2014-05-30 2018-05-30 キヤノン株式会社 権限委譲システム、方法、認証サーバーシステム、およびプログラム
US10348848B2 (en) * 2014-09-30 2019-07-09 Level 3 Communications, Llc Handling long-tail content in a content delivery network
US10904234B2 (en) * 2014-11-07 2021-01-26 Privakey, Inc. Systems and methods of device based customer authentication and authorization
US9813400B2 (en) * 2014-11-07 2017-11-07 Probaris Technologies, Inc. Computer-implemented systems and methods of device based, internet-centric, authentication
US9614670B1 (en) * 2015-02-05 2017-04-04 Ionic Security Inc. Systems and methods for encryption and provision of information security using platform services
US9832024B2 (en) * 2015-11-13 2017-11-28 Visa International Service Association Methods and systems for PKI-based authentication
US10382409B2 (en) * 2015-11-25 2019-08-13 Visa International Service Association Secure multi-party protocol
US10530578B2 (en) * 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10873587B2 (en) * 2017-03-27 2020-12-22 Oracle Systems Corporation Authenticating access configuration for application programming interfaces
JP6904857B2 (ja) * 2017-08-31 2021-07-21 キヤノン株式会社 権限委譲システム、制御方法、およびプログラム

Also Published As

Publication number Publication date
US20190081934A1 (en) 2019-03-14
US11050722B2 (en) 2021-06-29
JP2019050535A (ja) 2019-03-28

Similar Documents

Publication Publication Date Title
US10904234B2 (en) Systems and methods of device based customer authentication and authorization
JP7119142B2 (ja) デジタルid検証方法及び装置、電子機器、非一時的コンピュータ可読記憶媒体並びにプログラム
TWI719190B (zh) 離線支付方法和裝置
US10003587B2 (en) Authority transfer system, method, and authentication server system by determining whether endpoints are in same or in different web domain
US8332920B2 (en) Token-based client to server authentication of a secondary communication channel by way of primary authenticated communication channels
JP5458888B2 (ja) 証明書生成配布システム、証明書生成配布方法およびプログラム
JP4668610B2 (ja) サービスプロバイダのサービスに対するユーザ認証の方法
US9727715B2 (en) Authentication method and system using password as the authentication key
CN110050435A (zh) 用于安全消息收发的密钥对基础架构
US20150341340A1 (en) A system and method of dynamic issuance of privacy preserving credentials
US20180062863A1 (en) Method and system for facilitating authentication
CN109561065A (zh) 信息处理装置及其控制方法和存储介质
CN109981665B (zh) 资源提供方法及装置、资源访问方法及装置和系统
JP6904183B2 (ja) 情報処理装置、プログラム及び情報処理方法
JP2022528366A (ja) Htmlブラウザ承認アプローチを含むコンピュータシステムおよび方法
JP6854529B2 (ja) 改良型ストレージシステム
KR20130021774A (ko) 전자인증서 기반 보안서비스 제공방법 및 시스템
KR20190097998A (ko) 개인키의 안전 보관을 지원하는 사용자 간편 인증 장치 및 그 동작 방법
JP4979210B2 (ja) ログイン情報管理装置及び方法
CN112565156B (zh) 信息注册方法、装置和系统
JP6825473B2 (ja) アクセス制御装置、アクセス制御プログラム及びアクセス制御方法
JP7043480B2 (ja) 情報処理システムと、その制御方法とプログラム
Damsika et al. A novel mechanism for secure e-tendering in an open electronic network
KR102419311B1 (ko) 신뢰실행 환경 및 블록체인 기반 프라이버시 강화 자기주권 신원증명 시스템 및 방법
JP2007065789A (ja) 認証システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210525

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210607

R150 Certificate of patent or registration of utility model

Ref document number: 6904183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees