JP6119709B2 - サービスプロバイダ装置、プログラム及びサービス提供方法 - Google Patents

サービスプロバイダ装置、プログラム及びサービス提供方法 Download PDF

Info

Publication number
JP6119709B2
JP6119709B2 JP2014199413A JP2014199413A JP6119709B2 JP 6119709 B2 JP6119709 B2 JP 6119709B2 JP 2014199413 A JP2014199413 A JP 2014199413A JP 2014199413 A JP2014199413 A JP 2014199413A JP 6119709 B2 JP6119709 B2 JP 6119709B2
Authority
JP
Japan
Prior art keywords
information
service
domain
unit
web service
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.)
Active
Application number
JP2014199413A
Other languages
English (en)
Other versions
JP2016071561A (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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2014199413A priority Critical patent/JP6119709B2/ja
Priority to US14/867,383 priority patent/US9686264B2/en
Publication of JP2016071561A publication Critical patent/JP2016071561A/ja
Application granted granted Critical
Publication of JP6119709B2 publication Critical patent/JP6119709B2/ja
Active 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/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、サービスプロバイダ装置とプログラムとサービス提供方法に関する。
World Wide Web Consortiumによって、インターネットを利用するための技術が標準化されている。例えば、非特許文献1には、XMLHttpRequest Level 2が開示されている。この技術を用いると、例えば、次のような通信が可能となる。ユーザが操作する端末装置では、Webブラウザを介してJavaScript(登録商標)によるアプリケーションによって、特定のサービスクライアントによる特定のWebサービスが利用されているとする。この状態において、前述の端末装置は、Webブラウザを介して、ドメインが異なる外部のサービスプロバイダ装置によって提供されるWebサービスにおける情報にアクセスすることができる。その結果、特定のWebサービスに対応する表示がなされているWebブラウザ上に、サービスプロバイダ装置によって提供されるWebサービスの情報を表示することができる。
World Wide Web Consortium、"XMLHttpRequest Level 2 W3C Working Draft 17 January 2012"、[online]、[平成26年9月10日検索]、インターネット<URL:http://www.w3.org/TR/XMLHttpRequest2/>
多くの拠点から利用されるWebサービスの場合、サービスクライアントが、複数の異なる場所に配置されることがある。例えば、各サービスクライアントには異なるサブドメインが割り振られ、アクセス元の通信環境から近いサービスクライアントが利用される。このような、特定のサービスクライアントによるWebサービスから、基底サイトドメインが異なる外部のサービスプロバイダ装置によって提供される認証が必要なWebサービスに、例えば、Webブラウザに搭載されたJavaScript(登録商標)によるアプリケーションプログラムを介して通信するとする。通信には、例えば、標準化されたXMLHttpRequestプロトコルが用いられる。XMLHttpRequestプロトコルでは、認証を必要とするリソースに対しては、その仕様上、任意のドメイン(サービスクライアント)からのアクセスを許可することはできない。XMLHttpRequestプロトコルでは、認証を必要とするリソースに対しては、アクセスを許可する特定のドメインを指定する必要がある。但し、上述した通り、アクセス元となるドメインが不定である場合、アクセス元が、許可すべきドメインかを判断することができない。その結果、通信が確立できない可能性がある。一方、接続元ドメイン名を、そのままアクセスを許可する特定のドメインとして指定する方法が考えられる。しかし、接続元に関わらず、全てのドメインとの通信を確立させると、セキュリティレベルが下がることが懸念される。
本発明は、セキュリティを確保しつつ、特定のWebサービスとのスムーズな連携を可能とする、サービスプロバイダ装置、プログラム及びサービス提供方法を提供することを目的とする。
本発明の一側面は、インターネットを介した第一Webサービスを提供するサービスプロバイダ装置であって、所定のWebサービスを提供する所定のサービスクライアントに対応する第一識別情報と、前記第一Webサービスに対応するリソースへの接続を認可する認可情報を転送するアドレスに対応する転送先情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された認証情報と、を関連付けて記憶する関連付け部と、第二Webサービスを提供する第一サービスクライアントに、Webブラウザを介してアクセスしている端末装置から送信され、前記第一サービスクライアントのドメイン情報と、前記第一Webサービスに対応するリソースへの接続に関し、第三Webサービスを提供する第二サービスクライアントに対応して発行された認証情報と、を含み、前記第一Webサービスに対応するリソースへの接続を要求するリソース要求を、前記サービスプロバイダ装置を前記インターネットに接続する前記サービスプロバイダ装置の通信部を介して取得する取得手段と、前記取得手段によって取得された前記リソース要求に含まれる前記認証情報に一致する、前記関連付け部に記憶された前記認証情報に関連付けられた前記転送先情報を、前記関連付け部から特定する特定手段と、前記取得手段によって取得された前記リソース要求に含まれる前記ドメイン情報と、前記特定手段によって特定された前記転送先情報と、が少なくとも一部のドメインの階層で一致するかを判断する判断手段と、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、認証が必要であることを示す情報と前記ドメイン情報とを含む、前記リソース要求に対する第一応答を、前記通信部から前記端末装置に送信し、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記ドメイン情報を含まない、前記リソース要求に対する第二応答を、前記通信部から前記端末装置に送信する、送信手段と、を備えるサービスプロバイダ装置である。
これによれば、第一Webサービスに対応するリソースへの接続に利用される認証情報が、第二サービスクライアントに対応して発行されている状態において、第一サービスクライアントにWebブラウザを介してアクセスしている端末装置に、この認証情報によって、同じリソースへの接続を認可することができる。端末装置が、第一サービスクライアントに、Webブラウザを介してアクセスしている状態において、第一Webサービスに対応するリソースに接続する場合、再度、第一サービスクライアントに対応する認証情報を発行する必要がない。第一Webサービスと第二Webサービスの連携と、第一Webサービスと第三Webサービスの連携を、スムーズに実現させることができる。
サービスプロバイダ装置において、前記関連付け部は、前記第一識別情報と、前記転送先情報と、を関連付けて記憶する第一関連付け部と、前記第一識別情報に対応する第二識別情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された前記認証情報と、を関連付けて記憶する第二関連付け部と、を含み、前記特定手段は、前記取得手段によって取得された前記リソース要求に含まれる前記認証情報に一致する、前記第二関連付け部に記憶された前記認証情報に関連付けられた前記第二識別情報を、前記第二関連付け部から特定し、特定された前記第二識別情報に対応する前記第一識別情報に関連付けられた前記転送先情報を、前記第一関連付け部から特定する、ようにしてもよい。これによれば、各情報を第一関連付け部と第二関連付け部に適宜記憶し、転送先情報を特定することができる。第二関連付け部に、第一識別情報に対応する第二識別情報を記憶させることで、第一関連付け部と第二関連付け部にそれぞれ記憶された各情報を関連付けることができる。
サービスプロバイダ装置において、前記判断手段は、最下位のドメインの階層より上位の階層で、前記ドメイン情報と、前記転送先情報と、が一致するかを判断し、前記送信手段は、前記最下位のドメインの階層より上位の階層で、前記ドメイン情報と前記転送先情報とが一致する場合、前記第一応答を、前記通信部から前記端末装置に送信し、前記最下位のドメインの階層より上位の階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記第二応答を、前記通信部から前記端末装置に送信する、ようにしてもよい。これによれば、第一サービスクライアントが、第二サービスクライアントと基底ドメインが共通するかを判断することができる。端末装置が、第二サービスクライアントと共通した基底ドメインのサブドメインである第一サービスクライアントに、Webブラウザを介してアクセスしている状態において、第二サービスクライアントに対応して発行された認証情報によって、第一Webサービスに対応するリソースへの接続を認可することができる。
サービスプロバイダ装置において、前記関連付け部は、更に、前記転送先情報のドメインの階層を示す階層情報を関連付けて記憶し、前記判断手段は、前記階層情報に対応するドメインの階層で、前記ドメイン情報と、前記転送先情報と、が一致するかを判断し、前記送信手段は、前記階層情報に対応するドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、前記第一応答を、前記通信部から前記端末装置に送信し、前記階層情報に対応するドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記第二応答を、前記通信部から前記端末装置に送信する、ようにしてもよい。これによれば、第二サービスクライアントと同一であると判断される第一サービスクライアントの範囲を適宜設定することができる。
サービスプロバイダ装置は、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された前記認証情報として、OAuthプロトコルにおけるアクセストークンを生成する生成手段を備え、前記関連付け部は、更に、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された前記認証情報として、前記生成手段によって生成された前記アクセストークンを関連付けて記憶し、前記取得手段は、前記ドメイン情報と、前記第二サービスクライアントに対応して発行された前記認証情報としての前記アクセストークンと、を含むリソース要求を、前記通信部を介して取得し、前記特定手段は、前記取得手段によって取得された前記リソース要求に含まれる前記アクセストークンに一致する、前記関連付け部に記憶された前記アクセストークンに関連付けられた前記転送先情報を、前記関連付け部から特定する、ようにしてもよい。これによれば、OAuthプロトコルにおけるアクセストークンを認証情報として、第一サービスクライアントにWebブラウザを介してアクセスしている端末装置に、認可済みのリソースへの接続を認可することができる。
サービスプロバイダ装置において、前記取得手段は、前記リソース要求として、XMLHttpRequestプロトコルにおけるHTTPリクエストを取得し、前記特定手段は、前記取得手段によって取得された前記HTTPリクエストに含まれる前記アクセストークンに一致する、前記関連付け部に記憶された前記アクセストークンに関連付けられた前記転送先情報を、前記関連付け部から特定し、前記送信手段は、前記取得手段によって取得された前記HTTPリクエストに対して、前記第一応答と、前記第二応答と、を前記通信部から前記端末装置に送信する、ようにしてもよい。これによれば、OAuthプロトコルとXMLHttpRequestプロトコルによって、第一サービスクライアントにWebブラウザを介してアクセスしている端末装置に、認可済みのリソースへの接続を認可することができる。
本発明の他の側面は、インターネットを介した第一Webサービスを提供するサービスプロバイダ装置を制御するコンピュータが実行可能なプログラムであって、前記コンピュータを、第二Webサービスを提供する第一サービスクライアントに、Webブラウザを介してアクセスしている端末装置から送信され、前記第一サービスクライアントのドメイン情報と、前記第一Webサービスに対応するリソースへの接続に関し、第三Webサービスを提供する第二サービスクライアントに対応して発行された認証情報と、を含み、前記第一Webサービスに対応するリソースへの接続を要求するリソース要求を、前記サービスプロバイダ装置を前記インターネットに接続する前記サービスプロバイダ装置の通信部を介して取得する取得手段と、所定のWebサービスを提供する所定のサービスクライアントに対応する第一識別情報と、前記第一Webサービスに対応するリソースへの接続を認可する認可情報を転送するアドレスに対応する転送先情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された認証情報と、を関連付けて記憶する関連付け部から、前記取得手段によって取得された前記リソース要求に含まれる前記認証情報に一致する、前記関連付け部に記憶された前記認証情報に関連付けられた前記転送先情報を特定する特定手段と、前記取得手段によって取得された前記リソース要求に含まれる前記ドメイン情報と、前記特定手段によって特定された前記転送先情報と、が少なくとも一部のドメインの階層で一致するかを判断する判断手段と、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、認証が必要であることを示す情報と前記ドメイン情報とを含む、前記リソース要求に対する第一応答を、前記通信部から前記端末装置に送信し、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記ドメイン情報を含まない、前記リソース要求に対する第二応答を、前記通信部から前記端末装置に送信する、送信手段と、して機能させるプログラムである。
これによれば、インターネットを介した通信機能を備える情報処理装置を、上記の対応するサービスプロバイダ装置とすることができる。上記の対応するサービスプロバイダ装置と同様の作用が実現される。このプログラムは、上記の各サービスプロバイダ装置と同様、コンピュータによる所定の手段に他の機能を含ませ、又はコンピュータを他の手段として機能させるプログラムとして特定することもできる。この場合、プログラムは、上記の各サービスプロバイダ装置のうち、対応するサービスプロバイダ装置と同様の作用を奏する。
本発明の更に他の側面は、インターネットを介した第一Webサービスを提供するサービスプロバイダ装置で実行されるサービス提供方法であって、第二Webサービスを提供する第一サービスクライアントに、Webブラウザを介してアクセスしている端末装置から送信され、前記第一サービスクライアントのドメイン情報と、前記第一Webサービスに対応するリソースへの接続に関し、第三Webサービスを提供する第二サービスクライアントに対応して発行された認証情報と、を含み、前記第一Webサービスに対応するリソースへの接続を要求するリソース要求を、前記サービスプロバイダ装置を前記インターネットに接続する前記サービスプロバイダ装置の通信部を介して取得する取得工程と、所定のWebサービスを提供する所定のサービスクライアントに対応する第一識別情報と、前記第一Webサービスに対応するリソースへの接続を認可する認可情報を転送するアドレスに対応する転送先情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された認証情報と、を関連付けて記憶する関連付け部から、前記取得工程で取得された前記リソース要求に含まれる前記認証情報に一致する、前記関連付け部に記憶された前記認証情報に関連付けられた前記転送先情報を特定する特定工程と、前記取得工程で取得された前記リソース要求に含まれる前記ドメイン情報と、前記特定工程で特定された前記転送先情報と、が少なくとも一部のドメインの階層で一致するかを判断する判断工程と、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、認証が必要であることを示す情報と前記ドメイン情報とを含む、前記リソース要求に対する第一応答を、前記通信部から前記端末装置に送信し、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記ドメイン情報を含まない、前記リソース要求に対する第二応答を、前記通信部から前記端末装置に送信する、送信工程と、を含むサービス提供方法である。
これによれば、上記の対応するサービスプロバイダ装置と同様の作用が実現される。このサービス提供方法は、上記の各サービスプロバイダ装置と同様、所定の工程に他の手順を含ませ、又は他の工程を含むサービス提供方法として特定することもできる。この場合、サービス提供方法は、上記の各サービスプロバイダ装置のうち、対応するサービスプロバイダ装置と同様の作用を奏する。
本発明によれば、セキュリティを確保しつつ、特定のWebサービスとのスムーズな連携を可能とする、サービスプロバイダ装置、プログラム及びサービス提供方法を得ることができる。
Webサービスシステムの概略構成を示す図である。 受付処理のフローチャートである。 第一データベースの一例を示す図である。 OAuth認証の処理手順の一例を示すシーケンス図である。 第二データベースの一例を示す図である。 取得判断処理のフローチャートである。 ユーザ端末とサービスプロバイダ装置の間の通信の一例を示す図である。 HTTPレスポンスの他の例を示す図である。 HTTPレスポンスの更に他の例を示す図である。
本発明を実施するための実施形態について、図面を用いて説明する。本発明は、以下に記載の構成に限定されるものではなく、同一の技術的思想において種々の構成を採用することができる。例えば、以下に示す構成の一部は、省略し又は他の構成等に置換してもよい。他の構成を含むようにしてもよい。
<Webサービスシステム>
Webサービスシステム10は、サービスプロバイダ装置20と、第一サービスクライアント40と、第二サービスクライアント60を含む。Webサービスシステム10において、サービスプロバイダ装置20と、第一サービスクライアント40と、第二サービスクライアント60は、インターネット12に接続されている。インターネット12には、複数の端末装置が接続されている。端末装置は、各端末装置のユーザによって操作される。各端末装置のユーザは、端末装置を介して、インターネット12を利用することができる。図1では、実施形態の説明に用いる1台の端末装置が図示されている。実施形態では、この1台の端末装置を「ユーザ端末80」という。
サービスプロバイダ装置20は、第一Webサービスを提供するサーバ装置である。サービスプロバイダ装置20に関するこの他の説明は後述する。第一サービスクライアント40は、第二Webサービスを提供するコンシューマである。第二サービスクライアント60は、第三Webサービスを提供するコンシューマである。第一サービスクライアント40と第二サービスクライアント60は、ハードウェア的には、既に実用化された汎用のサーバ装置と同様である。第一サービスクライアント40による第二Webサービスの提供と、第二サービスクライアント60による第三Webサービスの提供は、従来と同様の手法によって行われる。そのため、第一サービスクライアント40と第二サービスクライアント60の説明は適宜省略する。
実施形態では、第一Webサービスを提供するサービスプロバイダ装置20のドメイン情報は「bar.other.com」とし、URIは「https://bar.other.com」とする。第二Webサービスを提供する第一サービスクライアント40のドメイン情報は「foo.example.com」とし、URIは「https://foo.example.com」とする。第三Webサービスを提供する第二サービスクライアント60のドメイン情報は「qux.example.com」とし、URIは「https://qux.example.com」とする。第一サービスクライアント40と第二サービスクライアント60に関し、「foo.example.com」と「qux.example.com」は、基底ドメイン「example.com」のサブドメインである。第一サービスクライアント40と第二サービスクライアント60は、ポータルサイトを介して利用することができるものであってもよい。ポータルサイトのURIは、例えば、「https://portal.example.com」とされる。
Webサービスシステム10では、例えば、次のような処理を実現することができる。ユーザ端末80を操作するユーザが、第一Webサービスと第二Webサービスと第三Webサービスに登録し、これら各サービスを利用することができるとする。第一Webサービスは、データ保管サービスであるとする。第二Webサービスは、ソーシャルネットワーキングサービスであるとする。第三Webサービスは、電子メールサービスであるとする。例えば、このユーザは、第一Webサービスと第二Webサービスを連携させて、第一Webサービスに保管された写真データを、第二Webサービスに投稿することができる。このユーザは、第一Webサービスと第三Webサービスを連携させて、第一Webサービスに保管された写真データを電子メールに添付し、この写真データが添付された電子メールを送信することができる。各サービス間の連携には、Webサービス用のAPI(Application Programming Interface )が利用される。
ユーザ端末80は、通信機能を有する公知の情報処理装置である。ユーザ端末80には、Webブラウザがインストールされている。インターネット12へのアクセスは、Webブラウザを介して行われる。Webブラウザ上では、アクセス先のWebサービス用のJavaScript(登録商標)によるアプリケーションが動作する。このアプリケーションは、アクセス先からユーザ端末80に送信される。ユーザ端末80としては、例えば、パーソナルコンピュータ、タブレット端末又はスマートフォンが挙げられる。ユーザ端末80に関する説明は適宜省略する。
<サービスプロバイダ装置>
サービスプロバイダ装置20について、図1を参照して説明する。サービスプロバイダ装置20は、CPU21と、記憶装置22と、RAM23と、通信部24を備える。これら各部21〜24は、バス25に接続される。CPU21は、演算処理を実行する。記憶装置22は、コンピュータが読み取り可能な記憶媒体によって構成される。例えば、記憶装置22は、ハードディスク及び/又はフラッシュメモリによって構成される。この他、記憶装置22は、ROMを含むものであってもよい。記憶装置22には、各種のプログラムが記憶される。例えば、記憶装置22には、OS(Operating System)と各種のアプリケーションが記憶される。記憶装置22に記憶されるアプリケーションには、後述する受付処理(図2参照)のプログラムと、取得判断処理(図6参照)のプログラムが含まれる。例えば、アプリケーションは、記憶装置22に事前にインストールされる。
事前のインストールは、例えば、半導体メモリ等のコンピュータが読み取り可能な記憶媒体に記憶されたプログラムが、サービスプロバイダ装置20の読取部(不図示)によって読み取られることで行われる。サービスプロバイダ装置20が、例えば、光学ドライブ(不図示)を備えている場合、事前のインストールは、光学メディアに記憶されたプログラムが、光学ドライブによって読み取られることで行われるようにしてもよい。この他、事前のインストールは、インターネット12に接続されるサービスプロバイダ装置20とは別のサーバ装置のハードディスク等のコンピュータが読み取り可能な記憶媒体に記憶されたプログラムが、通信部24で伝送信号として受信されることで行われるようにしてもよい。何れの形態とするかは、諸事情を考慮して適宜決定される。コンピュータが読み取り可能な記憶媒体は、一時的な記憶媒体(例えば、伝送信号)を含まない、非一時的な記憶媒体であってもよい。非一時的な記憶媒体は、情報を記憶する期間に関わらず、情報を記憶可能な記憶媒体であればよい。
RAM23は、CPU21が各種のプログラムを実行する際に利用される記憶領域となる。RAM23には、処理の実行途中に、処理で利用される所定のデータと情報が、所定の記憶領域に記憶される。例えば、RAM23には、第一データベース(図3参照)と第二データベース(図5参照)が記憶される。但し、第一データベースと第二データベースは、記憶装置22に記憶されるようにしてもよい。サービスプロバイダ装置20では、CPU21が、記憶装置22に記憶された、OSと、図2に示す受付処理及び図6に示す取得判断処理の各プログラムを実行する等して、サービスプロバイダ装置20を制御する。これにより、サービスプロバイダ装置20では、各種の機能手段が実現される。
通信部24は、サービスプロバイダ装置20をインターネット12に接続し、インターネット12を介したデータ通信を行う。例えば、サービスプロバイダ装置20では、通信部24を介してユーザ端末80との間で各種の指令とデータが送受信される。通信部24は、例えば、イーサネット(登録商標)規格に適合するインターフェース回路等である。通信部24によるインターネット12への接続は、有線接続とされる。但し、通信部24によるインターネット12への接続は、無線接続であってもよい。
サービスプロバイダ装置20は、図6に示す取得判断処理のプログラムが記憶装置22に記憶され、取得判断処理において、図3に示す第一データベースと図5に示す第二データベースが利用される点が、公知のサーバ装置と相違する。但し、サービスプロバイダ装置20は、ハードウェア的には、公知のサーバ装置と同様のサーバ装置である。従って、上記では説明を省略したが、サービスプロバイダ装置20は、上述した各部21〜25の他、公知のサーバ装置が備える構成を備える。
<受付処理>
サービスプロバイダ装置20で実行される受付処理について、図2を参照して説明する。受付処理は、第一サービスクライアント40と第二サービスクライアント60を含むサービスクライアントによって提供されるサービスを、第一Webサービスと連携させる場合に、事前に行われる。受付処理は、例えば、サービスクライアントからの登録要求がサービスプロバイダ装置20において受け付けられた場合に開始される。登録要求は、例えば、インターネット12を介して、要求元のサービスクライアントから送信され、通信部24で受信される。CPU21は、通信部24を介して登録要求を取得し、受付処理を開始する。
受付処理を開始させたCPU21は、クライアントIDと、シークレットIDを生成する(S21)。クライアントIDは、サービスクライアントを識別する識別情報であり、サービスクライアント毎の特有のIDである。シークレットIDは、電子署名に用いられるIDである。シークレットIDは、コンシューマシークレットと称されることもある。シークレットIDは、公知のOAuth認証でも、利用される情報である。そのため、シークレットIDに関するこの他の説明は省略する。
次に、CPU21は、第一データベースへの所定の情報の登録を制御する(S23)。第一データベースは、上述した通り、RAM23又は記憶装置22に記憶されている。第一データベースに登録される所定の情報としては、例えば、レコードIDとサービス名とクライアントIDとシークレットIDとリダイレクトURIと階層情報が挙げられる。受付処理によって、S23で登録された各情報は、それぞれが関連付けられた状態で、第一データベースに記憶される(図3参照)。
レコードIDは、第一データベースに記憶されたレコードを識別する通し番号である。サービス名は、登録対象のサービスクライアントが提供するサービスの名称である。例えば、登録対象が第二サービスクライアント60である場合、サービス名として、第二Webサービスの名称「qux」が登録される。クライアントIDとシークレットIDは、S11で生成された情報である。リダイレクトURIは、認可コードを転送するアドレスに対応する転送先情報である。認可コードの転送については後述する。階層情報は、図6に示す取得判断処理のS39で、ドメイン情報の同一性の判断条件となるリダイレクトURIのドメインの階層を示す情報である。例えば、リダイレクトURIが「https://qux.example.com」である場合において、セカンドレベルドメインまでの一致が判断条件に設定される。この場合、階層情報は、「example.com」となる。
S23において、レコードIDは、自動的に生成される。サービス名とリダイレクトURIと階層情報は、登録対象のサービスを提供するサービスクライアント側からの申請に従って行われる。即ち、上述した登録要求は、サービス名とリダイレクトURIと階層情報を含む。CPU21は、取得された登録要求から、これら各情報を取得する。
続けて、CPU21は、S23で第一データベースに登録された登録結果の送信を制御する(S25)。CPU21は、登録結果の送信指令を通信部24に出力する。これに伴い、登録結果が、通信部24から、登録要求の送信元であるサービスクライアントに送信される。S25で送信される登録結果は、直前のS23で第一データベースに登録された全ての情報を含む。例えば、登録要求が、第二サービスクライアント60から送信されていたとする。この場合、登録結果が、通信部24から第二サービスクライアント60に送信される。送信される登録結果は、レコードID「1」のレコードに含まれる全ての情報を含む。但し、登録結果に含ませる情報は、上述した各情報の一部とするようにしてもよい。この場合においても、クライアントIDは、登録結果に含まれる。なお、今回の受付処理によって、レコードID「1」が登録される場合、この登録は、第一データベースに何れの情報も記憶されていない状態で行われる。S25を実行した後、CPU21は、受付処理を終了する。
<OAuth認証>
第一Webサービスと第二Webサービス、又は第一Webサービスと第三Webサービスを連携させる場合、公知のWebサービスシステムと同様、OAuthプロトコルによるOAuth認証が行われる。OAuth認証の概略について、図4を参照して説明する。この説明は、第一Webサービスを提供するサービスプロバイダ装置20と、第三Webサービスを提供する第二サービスクライアント60を例として行う。図3に示す第一データベースにおけるレコードID「1」は、第三Webサービスを提供する第二サービスクライアント60に対応するレコードである。
ユーザ端末80において、ユーザは、Webブラウザを起動させ、Webブラウザに、ユーザ端末80の操作部を介して所定の操作を入力する。例えば、ユーザは、Webブラウザに、第二サービスクライアント60(第三Webサービス)へのアクセス操作を入力する。これに伴い、Webブラウザは、第二サービスクライアント60のURI「https://qux.example.com」に従い、第二サービスクライアント60にアクセスする。ユーザ端末80では、第三Webサービスのサービス画面がWebブラウザに表示される。Webブラウザでは、第三Webサービス用のJavaScript(登録商標)によるアプリケーションが実行される。第三Webサービス用のJavaScript(登録商標)は、例えば、Webブラウザが、第二サービスクライアント60にアクセスしたときにダウンロードされるようにしてもよい。
次に、ユーザは、Webブラウザに対して、OAuth認証の操作を行う。これに伴い、OAuth認証開始要求が、ユーザ端末80から第二サービスクライアント60に送信される(T1)。第二サービスクライアント60では、OAuth認証開始要求に応じて、OAuth認証開始応答が、ユーザ端末80に送信される(T2)。OAuth認証開始応答は、第一Webサービスを提供するサービスプロバイダ装置20に対応する認証用のURIを含む。ユーザ端末80では、第一Webサービス用の認証画面の送信要求が、OAuth認証開始応答に含まれるURIに従い、サービスプロバイダ装置20に送信される(T3)。
サービスプロバイダ装置20では、T3での送信要求に応じて、第一Webサービス用の認証画面に対応するデータが、ユーザ端末80に送信される(T4)。このデータを受信したユーザ端末80では、第一Webサービス用の認証画面が、Webブラウザに表示される(T5)。ユーザは、ユーザ端末80の操作部を介して、ログイン情報を入力する。ユーザ端末80では、入力されたログイン情報が受け付けられ、受け付けられたログイン情報が、サービスプロバイダ装置20に送信される(T6)。サービスプロバイダ装置20では、認証処理が、ユーザ端末80からのログイン情報に従い行われる(T7)。
T7では、ログイン情報が適切であった場合、ユーザIDとアプリケーションIDが、関連付けられた状態で、第二データベースに登録される(図5参照)。サービスプロバイダ装置20において、第二データベースは、上述した通り、RAM23又は記憶装置22に記憶されている。登録対象となるアプリケーションIDは、連携対象のWebサービスを提供するサービスクライアントに対応する。実施形態では、第一データベースにおいて、次のクライアントIDに関連付けられたレコードIDが、アプリケーションIDとして、第二データベースに登録される。前述のクライアントIDは、連携対象のWebサービスを提供するサービスクライアントに対応するクライアントIDである。従って、第二サービスクライアント60を例とする場合、レコードID「1」が、アプリケーションIDとして登録される(図3及び図5参照)。第一データベースのレコードIDと第二データベースのアプリケーションIDによって、第一データベースに記憶されたレコードと、第二データベースに記憶されたレコードを関連付けることができる。
ログイン情報が適切であった場合、サービスプロバイダ装置20では、承認画面に対応するデータが、ユーザ端末80に送信される(T8)。承認画面に対応するデータを受信したユーザ端末80では、承認画面がWebブラウザに表示される(T9)。承認画面は、ユーザに、第一WebサービスのAPIを利用したユーザのリソースへの接続に対して、認可又は不認可の選択を求める画面である。承認画面は、例えば、OKボタンと、キャンセルボタンを含む。OKボタンは認可に関連付けられ、キャンセルボタンは不認可に関連付けられる。ユーザは、ユーザ端末80の操作部を介して、OKボタンとキャンセルボタンの何れかに対する操作を入力する。OKボタンに対する操作が受け付けられた場合、ユーザ端末80では、認可指令が、サービスプロバイダ装置20に送信される(T10)。サービスプロバイダ装置20では、認可指令に応じて、リダイレクトURIに認可コードが引数として付与される(T11)。
T11を、上述した通り、第二サービスクライアント60を例として説明する。この場合、認可コードが付与されるリダイレクトURIは、図3に示す第一データベースで、レコードID「1」に関連付けられたリダイレクトURI「https://qux.example.com」である。サービスプロバイダ装置20では、認可コードが生成される。認可コードは、第一WebサービスのAPIを利用したユーザのリソースへの接続を認める認可情報である。リソースは、サービスプロバイダ装置20によって管理される第一Webサービスに対応するデータ等である。第一Webサービスが、データ保管サービスである場合、ユーザのリソースは、例えば、このユーザが第一Webサービスを利用して保管する写真データである。
次に、サービスプロバイダ装置20では、認可コードが付与されたリダイレクトURIが、ユーザ端末80に送信される(T12)。ユーザ端末80では、Webブラウザにおけるアクセス先が、認可コードが付与されたリダイレクトURI「https://qux.example.com」へと移動する。このとき、ユーザ端末80では、リダイレクトURIに引数として付与された認可コードが、第二サービスクライアント60に送信される(T13)。認可コードを受信した第二サービスクライアント60では、発行要求が、サービスプロバイダ装置20に送信される。発行要求は、サービスプロバイダ装置20に対して、アクセストークンの発行を要求する指令である。アクセストークンは、第一Webサービスにおけるユーザのリソースに接続する際に利用される認証情報である。発行要求は、T13で受信された認可コードを含む。この他、発行要求は、例えば、第二サービスクライアント60で管理される登録結果に含まれる、クライアントIDを含む。登録結果は、図2に示す受付処理のS25で、サービスプロバイダ装置20から送信される。発行要求に、第二サービスクライアント60で管理される登録結果に含まれる、シークレットIDを含ませるようにしてもよい。
サービスプロバイダ装置20では、T14での発行要求に応じて、アクセストークンが発行される(T15)。T15では、発行されたアクセストークンが、第二データベースに登録される。このとき、アクセストークンは、直前のT7で、第二データベースに登録されたユーザIDとアプリケーションIDに、関連付けられた状態で登録される。実施形態では、T15で、第二サービスクライアント60からの発行要求に応じて、アクセストークン「d21c9d881eba6988be480efab45de2b9」が生成され、第二データベースに登録される。これにより、第二データベースには、ユーザID「423」とアプリケーションID「1」とアクセストークン「d21c9d881eba6988be480efab45de2b9」が、関連付けられた状態で記憶される(図5参照)。第二データベースにおいても、第一データベースと同様、ユーザIDとアプリケーションIDとアクセストークンが記憶された各レコードに対して、レコードIDが関連付けられる。第二データベースにおけるレコードIDは、第二データベースに記憶されたレコードを識別する通し番号である。
その後、サービスプロバイダ装置20では、発行されたアクセストークンが、要求元である第二サービスクライアント60に送信される(T16)。これにより、OAuth認証が終了する。第二サービスクライアント60に対応して発行されたアクセストークンは、基底ドメインが共通する第一サービスクライアント40においても利用することができる。
<取得判断処理>
サービスプロバイダ装置20で実行される取得判断処理について、図6を参照して説明する。ユーザ端末80では、上述したように、OAuth認証が実行され、第一Webサービスと第二Webサービスの連携が実現されている。このような状態において、ユーザ端末80では、Webブラウザを介したアクセス先が、第二サービスクライアント60から、基底ドメインが共通する、第一サービスクライアント40に変更されたとする。この場合、第一サービスクライアント40からユーザ端末80に、第二Webサービス用のJavaScript(登録商標)によるアプリケーションが送信される。更に、第一サービスクライアント40からユーザ端末80に、上述したOAuth認証で、第二サービスクライアント60に対応して発行されたアクセストークンが送信される。同一の基底ドメインを有するサービスクライアント間では、一のサービスクライアントに対して発行されたアクセストークンは、発行元のサービスプロバイダ装置20のURIと共に、他のサービスクライアントに共有されるものとする。即ち、第二サービスクライアント60に対応して発行されたアクセストークンは、サービスプロバイダ装置20のURIと共に、第一サービスクライアント40にも保存されているものとする。
Webブラウザでは、第二Webサービス用のJavaScript(登録商標)によるアプリケーションが実行される。ユーザ端末80において、Webブラウザを介した、サービスプロバイダ装置20と第一サービスクライアント40のそれぞれとの通信は、第二Webサービス用のJavaScript(登録商標)によるアプリケーションによって実現される。この通信は、例えば、XMLHttpRequest Level 2に従う。XMLHttpRequest Level 2では、JavaScript(登録商標)によるアプリケーションは、複数のドメイン(クロスドメイン)との通信が可能となる。
取得判断処理は、例えば、上述したような状態で実行される。取得判断処理の説明は、このような状態を例として行う。取得判断処理を開始させたCPU21は、ユーザ端末80からのHTTPリクエストが取得されたかを判断する(S31)。HTTPリクエストは、通信部24で受信される。CPU21は、通信部24を介してHTTPリクエストを取得する。S31で取得されるHTTPリクエストは、第一WebサービスのAPIを利用した、ユーザのリソースへの接続を要求するリソース要求である。取得されたHTTPリクエストは、RAM23に記憶される。
リソース要求としてのHTTPリクエストは、アクセストークンと、オリジンを含む。実施形態における例に基づけば、S31で取得されるHTTPリクエストは、図7に示すように、アクセストークンとして「d21c9d881eba6988be480efab45de2b9」を含む(HTTPリクエストの「Authorization:」参照)。このHTTPリクエストは、図7に示すように、オリジンとしてアクセス元のドメイン情報を含むURI「https://foo.example.com」を含む(HTTPリクエストの「Origin:」参照)。このようなHTTPリクエストは、公知のXMLHttpRequest Level 2に従っている。そのため、これに関するこの他の説明は省略する。
次に、CPU21は、取得されたHTTPリクエストから、アクセストークンと、オリジンとして指定されたURIを取得する(S33)。CPU21は、第二データベースから、取得されたアクセストークンに一致するアクセストークンに関連付けられたアプリケーションIDを特定する(S35)。第二データベースが図5に示す状態であるとする。この場合、CPU21は、第二データベースで、アクセストークン「d21c9d881eba6988be480efab45de2b9」に関連付けられたアプリケーションID「1」を特定する。
続けて、CPU21は、後述するS39の判断条件となるリダイレクトURIを特定する(S37)。判断条件となるリダイレクトURIは、第一データベースで、S35で特定されたアプリケーションIDに一致するレコードIDに関連付けられたリダイレクトURIである。CPU21は、S33で取得されたURIと、S37で特定されたリダイレクトURIが一致するかを判断する(S39)。判断に際し、CPU21は、このリダイレクトURIと共に、S35で特定されたアプリケーションIDに一致するレコードIDに関連付けられた階層情報を特定する。即ち、CPU21は、S37で、第一データベースから、S35で特定されたアプリケーションIDに一致するレコードIDに関連付けられたリダイレクトURIを取得し、S39で、第一データベースから、同じレコードIDに関連付けられた階層情報を取得する。CPU21は、次のような場合、S33で取得されたURIと、S37で特定されたリダイレクトURIは一致すると判断する。即ち、CPU21は、S33で取得されたURIと、S37で特定されたリダイレクトURIが同じである場合、両情報は一致するとし、S39を肯定(S39:Yes)する。更に、CPU21は、S33で取得されたURIと、前述した階層情報に対応する階層におけるリダイレクトURIの部分が一致する場合、両情報は一致(部分一致)するとし、S39を肯定(S39:Yes)する。
例えば、第一データベースが図3に示す状態であり、第二データベースが図5に示す状態であるとする。S33で、HTTPリクエストからオリジンとして指定されたURI「https://foo.example.com」が取得され、S35で、アプリケーションID「1」が特定されていたとする。この場合、S37でCPU21は、第一データベースから、レコードID「1」に関連付けられたリダイレクトURI「https://qux.example.com」を特定する。S39でCPU21は、「https://foo.example.com」と「https://qux.example.com」が一致するかを判断する。その際、CPU21は、第一データベースにアクセスし、レコードID「1」に関連付けられた階層情報「example.com」を特定する。「https://foo.example.com」は、「https://qux.example.com」のうち、階層情報「example.com」に従った最下位のドメインの階層より上位の階層(トップレベルドメイン及びセカンドレベルドメイン)の部分「example.com」を含む。従って、CPU21は、両情報は一致(部分一致)するとして、S39を肯定(S39:Yes)する。これとは異なり、例えば、S37でリダイレクトURIとして「https://www.example.jp」が特定され、階層情報として「www.example.jp」が特定されていたとする。この場合、「https://foo.example.com」は、リダイレクトURIのうち、前述した階層情報に対応する階層の部分「www.example.jp」を含まない。従って、CPU21は、S39を否定(S39:No)する。
S39が肯定された場合(S39:Yes)、CPU21は、HTTPレスポンスに、「認証要」と「許可ドメイン」を指定する(S41)。HTTPレスポンスは、取得されたHTTPリクエストに対する応答である。「認証要」は、認証が必要であることを示す情報である。「許可ドメイン」は、許可されたドメインを示す情報である。図7に示すHTTPレスポンスは、これら2個の情報が指定されたHTTPレスポンスである。このHTTPレスポンスでは、「認証要」として、「Access−Control−Allow−Credential: true」が指定されている。「許可ドメイン」として、アクセス元のドメイン情報を含むURI「https://foo.example.com」を含む、「Access−Control−Allow−Origin: https://foo.example.com」が指定されている。
S39が否定された場合(S39:No)、又はS41を実行した後、CPU21は、HTTPレスポンスの送信を制御する(S43)。即ち、CPU21は、HTTPレスポンスの送信指令を通信部24に出力する。送信先は、HTTPリクエストの送信元であるユーザ端末80に設定される。これに伴い、HTTPレスポンスが、通信部24からユーザ端末80に送信される。S41が実行されていた場合、上述した通り、「認証要」と「許可ドメイン」を含むHTTPレスポンス(図7参照)が送信される。S39が否定(S39:No)され、S41が未実行である場合、「許可ドメイン」を含まないHTTPレスポンス(図8参照)、又は「認証要」と「許可ドメイン」を含まないHTTPレスポンス(図9参照)が送信される。図8に示すHTTPレスポンスでは、「Access−Control−Allow−Origin」における指定が空の状態とされる。図9に示すHTTPレスポンスは、アクセスする権限がないことを明示的に示すステータスを含む。図7〜図9に示すHTTPレスポンスは、公知のXMLHttpRequest Level 2に従っている。そのため、これらに関するこの他の説明は省略する。
S43を実行した後、CPU21は、処理をS31に戻す。その後、CPU21は、S31以降の処理を繰り返して実行する。取得判断処理は、この処理の終了指示がサービスプロバイダ装置20で受け付けられ、CPU21がこれを取得した場合に終了する。
<実施形態の効果>
実施形態によれば、次のような効果を得ることができる。
(1)サービスプロバイダ装置20では、第一データベースと第二データベースが、RAM23又は記憶装置22に記憶される。第一データベースには、レコードIDとサービス名とクライアントIDとシークレットIDとリダイレクトURIと階層情報が、関連付けられた状態で記憶される(図3参照)。第二データベースには、レコードIDとユーザIDとアプリケーションIDとアクセストークンが、関連付けられた状態で記憶される(図5参照)。第一データベースと第二データベースでは、第一データベースのレコードIDと第二データベースのアプリケーションIDによって、第一データベースに記憶されたレコードと、第二データベースに記憶されたレコードが関連付けられる。
サービスプロバイダ装置20で実行される取得判断処理(図6参照)では、第二データベースから、HTTPリクエストに含まれるアクセストークンに一致するアクセストークンに関連付けられたアプリケーションIDが特定される(図6のS35参照)。続けて、第一データベースで、このアプリケーションIDに一致するレコードIDに関連付けられたリダイレクトURIが、S39の判断条件として特定され(図6のS37参照)、HTTPリクエストでオリジンとして指定されたアクセス元のドメイン情報を含むURIと、リダイレクトURIの一致が判断される(図6のS39参照)。オリジンとして指定されたURIとリダイレクトURIが一致している場合(図6のS39:Yes参照)、HTTPレスポンスに、「認証要(Access−Control−Allow−Credential: true)」と、「許可ドメイン(Access−Control−Allow−Origin: https://foo.example.com)」が指定される(図6のS41及び図7参照)。両URIが一致していない場合(図6のS39:No参照)、HTTPレスポンスには、「認証要」と「許可ドメイン」は指定されない(図6のS41:未実行)。その後、HTTPレスポンスが、HTTPリクエストの送信元であるユーザ端末80に送信される(図6のS43参照)。
そのため、第一WebサービスのAPIを利用したユーザのリソースへの接続に利用されるアクセストークンが、第二サービスクライアント60に対応して発行されている状態(図4のT15及びT16参照)において、第一サービスクライアント40にWebブラウザを介してアクセスしているユーザ端末80(図7参照)に、このアクセストークンによって、同じリソースへの接続を認可することができる。ユーザ端末80が、第一サービスクライアント40に、Webブラウザを介してアクセスしている状態において、第一Webサービスに対応するリソースに接続する場合、再度、第一サービスクライアント40に対応するアクセストークンを発行する必要がない。第一Webサービスと第二Webサービスの連携と、第一Webサービスと第三Webサービスの連携を、スムーズに実現させることができる。
(2)第一データベースにおいて、リダイレクトURIのドメイン階層を示す情報として階層情報を登録することとした(図3参照)。階層情報がリダイレクトURIの一部に対応する場合、図6のS39で、第一サービスクライアント40が、第二サービスクライアント60と基底ドメインが共通するかを判断することができる。階層情報の設定によって、第二サービスクライアント60と同一であると判断される第一サービスクライアント40の範囲を適宜設定することができる。
<変形例>
上述した実施形態は、次のようにすることもできる。以下に示す変形例のうちの幾つかの構成は、適宜組み合わせて採用することもできる。以下では、上記とは異なる点を説明することとし、同様の点についての説明は適宜省略する。
(1)上記では、OAuthプロトコルとXMLHttpRequestプロトコルを例として説明した。そのため、アックセストークンを認証情報とした。認証は、OAuthプロトコル及びXMLHttpRequestプロトコルとは異なるプロトコルを利用することもできる。この場合、認証情報には、利用されるプロトコルにおいて定義された、OAuthプロトコル及びXMLHttpRequestプロトコルにおけるアクセストークンに相当する情報が用いられる。
(2)上記では、第一データベースにおける階層情報として、ドメイン情報を記憶することとした(図3参照)。階層情報は、例えば、階層を示す数値であってもよい。図3に示す第一データベースにおけるレコードID「1」に関連付けられた、リダイレクトURI「https://qux.example.com」を例として説明する。この場合、階層情報として「2」を記憶するようにしてもよい。階層情報「2」は、セカンドレベルドメインに対応する。図6に示す取得判断処理におけるS37でCPU21は、第一データベースから、リダイレクトURI「https://qux.example.com」を特定する。その後、S39でCPU21は、上記同様、S33で取得されたURIと、リダイレクトURIの一致を判断する。その際、CPU21は、階層情報「2」を特定する。即ち、CPU21は、S33で取得されたURIと、リダイレクトURI「https://qux.example.com」のうち、階層情報「2」に対応する階層の部分「example.com」が一致(部分一致)するかを判断する。
(3)上記では、図6に示す取得判断処理のS37で、S35で特定されたアプリケーションIDに一致するレコードIDに関連付けられたリダイレクトURIを特定し、S39で、S33で取得されたURIと、S37で特定されたリダイレクトURIが一致するかを判断することとした。図6のS37とS39に対応する処理は、次のように行うようにしてもよい。即ち、S37のタイミングで、CPU21は、第一データベースで、S35で特定されたアプリケーションIDに一致するレコードIDに関連付けられた階層情報を、判断条件となるリダイレクトURIの一部又は全部として特定する。S39のタイミングで、CPU21は、S33で取得されたURIと、リダイレクトURIの一部又は全部である階層情報が一致するかを判断する。例えば、第一データベースが図3に示す状態であり、第二データベースが図5に示す状態であるとする。図6のS33で、HTTPリクエストから、オリジンとして指定されたURI「https://foo.example.com」が取得され、S35で、アプリケーションID「1」が特定されていたとする。この場合、S37のタイミングで、CPU21は、第一データベースから、レコードID「1」に関連付けられた階層情報「example.com」を、判断条件となるリダイレクトURIの一部として特定する。S39のタイミングで、CPU21は、「https://foo.example.com」と「example.com」の一致を判断する。「https://foo.example.com」は、「example.com」を含む。換言すれば、「https://foo.example.com」は、最下位のドメインの階層より上位の階層(トップレベルドメイン及びセカンドレベルドメイン)で、「example.com」に一致(部分一致)する。従って、CPU21は、S39を肯定(S39:Yes)する。これとは異なり、例えば、S37で「www.example.jp」が特定されていたとする。この場合、「https://foo.example.com」は、「www.example.jp」を含まない。従って、CPU21は、S39を否定(S39:No)する。
(4)上記では、第二データベースにおけるアプリケーションIDとして、第一データベースにおけるレコードIDを記憶することとした(図5参照)。第二データベースにおいて、アプリケーションIDとして登録される識別情報は、第一データベースに記憶されるレコードID以外の情報であってもよい。例えば、第二データベースでは、アプリケーションIDとして、第一データベースに記憶されたクライアントIDを記憶するようにしてもよい。即ち、第二データベースにおけるアプリケーションIDは、第一データベースに記憶されたレコードとの関連付けを可能とする情報であればよい。
第一データベースと第二データベースは、単一のデータベースとしてもよい。即ち、第一データベースと第二データベースは、レコードIDとサービス名とクライアントIDとシークレットIDとリダイレクトURIと階層情報とユーザIDとアクセストークンが、関連付けられた状態で記憶される、単一のデータベースとしてもよい。このデータベースでは、第一データベースに記憶されたレコードと、第二データベースに記憶されたレコードを関連付けるアプリケーションIDは、省略するようにしてもよい。この場合、図6に示す取得判断処理におけるS35は省略される。図6のS37では、図6のS33で取得されたアクセストークンに一致するアクセストークンに関連付けられたリダイレクトURIが取得され、図6のS39以降の処理が上記同様に行われる。
10 サービス提供システム
12 インターネット
20 サービスプロバイダ装置
21 CPU
22 記憶装置
23 RAM
24 通信部
25 バス
40 第一サービスクライアント
60 第二サービスクライアント
80 ユーザ端末

Claims (8)

  1. インターネットを介した第一Webサービスを提供するサービスプロバイダ装置であって、
    所定のWebサービスを提供する所定のサービスクライアントに対応する第一識別情報と、前記第一Webサービスに対応するリソースへの接続を認可する認可情報を転送するアドレスに対応する転送先情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された認証情報と、を関連付けて記憶する関連付け部と、
    第二Webサービスを提供する第一サービスクライアントに、Webブラウザを介してアクセスしている端末装置から送信され、前記第一サービスクライアントのドメイン情報と、前記第一Webサービスに対応するリソースへの接続に関し、第三Webサービスを提供する第二サービスクライアントに対応して発行された認証情報と、を含み、前記第一Webサービスに対応するリソースへの接続を要求するリソース要求を、前記サービスプロバイダ装置を前記インターネットに接続する前記サービスプロバイダ装置の通信部を介して取得する取得手段と、
    前記取得手段によって取得された前記リソース要求に含まれる前記認証情報に一致する、前記関連付け部に記憶された前記認証情報に関連付けられた前記転送先情報を、前記関連付け部から特定する特定手段と、
    前記取得手段によって取得された前記リソース要求に含まれる前記ドメイン情報と、前記特定手段によって特定された前記転送先情報と、が少なくとも一部のドメインの階層で一致するかを判断する判断手段と、
    前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、認証が必要であることを示す情報と前記ドメイン情報とを含む、前記リソース要求に対する第一応答を、前記通信部から前記端末装置に送信し、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記ドメイン情報を含まない、前記リソース要求に対する第二応答を、前記通信部から前記端末装置に送信する、送信手段と、を備えるサービスプロバイダ装置。
  2. 前記関連付け部は、
    前記第一識別情報と、前記転送先情報と、を関連付けて記憶する第一関連付け部と、
    前記第一識別情報に対応する第二識別情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された前記認証情報と、を関連付けて記憶する第二関連付け部と、を含み、
    前記特定手段は、前記取得手段によって取得された前記リソース要求に含まれる前記認証情報に一致する、前記第二関連付け部に記憶された前記認証情報に関連付けられた前記第二識別情報を、前記第二関連付け部から特定し、特定された前記第二識別情報に対応する前記第一識別情報に関連付けられた前記転送先情報を、前記第一関連付け部から特定する、請求項1に記載のサービスプロバイダ装置。
  3. 前記判断手段は、最下位のドメインの階層より上位の階層で、前記ドメイン情報と、前記転送先情報と、が一致するかを判断し、
    前記送信手段は、前記最下位のドメインの階層より上位の階層で、前記ドメイン情報と前記転送先情報とが一致する場合、前記第一応答を、前記通信部から前記端末装置に送信し、前記最下位のドメインの階層より上位の階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記第二応答を、前記通信部から前記端末装置に送信する、請求項1又は請求項2に記載のサービスプロバイダ装置。
  4. 前記関連付け部は、更に、前記転送先情報のドメインの階層を示す階層情報を関連付けて記憶し、
    前記判断手段は、前記階層情報に対応するドメインの階層で、前記ドメイン情報と、前記転送先情報と、が一致するかを判断し、
    前記送信手段は、
    前記階層情報に対応するドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、前記第一応答を、前記通信部から前記端末装置に送信し、前記階層情報に対応するドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記第二応答を、前記通信部から前記端末装置に送信する、請求項1から請求項3の何れか1項に記載のサービスプロバイダ装置。
  5. 前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された前記認証情報として、OAuthプロトコルにおけるアクセストークンを生成する生成手段を備え、
    前記関連付け部は、更に、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された前記認証情報として、前記生成手段によって生成された前記アクセストークンを関連付けて記憶し、
    前記取得手段は、前記ドメイン情報と、前記第二サービスクライアントに対応して発行された前記認証情報としての前記アクセストークンと、を含むリソース要求を、前記通信部を介して取得し、
    前記特定手段は、前記取得手段によって取得された前記リソース要求に含まれる前記アクセストークンに一致する、前記関連付け部に記憶された前記アクセストークンに関連付けられた前記転送先情報を、前記関連付け部から特定する、請求項1から請求項4の何れか1項に記載のサービスプロバイダ装置。
  6. 前記取得手段は、前記リソース要求として、XMLHttpRequestプロトコルにおけるHTTPリクエストを取得し、
    前記特定手段は、前記取得手段によって取得された前記HTTPリクエストに含まれる前記アクセストークンに一致する、前記関連付け部に記憶された前記アクセストークンに関連付けられた前記転送先情報を、前記関連付け部から特定し、
    前記送信手段は、前記取得手段によって取得された前記HTTPリクエストに対して、前記第一応答と、前記第二応答と、を前記通信部から前記端末装置に送信する、請求項5に記載のサービスプロバイダ装置。
  7. インターネットを介した第一Webサービスを提供するサービスプロバイダ装置を制御するコンピュータが実行可能なプログラムであって、
    前記コンピュータを、
    第二Webサービスを提供する第一サービスクライアントに、Webブラウザを介してアクセスしている端末装置から送信され、前記第一サービスクライアントのドメイン情報と、前記第一Webサービスに対応するリソースへの接続に関し、第三Webサービスを提供する第二サービスクライアントに対応して発行された認証情報と、を含み、前記第一Webサービスに対応するリソースへの接続を要求するリソース要求を、前記サービスプロバイダ装置を前記インターネットに接続する前記サービスプロバイダ装置の通信部を介して取得する取得手段と、
    所定のWebサービスを提供する所定のサービスクライアントに対応する第一識別情報と、前記第一Webサービスに対応するリソースへの接続を認可する認可情報を転送するアドレスに対応する転送先情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された認証情報と、を関連付けて記憶する関連付け部から、前記取得手段によって取得された前記リソース要求に含まれる前記認証情報に一致する、前記関連付け部に記憶された前記認証情報に関連付けられた前記転送先情報を特定する特定手段と、
    前記取得手段によって取得された前記リソース要求に含まれる前記ドメイン情報と、前記特定手段によって特定された前記転送先情報と、が少なくとも一部のドメインの階層で一致するかを判断する判断手段と、
    前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、認証が必要であることを示す情報と前記ドメイン情報とを含む、前記リソース要求に対する第一応答を、前記通信部から前記端末装置に送信し、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記ドメイン情報を含まない、前記リソース要求に対する第二応答を、前記通信部から前記端末装置に送信する、送信手段と、して機能させるプログラム。
  8. インターネットを介した第一Webサービスを提供するサービスプロバイダ装置で実行されるサービス提供方法であって、
    第二Webサービスを提供する第一サービスクライアントに、Webブラウザを介してアクセスしている端末装置から送信され、前記第一サービスクライアントのドメイン情報と、前記第一Webサービスに対応するリソースへの接続に関し、第三Webサービスを提供する第二サービスクライアントに対応して発行された認証情報と、を含み、前記第一Webサービスに対応するリソースへの接続を要求するリソース要求を、前記サービスプロバイダ装置を前記インターネットに接続する前記サービスプロバイダ装置の通信部を介して取得する取得工程と、
    所定のWebサービスを提供する所定のサービスクライアントに対応する第一識別情報と、前記第一Webサービスに対応するリソースへの接続を認可する認可情報を転送するアドレスに対応する転送先情報と、前記第一Webサービスに対応するリソースへの接続に関し、前記第一識別情報によって識別される前記所定のサービスクライアントに対応して発行された認証情報と、を関連付けて記憶する関連付け部から、前記取得工程で取得された前記リソース要求に含まれる前記認証情報に一致する、前記関連付け部に記憶された前記認証情報に関連付けられた前記転送先情報を特定する特定工程と、
    前記取得工程で取得された前記リソース要求に含まれる前記ドメイン情報と、前記特定工程で特定された前記転送先情報と、が少なくとも一部のドメインの階層で一致するかを判断する判断工程と、
    前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致する場合、認証が必要であることを示す情報と前記ドメイン情報とを含む、前記リソース要求に対する第一応答を、前記通信部から前記端末装置に送信し、前記少なくとも一部のドメインの階層で、前記ドメイン情報と前記転送先情報とが一致しない場合、前記ドメイン情報を含まない、前記リソース要求に対する第二応答を、前記通信部から前記端末装置に送信する、送信工程と、を含むサービス提供方法。
JP2014199413A 2014-09-29 2014-09-29 サービスプロバイダ装置、プログラム及びサービス提供方法 Active JP6119709B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014199413A JP6119709B2 (ja) 2014-09-29 2014-09-29 サービスプロバイダ装置、プログラム及びサービス提供方法
US14/867,383 US9686264B2 (en) 2014-09-29 2015-09-28 Service providing apparatus, storage medium and service providing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014199413A JP6119709B2 (ja) 2014-09-29 2014-09-29 サービスプロバイダ装置、プログラム及びサービス提供方法

Publications (2)

Publication Number Publication Date
JP2016071561A JP2016071561A (ja) 2016-05-09
JP6119709B2 true JP6119709B2 (ja) 2017-04-26

Family

ID=55585722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014199413A Active JP6119709B2 (ja) 2014-09-29 2014-09-29 サービスプロバイダ装置、プログラム及びサービス提供方法

Country Status (2)

Country Link
US (1) US9686264B2 (ja)
JP (1) JP6119709B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170187726A1 (en) * 2015-12-24 2017-06-29 Zeta (Better World Technology Pvt. Ltd.) Cross-domain message authentication
KR101775518B1 (ko) * 2016-02-23 2017-09-06 한국전자통신연구원 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치
JP6596597B2 (ja) * 2016-11-30 2019-10-30 キヤノン電子株式会社 情報処理装置およびその制御方法、並びにプログラム
KR20190013357A (ko) * 2017-08-01 2019-02-11 주식회사 유비스티 게임화 투어테인먼트 서비스 플랫폼
EP3553719B1 (en) * 2018-04-11 2020-05-13 Barclays Execution Services Limited System for reliably accessing a protected resource
US12047373B2 (en) * 2019-11-05 2024-07-23 Salesforce.Com, Inc. Monitoring resource utilization of an online system based on browser attributes collected for a session
US11770377B1 (en) * 2020-06-29 2023-09-26 Cyral Inc. Non-in line data monitoring and security services
CN114222301B (zh) * 2021-12-13 2024-04-12 奇安盘古(上海)信息技术有限公司 诈骗站点处理方法、装置及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325229A (ja) 2000-05-17 2001-11-22 Daiwa House Ind Co Ltd インターネットにおける認証システム及びサービスシステム
US20020133720A1 (en) * 2001-03-16 2002-09-19 Clickgarden Method for filtering the transmission of data on a computer network to Web domains
JP4179535B2 (ja) * 2002-09-03 2008-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、リバースプロキシ、コンピュータ装置、データ処理方法及びプログラム
WO2005103960A1 (en) * 2004-04-20 2005-11-03 The Boeing Company Apparatus and method for redirecting unresolvable addresses using a local care-of ip address
JP2008197973A (ja) * 2007-02-14 2008-08-28 Mitsubishi Electric Corp ユーザ認証システム
JP2010074431A (ja) * 2008-09-17 2010-04-02 Ricoh Co Ltd 外部認証を用いた認証機能連携機器、認証機能連携システム及び認証機能連携プログラム
JP2011034462A (ja) * 2009-08-04 2011-02-17 Canon Inc 情報処理装置及びその処理方法
EP2315149B1 (en) * 2009-10-26 2019-11-20 Alcatel Lucent System and method for accessing private digital content
WO2012069263A2 (en) * 2010-11-24 2012-05-31 Telefonica, S.A. Method for authorizing access to protected content
KR20130105714A (ko) * 2010-12-17 2013-09-25 노키아 지멘스 네트웍스 오와이 웹 리소스들을 위한 유저 인터랙션
US8990557B2 (en) * 2011-02-17 2015-03-24 Ebay Inc. Identity assertion framework
JP5820188B2 (ja) * 2011-08-19 2015-11-24 キヤノン株式会社 サーバおよびその制御方法、並びにプログラム
US8667579B2 (en) * 2011-11-29 2014-03-04 Genband Us Llc Methods, systems, and computer readable media for bridging user authentication, authorization, and access between web-based and telecom domains
CN103716283B (zh) * 2012-09-29 2017-03-08 国际商业机器公司 用于在流程中处理调用的Web服务的OAuth认证的方法和系统

Also Published As

Publication number Publication date
US9686264B2 (en) 2017-06-20
JP2016071561A (ja) 2016-05-09
US20160094534A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
JP6119709B2 (ja) サービスプロバイダ装置、プログラム及びサービス提供方法
US20200296107A1 (en) Centralized authentication for granting access to online services
CN110138718B (zh) 信息处理系统及其控制方法
JP6533871B2 (ja) ウェブアプリケーションへのサインオンを制御するためのシステムおよび方法
US9053306B2 (en) Authentication system, authentication server, service providing server, authentication method, and computer-readable recording medium
JP6929181B2 (ja) デバイスと、その制御方法とプログラム
JP2018163616A (ja) 認証認可サーバー、リソースサーバー、認証認可システム、認証方法及びプログラム
US20180205745A1 (en) System, method and computer program product for access authentication
JP5485356B1 (ja) 情報処理装置、情報処理装置の制御方法、および制御プログラム。
US9787679B2 (en) Teleconference system and storage medium storing program for teleconference
JP2016051329A (ja) コンテンツ管理装置及びその制御方法
JP2019101668A (ja) システムおよびその制御方法
JP4847483B2 (ja) 個人属性情報提供システムおよび個人属性情報提供方法
KR101803535B1 (ko) 일회용 토큰을 이용한 싱글 사인온 서비스 인증방법
JP5690030B1 (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体
JP2016085638A (ja) サーバー装置、端末装置、システム、情報処理方法及びプログラム
JP7200776B2 (ja) 情報処理システム及びプログラム
JP6570090B2 (ja) ルータ装置及びルータ装置のフィルタリング方法
KR20140121571A (ko) 통합 인증 시스템, 그의 통합 인증 방법 및 이를 위한 장치
JP6162056B2 (ja) 広告コンテンツ配信システムおよび広告コンテンツ配信方法
JP6059307B1 (ja) 端末装置、情報送信方法、及び情報送信プログラム
TWI772954B (zh) 透過裝置識別符之網路接取技術
JP7243144B2 (ja) 端末装置、認証支援装置及びプログラム
JP6395227B2 (ja) ルータ装置及びルータ装置のフィルタリング方法
JP2013257625A (ja) 認証要求変換装置および認証要求変換方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170117

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: 20170228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170313

R150 Certificate of patent or registration of utility model

Ref document number: 6119709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150