JP5942503B2 - サービス要求装置、サービス要求方法およびサービス要求プログラム - Google Patents

サービス要求装置、サービス要求方法およびサービス要求プログラム Download PDF

Info

Publication number
JP5942503B2
JP5942503B2 JP2012059243A JP2012059243A JP5942503B2 JP 5942503 B2 JP5942503 B2 JP 5942503B2 JP 2012059243 A JP2012059243 A JP 2012059243A JP 2012059243 A JP2012059243 A JP 2012059243A JP 5942503 B2 JP5942503 B2 JP 5942503B2
Authority
JP
Japan
Prior art keywords
service
user
authentication
cooperation
session
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
JP2012059243A
Other languages
English (en)
Other versions
JP2013196036A (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 JP2012059243A priority Critical patent/JP5942503B2/ja
Priority to US13/720,544 priority patent/US9313254B2/en
Publication of JP2013196036A publication Critical patent/JP2013196036A/ja
Application granted granted Critical
Publication of JP5942503B2 publication Critical patent/JP5942503B2/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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00209Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax
    • H04N1/00222Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax details of image data generation or reproduction, e.g. scan-to-email or network printing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、サービス要求装置、サービス要求方法およびサービス要求プログラムに関する。
従来、複数のサービスを連携させて新たなサービスを提供するマッシュアップなどと呼ばれるWebサービスが知られている。例えば、サービス連携の一形態としては、提供元が異なる複数のサービスを連携させる印刷サービスなどが挙げられる。具体的には、ユーザは、B社が提供する文書管理サービスにデータを保管する。A社は、B社に預けられたユーザのデータを取得して、自社が提供する印刷サービスを利用してC社の印刷機に印刷する。
このようなサービス連携には、OAuth2.0を用いた認証方法が利用される。OAuth2.0を用いた認証方法では、事前認証フェーズと確認フェーズとが実行される。例えば、事前認証フェーズでは、ユーザは、Webブラウザ等を用いてA社にアクセスしてユーザ認証を実行し、認証結果がOKの場合に、A社に印刷サービスを要求する。A社は、印刷サービスの要求を受信すると、ユーザ端末を経由したリダイレクトで、データの提供をB社に依頼する。
確認フェーズでは、ユーザは、Webブラウザ等を用いてB社との間で認証を実施する。そして、B社は、ユーザ端末を介して、ユーザによる認証結果をA社に送信する。その後、A社は、印刷サービスを実行するAPI(Application Program Interface)を用いて、アクセストークンの要求をB社に送信する。B社は、ユーザデータを取得するAPIを示すアクセストークンを応答する。そして、A社は、B社から受信したアクセストークンをB社に送信し、ユーザデータの取得を要求する。こうして、B社は、A社に対してユーザデータを提供する。
このように、確認フェーズにおいて、A社とB社との間で、ユーザに許可された許可証であるアクセストークンをやり取りすることで、アクセス権の権限委譲を実行し、セキュアなサービス連携を実現している。また、OAuth2.0では、サービスにログイン中であれば、アクセストークンの有効期間内では確認フェーズを省略して、サービス連携を実行させる。
OAuth2.0 IETF draft-ietf-oauth-v2-22 "http://tools.ietf.org/html/draft-ietf-oauth-v2-22"
しかしながら、従来技術では、大量のサービス要求が発生すると、OAuth処理の確認フェーズが大量に実行される場合があり、OAuth処理がボトルネックとなって処理性能が劣化するという問題がある。
例えば、OAuth2.0では、新規のユーザやログアウト後に再度ログインしたユーザに対しては、事前認証フェーズと確認フェーズの両方を実行する。このため、これらに該当する大量のユーザが上記A社にサービス要求を送信した場合、A社では、大量のOAuth処理を実行することになり、処理負荷が高くなる。この場合、A社では、OAuth処理そのものの遅延やB社へのデータ送信などの他の処理の遅延が発生するので、サービス全体として性能が劣化する。
1つの側面では、処理性能の劣化を抑制できるサービス要求装置、サービス要求方法およびサービス要求プログラムを提供することを目的とする。
第1の案では、サービス要求装置は、記憶部と判定部と要求部とを有する。記憶部は、ユーザ識別子と連携元セッション情報と連携先セッション情報とを記憶する。ユーザ識別子は、ユーザを識別する。連携元セッション情報は、前記ユーザがサービスの提供を要求するサービス連携元が使用するセッションの情報を示す。連携先セッション情報は、前記サービス連携元と連携して前記ユーザにサービスを提供するサービス連携先が使用するセッションの情報を示す。判定部は、前記サービス連携元に対してサービスの提供を要求するユーザのユーザ識別子が、前記記憶部に記憶されているか否かを判定する。要求部は、前記判定部によって前記ユーザ識別子が記憶されていると判定された場合に、前記ユーザ識別子に対応付けられて前記記憶部に記憶される前記連携元セッション情報を用いて接続されるサービス連携元に、前記連携元セッション情報に対応付けられた前記連携先セッション情報を用いて接続されるサービス連携先と連携したサービスの提供を要求する。
処理性能の劣化を抑制できる。
図1は、実施例1に係るサービス提供システムの全体構成例を示す図である。 図2は、実施例2に係るサービス提供システムの全体構成例を示す図である。 図3は、ネットワーク事業者が有する各装置の構成を示す機能ブロック図である。 図4は、管理サーバのクラウド対応テーブルに記憶される情報の例を示す図である。 図5は、管理サーバの認証情報テーブルに記憶される情報の例を示す図である。 図6は、GW装置の連携サービステーブルに記憶される情報の例を示す図である。 図7は、GW装置のアカウント管理テーブルに記憶される情報の例を示す図である。 図8は、GW装置のセッション管理テーブルに記憶される情報の例を示す図である。 図9は、GW装置のセッション維持テーブルに記憶される情報の例を示す図である。 図10は、実施例2に係るGW装置が実行する処理の流れを示すフローチャートである。 図11は、実施例2に係るGW装置が実行するサービスリクエスト処理の流れを示すフローチャートである。 図12は、実施例2に係るGW装置が実行するログアウト処理の流れを示すフローチャートである。 図13は、実施例2に係るGW装置が実行する認証要求処理の流れを示すフローチャートである。 図14は、実施例2に係るGW装置が実行する認証情報応答処理の流れを示すフローチャートである。 図15は、実施例2に係るGW装置が実行する連携サービス登録処理の流れを示すフローチャートである。 図16は、実施例2に係るサービス提供システムにおける初回ログイン時の処理シーケンス図である。 図17は、実施例2に係るサービス提供システムにおける初回ログイン時の処理シーケンス図である。 図18は、実施例2に係るサービス提供システムにおけるログイン中からログアウトまでの処理シーケンス図である。 図19は、実施例2に係るサービス提供システムにおける再ログイン時の処理シーケンス図である。 図20は、セッション情報の判定基準例を示す図である。 図21は、1アカウントで1ユーザが利用できる場合の例を示す図である。 図22は、1アカウントで複数ユーザが利用できる場合の例を示す図である。 図23は、ハードウェア構成例を示す図である。
以下に、本願の開示するサービス要求装置、サービス要求方法およびサービス要求プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るサービス提供システムの全体構成例を示す図である。図1に示すように、サービス提供システムは、ユーザ端末1とサービス要求装置2とサービス連携元装置3とサービス連携先装置4とを有する。各装置は、ネットワークを介して接続される。ネットワークには、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、VPN(Virtual Private Network)など様々なネットワークを採用できる。
このサービス提供システムは、OAuth2.0に準拠したシステムであり、サービス連携元装置3がサービス連携先装置4と連携して、ユーザ端末1にサービスを提供するシステムである。例えば、サービス提供システムには印刷サービスなどを適用できる。一例を挙げると、サービス連携元装置3が、写真などのデータを保持し、サービス連携先装置4が、ユーザの承認を得た後にサービス連携元装置3からデータを受信して所定のプリンタに印刷するサービスなどに適用できる。なお、ここで例示したサービスはあくまで例示であり、これに限定されるものではなく、様々なサービスに適用することができる。
ユーザ端末1は、ユーザが利用するコンピュータ装置であり、例えば、パーソナルコンピュータ、携帯電話、スマートフォンなどの端末である。サービス要求装置2は、記憶部2aと判定部2bと要求部2cとを有し、ユーザ端末1がサービスを受ける際のセッション情報を管理するサーバ装置である。サービス連携先装置4は、例えばユーザ端末1のユーザデータを保持するサーバ装置であり、ユーザ端末1からサービス要求を受信し、サービス連携元装置3と連携してサービスを提供する。サービス連携元装置3は、例えばユーザデータをプリンタに印刷するサーバ装置であり、サービス連携先装置4と連携してユーザにサービスを提供する。
まず、ユーザ端末1がサービスを使用する場合について説明する。ユーザ端末1は、サービス要求装置2を介して、サービス連携元装置3にWebアクセスを行い、サービス連携元装置3にサービスを要求する。このとき、サービス連携元装置3は、ユーザ端末1が正当なユーザであるか否かを認証し、正当なユーザであると認証すると、サービスへのログインを許可する。
続いて、サービス連携元装置3は、OAuthにしたがって、サービス連携先装置4に対して認証要求を送信する。サービス連携先装置4は、ユーザ端末1等から認証情報を受け付けてユーザ認証を実行し、ユーザ端末1を正当なユーザであると認証する。このようにして、サービス提供システムでは、サービスを提供するためのセッションが確立される。図1の場合、サービス要求装置2とサービス連携元装置3とがセッションを確立し、サービス要求装置2とサービス連携先装置4とがセッションを確立する。
そして、サービス連携先装置4とサービス連携元装置3とが、連携してユーザ端末1にサービスを提供する。例えば、サービス連携先装置4が、サービス連携元装置3からユーザデータを受信して、所定のプリンタに印刷する。その後、ユーザ端末1は、ユーザの指示操作によってサービスからログアウトを実行する。
このとき、サービス要求装置2は、ユーザを識別するユーザ識別子に対応付けて、連携元セッション情報と連携先セッション情報とを記憶部2aに記憶する。すなわち、サービス要求装置2は、ユーザ端末1にサービスを提供するためのセッションを切断せずに維持する。なお、連携元セッション情報は、ユーザがサービスの提供を依頼するサービス連携元装置3が使用するセッションの情報である。連携先セッション情報は、サービス連携元装置3と連携してユーザにサービスを提供するサービス連携先装置4が使用するセッションの情報である。
その後、1度ログアウトを実行したユーザ端末1が、サービス要求装置2を介して、サービス連携元装置3にWebアクセスを行い、サービス連携元装置3にサービスを再度要求する。すなわち、ユーザ端末1が再度サービスにログインしたとする。
この場合、サービス要求装置2の判定部2bは、サービス連携元に対してサービスの提供を要求するユーザ端末1のユーザ識別子が、記憶部2aに記憶されているか否かを判定する。そして、サービス要求装置2の要求部2cは、判定部2bによってユーザ識別子が記憶されていると判定された場合に、維持するセッションを用いたサービスの提供をサービス連携元装置3に要求する。具体的には、要求部2cは、ユーザ識別子に対応付けて記憶される連携元セッション情報で接続されるサービス連携元装置3に、連携元セッション情報に対応付けられた連携先セッション情報で接続されるサービス連携先装置4と連携したサービスの提供を要求する。
このように、実施例1に係るサービス提供システムは、ユーザ端末1に対するサービス提供に使用されたセッション情報を、ユーザ端末1がログアウト後も維持しておく。そして、実施例1に係るサービス提供システムは、同じユーザ端末1から再度ログインしてサービスを要求された場合には、維持したセッションを使用してサービスを提供する。したがって、2度目のログイン時には、OAuth処理における確認フェーズを省略することができる。この結果、OAuth処理がボトルネックとなることを防止でき、処理性能の劣化を抑制できる。
実施例1では、ユーザ端末がサービス連携元装置とサービス連携先装置の各々に認証を実行するシステム形態を例にして説明したが、これに限定されるものではない。例えば、ユーザ端末に代って代理認証するシステム形態にも開示するサービス要求装置を適用することができる。そこで、実施例2では、代理認証を用いたシステム形態を例にして説明する。
[全体構成]
図2は、実施例2に係るサービス提供システムの全体構成例を示す図である。図2に示すように、このサービス提供システムは、テナントX10と、テナントY11と、ネットワーク事業者20と、サービス事業者(A社)60と、サービス事業者(B社)70とを有する。各装置間は、実施例1と同様、ネットワークを介して接続される。なお、各テナントと各事業者とは特段の関係性はなく、別々の事業者であってもよい。
テナントY10は、テナントIDとして「tenantY」が割当てられた企業などの組織であり、ここでは、ユーザ端末10aがテナントY10に属している。テナントZ11は、テナントIDとして「tenantZ」が割当てられた企業などの組織であり、ここでは、ユーザ端末11aがテナントZ11に属している。
ネットワーク事業者20は、IDP(Identity Provider)サーバ30と管理サーバ40とGW装置50とを有し、これらによって、ユーザ端末に代理認証およびセッション管理を実行する。なお、各装置の構成等については後述する。
サービス事業者(A社)60は、IDPサーバ60aとAPサーバ60bとがルータなどを介して接続され、これらによって、サービス事業者(B社)70と連携してユーザにサービスを提供する。IDPサーバ60aは、APサーバ60bで提供するサービスを利用するユーザの認証を実行する。APサーバ60bは、IDPサーバ60aで認証を受けたユーザに対してサービスを提供する。例えば、APサーバ60bは、IDPサーバ60aで認証を受けたユーザが使用するユーザ端末10aからの要求に応じて、要求された処理を実行する。
サービス事業者(B社)70は、IDPサーバ70aとAPサーバ70bとがルータなどを介して接続され、これらによって、サービス事業者(A社)60と連携してユーザにサービスを提供する。IDPサーバ70aは、APサーバ70bで提供するサービスを利用するユーザの認証を実行する。APサーバ70bは、IDPサーバ70aで認証を受けたユーザに対してサービスを提供する。例えば、APサーバ70bは、IDPサーバ70aで認証を受けたユーザが使用するユーザ端末10aからの要求に応じて、要求された処理を実行する。
そして、サービス事業者(A社)60のIDPサーバ60aと、サービス事業者(B社)70のIDPサーバ70aとは、アクセス権の委譲処理を行うことができる。例えば、IDPサーバ70aは、ユーザ端末10aを使用するユーザのAPサーバ70bへのアクセス権を、APサーバ60bに委譲することができる。これにより、APサーバ60bは、APサーバ70bにアクセスして、APサーバ70bによって提供されるサービスを利用することができる。このようなアクセス権の委譲を行うことができるプロトコルとしては、例えばOAuthがある。
アクセス権の委譲により実行できるサービスの一例を説明する。例えば、ユーザ端末10aのユーザは、サービス事業者(B社)70のAPサーバ70bに自己のドキュメントデータを保管しているものとする。また、サービス事業者(A社)60のAPサーバ60bでは、ユーザ端末10aのユーザのドキュメントデータを印刷データに変換するサービスを行うことができる。
具体的には、ユーザは、APサーバ70bに保管しておいた自己のドキュメントデータの内容を印刷する場合、例えばプリンタ機能を有するユーザ端末10aの操作パネルを用いてドキュメントデータの印刷を指示する入力を行う。ユーザ端末10aは、入力に応じて、APサーバ60bに対してドキュメントデータのネットプリント要求を送信する。ネットプリント要求は、APサーバ60bに対して送られる。APサーバ60bは、ユーザに与えられたアクセス権を用いてAPサーバ70bにアクセスし、ドキュメントデータを取得する。そして、APサーバ60bは、ドキュメントデータを印刷データに変換して、ユーザ端末10aに送信する。ユーザ端末10aは、受信した印刷データに基づいて印刷を実行し、ドキュメントデータの内容が印刷された紙書類を排出する。
このようなサービスを利用するには、APサーバ60bに対して、APサーバ70bへのアクセス権の委譲が行われる。その場合、ユーザの代理認証を実行するネットワーク事業者20のGW(Gateway)装置50は、APサーバ60bのサービスを利用するための代理認証を受けるとともに、APサーバ70bのサービスを利用するための代理認証を受けることとなる。そのために、GW装置50は、APサーバ60bとAPサーバ70bとのそれぞれのサービスを利用するための複数の認証情報を取得する。
[ネットワーク事業者の構成]
次に、図2に示したネットワーク事業者が有する各装置の構成について説明する。図3は、ネットワーク事業者が有する各装置の構成を示す機能ブロック図である。図3に示すように、ネットワーク事業者は、IDPサーバ30と管理サーバ40とGW装置50とを有する。ここでは、各装置の構成を説明する。
(IDPサーバの構成)
図3に示すように、IDPサーバ30は、送受信部31とログイン情報テーブル32と認証部33とを有する。送受信部31は、他の装置の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、送受信部31は、ログイン要求を受け付けたユーザ端末10aからユーザ名とパスワードとを受け付ける。また、送受信部31は、認証結果をユーザ端末10aに送信する。
ログイン情報テーブル32は、ユーザを認証する認証情報を記憶する。ログイン情報テーブル32は、例えばメモリやハードディスク等の記憶装置に設けられる。例えば、このログイン情報テーブル32は、ユーザを識別する「ユーザID」と当該ユーザを特定する「パスワード」とを対応付けた認証情報を記憶する。ログイン情報テーブル32は、ユーザ等によってパスワードやユーザIDが変更されるたびに、管理者等によって更新される。
認証部33は、ユーザ認証を実行する処理部である。この認証部33は、例えばCPU(Central Processing Unit)などの電子回路でもよく、CPUが実行する処理部であってもよい。例えば、認証部33は、ユーザ端末10aからログイン要求を受け付けると、ログイン画面をユーザ端末10aに表示させる。そして、認証部33は、ログイン画面上で「ユーザID」と「パスワード」とを受け付ける。その後、認証部33は、受け付けた「ユーザID」と「パスワード」とが対応付けられてログイン情報テーブル32に記憶されているか否かを判定する。そして、認証部33は、記憶されている場合に認証を許可することを示す認証結果をユーザ端末10aに応答し、記憶されていない場合に認証を拒否することを示す認証結果をユーザ端末10aに応答する。このように、認証部33は、サービス提供システムを利用するユーザに対して、事前認証を実行する。
(管理サーバの構成)
図3に示すように、管理サーバ40は、送受信部41とクラウド対応テーブル42と認証情報テーブル43と認証情報提供部44とを有する。
送受信部41は、他の装置の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、送受信部41は、GW装置50から認証情報の取得要求を受信し、該当する認証情報を応答する。
クラウド対応テーブル42は、各サービス事業者のIDPサーバの情報を記憶する。クラウド対応テーブル42は、例えばメモリやハードディスク等の記憶装置に設けられる。図4は、管理サーバのクラウド対応テーブルに記憶される情報の例を示す図である。図4に示すように、クラウド対応テーブル42は、「IDP_URL、サービス事業者」を対応付けて記憶する。
ここで記憶される「IDP_URL」には、サービス事業者が有するIDPサーバのURL(Uniform Resource Locator)が設定される。また、「サービス事業者」には、サービス事業者の事業者名や識別子が設定される。図4の例では、「A社」のIDP_URLが「https://IDP1.com」であることを示す。
認証情報テーブル43は、サービス事業者ごとに設けられたテーブルであり、テナント内のユーザの認証情報を記憶する。認証情報テーブル43は、例えばメモリやハードディスク等の記憶装置に設けられる。図5は、管理サーバの認証情報テーブルに記憶される情報の例を示す図である。図5に示すように、認証情報テーブル43は、サービス事業者ごとに「テナントID、ユーザID、各社ID、各社パスワード」を対応付けた認証情報テーブル群を記憶する。認証情報テーブル43は、ユーザ等によってパスワードやユーザIDが変更されるたびに、管理者等によって更新される。
ここでA社を例にして、認証情報テーブル43に記憶される情報を説明する。「テナントID」には、サービス事業者のサービス提供を受けるテナントの識別情報が設定される。「ユーザID」には、テナントIDで示されるテナントに属するユーザの識別情報が設定される。「A社ID」には、サービス事業者AのIDPサーバに登録された、テナントのユーザIDが設定される。「A社パスワード」には、サービス事業者AのIDPサーバにおける認証用のパスワードが設定される。図5の例では、「tenantY」の属する「user001」は、「a_ID」かつ「a_PW」でサービス事業者AのIDPサーバに認証許可されることを示す。
認証情報提供部44は、認証情報の問い合わせに対して応答する処理部である。認証情報提供部44は、例えばCPUなどの電子回路でもよく、CPUが実行する処理部であってもよい。具体的には、認証情報提供部44は、GW装置50から認証情報の問い合わせを受信し、クラウド対応テーブル42や認証情報提供部44から該当する情報を取得して、GW装置50に応答する。例えば、認証情報提供部44は、テナント名、ユーザID、および少なくとも1つのIDPサーバのURLの組を含む問い合わせを受信する。そして、認証情報提供部44は、受信した問い合わせに含まれる情報の組み合わせに対応する情報をクラウド対応テーブル42や認証情報提供部44から取得して、GW装置50に応答する。
(GW装置の構成)
図3に示すように、GW装置50は、送受信部51と記憶部52と制御部53とを有する。記憶部52は、メモリやハードディスクなどの記憶装置である。制御部53は、CPUなどの電子回路や集積回路である。
送受信部51は、他の装置の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。この送受信部51は、外部の装置からメッセージ、パケット、データを受信して受付部54に出力する。また、送受信部51は、受付部54から出力されたメッセージ、パケット、データを宛先の外部装置に送信する。
記憶部52は、制御部53が実行するプログラムやデータを記憶する記憶装置であり、連携サービステーブル52aとアカウント管理テーブル52bとセッション管理テーブル52cとセッション維持テーブル52dとを有する。
連携サービステーブル52aは、サービスごとに、認証を受ける対象先のIDPサーバのURLを記憶する。この連携サービステーブル52aは、制御部53や管理者等によって更新される。図6は、GW装置の連携サービステーブルに記憶される情報の例を示す図である。図6に示すように、連携サービステーブル52aは、「テナントID、サービスURL、IDP_URL、連携先IDP_URL」を対応付けて記憶する。
ここで記憶される「テナントID」には、サービス要求メッセージを送信したユーザ端末を使用しているユーザが属するテナントのIDが設定される。「サービスURL」には、サービス要求メッセージの宛先であるAPサーバのURLが設定される。「IDP_URL」には、サービス要求メッセージの宛先であるAPサーバからサービスの提供を受けるユーザに対して、ユーザ認証を実行するIDPサーバのURLが設定される。「連携先IDP_URL」には、サービス要求メッセージの宛先であるAPサーバと連携した処理を実行する他のAPサーバから、サービスの提供を受けるユーザに対して、ユーザ認証を実行するIDPサーバのURLが設定される。
図6の1例では、「tenantY」に属するユーザから「https://service1.com」に対するサービス要求メッセージについては、連携元として「https://IDP1.com」が認証処理を実行し、連携先として「https://IDP2.com」が認証処理を実行することを示す。
図3に戻り、アカウント管理テーブル52bは、ユーザごとに、各サービスのIDPサーバで認証を受けるための認証情報を記憶する。このアカウント管理テーブル52bは、制御部53によって更新される。図7は、GW装置のアカウント管理テーブルに記憶される情報の例を示す図である。図7に示すように、アカウント管理テーブル52bは、「テナントID、ユーザID、サービスURL、IDP_URL、ID、PW」を対応付けて記憶する。
ここで記憶される「テナントID」には、サービス要求メッセージを送信したユーザ端末を使用しているユーザが属するテナントのテナントIDが設定される。「ユーザID」には、サービス要求メッセージを送信したユーザ端末を使用しているユーザのユーザIDが設定される。「サービスURL」は、サービスを提供するAPサーバのURLが設定される。「IDP_URL」は、認証を行ったIDPのURLが設定される。「ID」は、認証に使用されたユーザIDが設定される。「PW」には、認証に使用されたパスワードが設定される。
図7の1例では、「tenantY」に属する「user001」が「https://IDP1.com」において「a_ID、a_PW」で認証が許可されて、「https://service1.com」からサービスを提供されることを示す。同様に、「tenantY」に属する「user001」が「https://IDP2.com」において「b_ID、b_PW」で認証が許可されて、「https://service2.com」からサービスを提供されることを示す。
図3に戻り、セッション管理テーブル52cは、提供されているサービスのセッション情報を記憶する。このセッション管理テーブル52cは、は、サービスが提供されているセッションを管理するものであり、サービスが終了すると該当するサービスのセッション情報が削除される。図8は、GW装置のセッション管理テーブルに記憶される情報の例を示す図である。図8に示すように、セッション管理テーブル52cは、「ユーザセッションID、テナントID、ユーザID、サービスURL(連携元)、連携元セッションID、サービスURL(連携先)、連携先セッションID」を対応付けて記憶する。
ここで記憶される「ユーザセッションID」は、セッション管理テーブル52cのエントリすなわちセッション情報を識別する識別子が設定される。「テナントID」は、サービスを受けているユーザが属するテナントのテナントIDが設定される。「ユーザID」は、サービスを受けているユーザのユーザIDが設定される。「サービスURL(連携元)」は、ユーザからサービス要求を受信してユーザにサービスを提供しているAPサーバのURLが設定される。「連携元セッションID」は、サービスURL(連携元)に設定されるAPサーバがサービスの提供に使用するセッションを識別するセッション識別子が設定される。「サービスURL(連携先)」は、ユーザからサービス要求を受信したAPサーバと連携してユーザにサービスを提供しているAPサーバのURLが設定される。「連携先セッションID」は、サービスURL(連携先)に設定されるAPサーバがサービスの提供に使用するセッションを識別するセッション識別子が設定される。なお、各セッションは、各APサーバとGW装置50との間で確立されるセッションである。
図8の一例では、「tenantY」に属する「user001」は、「https://service1.com」が「yyyyy」で識別されるセッションを用いるとともに、「https://service2.com」が「zzzzz」で識別されるセッションを用いる状態で、サービスを受けていることを示す。
セッション維持テーブル52dは、ユーザがログアウトした際に、ユーザがサービスの提供を受けていたセッションに関する情報を記憶する。このセッション維持テーブル52dは、制御部53によって更新される。図9は、GW装置のセッション維持テーブルに記憶される情報の例を示す図である。図9に示すように、セッション維持テーブル52dは、「サービスURL、ID、セッションID、状態、連携先」を対応付けて記憶する。
ここで記憶される「サービスURL」は、ユーザにサービスを提供したAPサーバのURLが設定される。「ID」は、サービスの提供を受けたユーザのユーザIDが設定される。「セッションID」は、サービスの提供に使用されたセッションのセッションIDが設定される。「状態」は、ログイン状態であるかログアウト状態であるかが設定される。「連携先」は、ユーザへのサービスを他のAPサーバと連携して提供した場合に、当該他のAPサーバのURLが設定される。
図9の一例では、「https://service1.com」が、「https://service2.com」と連携したサービスを、「yyyyy」で識別されるセッションを用いて「a_ID」のユーザに提供し、現在も「a_ID」がログイン中であることを示す。同様に、「https://service2.com」が、「https://service1.com」と連携したサービスを、「zzzzz」で識別されるセッションを用いて「b_ID」のユーザに提供し、現在も「b_ID」がログイン中であることを示す。ここで、図8と図9とを比較してもわかるように、セッション維持テーブル52dには、ユーザからサービスを要求されたサービス連携元の情報と、サービス連携元から連携したサービスを要求されたサービス連携先の情報とがそれぞれ格納される。
図3に戻り、制御部53は、GW装置50全体の処理を司る処理部であり、受付部54と事前認証部55と問い合わせ部56と代理認証部57とセッション管理部58とを有する。
受付部54は、送受信部51によって受け付けられたメッセージの種別を判定し、該当する処理部に出力する処理部である。また、受付部54は、他の処理部が出力されたメッセージを、送受信部51を介して宛先に送信する処理部である。
例えば、受付部54は、受信されたメッセージのヘッダ等を参照し、当該メッセージがサービスを要求するリクエスト要求である場合には、当該メッセージを事前認証部55に出力する。また、受付部54は、受信されたメッセージがログアウト要求である場合には、当該メッセージをセッション管理部58に出力する。また、受付部54は、受信されたメッセージが認証要求によるリダイレクト要求、認証情報要求、アクセス許可要求である場合には、当該メッセージを代理認証部57に出力する。
事前認証部55は、ユーザに対して事前認証を実行する処理部である。具体的には、事前認証部55は、アクセスしてきたユーザ端末がログイン状態であるか否かを判定し、ログイン状態でない場合に、ログイン処理に移行させる。例えば、事前認証部55は、受付部54から入力されたサービス要求メッセージが認証済みであるか否かを判定する。そして、事前認証部55は、サービス要求メッセージが認証済みでない場合、すなわち、ログイン中でないユーザである場合、IDPサーバ30による認証処理に移行させるメッセージを、要求元のユーザ端末に送信する。
なお、事前認証部55は、ユーザがIDPサーバ30において正しく認証された場合に、そのユーザが正しく認証されたことを示す情報をIDPサーバ30から取得する。ユーザが正しく認証されたことを示す情報とは、認証が許可されたユーザIDやパスワードなどである。なお、この情報は、例えばサービスを要求するユーザ端末からの再度のサービス要求メッセージに含まれる。このとき、暗号化をしていてもよい。また、IDPサーバ30は、OpenIDなどの認証システムを利用することもできる。
問い合わせ部56は、アカウント管理テーブル52bを生成するために用いる認証情報を管理サーバ40に問い合わせる処理部である。例えば、問い合わせ部56は、事前認証部55から未認証のサービス要求メッセージが入力されると、管理サーバ40に認証情報を問い合わせて、その応答結果からアカウント管理テーブル52bのエントリを生成する。
一例を挙げると、問い合わせ部56は、「テナントID、ユーザID、サービスURL」を含んだサービス要求メッセージを受信する。すると、問い合わせ部56は、連携サービステーブル52aから、受信した「テナントID、サービスURL」に対応する「IDP_URL、連携先IDP_URL」を特定する。そして、問い合わせ部56は、受信した「テナントID、ユーザID」とともに、特定した「IDP_URL、連携先IDP_URL」とを含んだ認証情報の問い合わせ要求を管理サーバ40に送信する。
そして、管理サーバ40の認証情報提供部44では、受信した「IDP_URL、連携先IDP_URL」に対応する認証情報テーブルを認証情報テーブル43から特定する。続いて、認証情報提供部44は、各認証情報テーブル43から、受信した「テナントID、サービスURL」に対応する「ID、パスワード」を特定して、GW装置50に応答する。
その後、問い合わせ部56は、「テナントID、ユーザID、サービスURL、IDP_URL、ID、パスワード(PW)」を対応付けたエントリを生成して、アカウント管理テーブル52bに格納する。このとき、問い合わせ部56は、ユーザから受信したサービス要求メッセージに含まれるサービスURLに対応する連携先IDP_URLが存在する場合、サービス連携元とサービス連携先のそれぞれについてエントリを生成する。なお、問い合わせ部56は、サービス連携先のURLについては、管理サーバ40から受信した連携先IDP_URLをキーにして、連携サービステーブル52aから特定することができる。
図3に戻り、代理認証部57は、各サービス事業者が実行するユーザ認証を、ユーザ端末に代わって対応する処理部である。すなわち、代理認証部57は、ユーザ端末の代理認証を実行する処理部である。具体的には、代理認証部57は、サービス事業者のIDPサーバから送信された認証情報の問い合わせに対して、該当するIDとPWとを応答する。
例えば、代理認証部57は、サービス事業者(A社)60のIDPサーバ60aから認証情報を要求された場合、当該要求からIDPサーバ60aのIDP_URL「https://IDP1.com」を特定する。そして、代理認証部57は、特定したIDP_URL「https://IDP1.com」をキーにしてアカウント管理テーブル52bを検索し、ID「a_ID」とPW「a_PW」を抽出する。その後、代理認証部57は、サービス事業者(A社)60のIDPサーバ60aに対して、認証情報としてID「a_ID」とPW「a_PW」とを応答する。
セッション管理部58は、ログイン時のセッション情報を管理し、ログアウト後の所定時間セッションを維持する処理部である。具体的には、セッション管理部58は、ユーザがログインしてサービスを提供されている間、当該サービスに関する各種情報を収集してエントリを生成して、セッション管理テーブル52cに格納する。そして、セッション管理部58は、ユーザがログアウトを実行する場合に、当該ユーザにサービスを提供しているサービス連携元とサービス連携先各々のセッション情報を、セッション管理テーブル52cとアカウント管理テーブル52bから取得してセッション維持テーブル52dに格納する。その後、セッション管理部58は、セッション維持テーブル52dで管理されるユーザが再度ログインした場合には、維持するセッションによるサービス提供を各サービス事業者のAPサーバに依頼する。
つまり、セッション管理部58は、セッション維持テーブル52dで管理されるユーザが再度ログインした場合に、代理認証部57による代理認証を省略して、当該ユーザにサービスを提供させる。
ここで、セッション管理部58が、ログイン中のユーザがサービスの提供を受けている際に、セッション管理テーブル52cのエントリを生成する処理を説明する。例えば、セッション管理部58は、「テナントID」と「ユーザID」と「サービスURL(連携元)」とを、アカウント管理テーブル52bから取得する。また、セッション管理部58は、「連携元セッションID」について、サービスURL(連携元)に該当するAPサーバからユーザ端末へ送信されたパケットや、当該APサーバとGW装置50との間に確立されたセッションから取得する。
また、セッション管理部58は、「サービスURL(連携先)」については、「サービスURL(連携元)」をキーにして連携サービステーブル52aを検索することで取得できる。また、セッション管理部58は、「連携先セッションID」については、サービスURL(連携先)に該当するAPサーバからユーザ端末へ送信されたパケットや、当該APサーバとGW装置50との間に確立されたセッションから取得する。
そして、セッション管理部58は、上記情報を対応付けたエントリをセッション管理テーブル52cに格納する。なお、セッション管理部58は、当該エントリを識別する情報として、当該エントリに任意の「ユーザセッションID」を割当てる。
次に、セッション管理部58が、ログアウトを要求したユーザに対して、セッション維持テーブル52dのエントリを生成する処理を説明する。セッション管理部58は、連携元と連携先との両方について、セッション維持テーブル52dのエントリを生成する。つまり、連携元と連携先との関係は、一方からみた場合の関係であり、双方からみた場合には両方が連携元にも連携先にもなる。具体的には、ユーザ端末がサービス事業者(A社)にサービス要求を送信し、A社のAPサーバがB社のAPサーバと連携してサービスを提供したとする。この場合、A社から見れば、自社のAPサーバが連携元で、B社のAPサーバが連携先となる。一方、この場合であっても、B社から見れば、自社のAPサーバが連携元で、A社のAPサーバが連携先となる。このため、セッション管理部58は、連携元と連携先との両方について、エントリを生成する。この結果、GW装置50は、サービス間連携で利用された各セッションを維持することができる。
サービス提供元ついて一例を説明する。セッション管理部58は、ログアウトを要求したユーザ端末10aを使用するユーザのユーザIDに対応するエントリを、セッション管理テーブル52cから特定する。続いて、セッション管理部58は、特定したエントリの「サービスURL(連携元)」、「連携元セッションID」、「サービスURL(連携先)」を、「サービスURL」、「セッションID」、「連携先」のそれぞれに格納する。また、セッション管理部58は、「ID」ついては、「サービスURL」に対応付けてアカウント管理テーブル52bに記憶される「ユーザID」を格納する。なお、この「ID」は、「サービスURL(連携元)」に対応付けてアカウント管理テーブル52bに記憶される「ユーザID」、つまりログアウトを要求した「ユーザID」でもよい。そして、セッション管理部58は、取得した上記情報とログイン状態とを対応付けたエントリをセッション維持テーブル52dに格納する。
次に、サービス提供先ついて一例を説明する。セッション管理部58は、ログアウトを要求したユーザ端末10aを使用するユーザのユーザIDに対応するエントリを、セッション管理テーブル52cから特定する。続いて、セッション管理部58は、特定したエントリの「サービスURL(連携先)」、「連携先セッションID」、「サービスURL(連携元)」を、「サービスURL」、「セッションID」、「連携先」のそれぞれに格納する。また、セッション管理部58は、「ID」ついては、「サービスURL」に対応付けてアカウント管理テーブル52bに記憶される「ユーザID」を格納する。なお、この「ID」は、「サービスURL(連携先)」に対応付けてアカウント管理テーブル52bに記憶される「ユーザID」、つまりログアウトを要求した「ユーザID」でもよい。そして、セッション管理部58は、取得した上記情報とログイン状態とを対応付けたエントリをセッション維持テーブル52dに格納する。
[処理の流れ]
次に、実施例2に係るGW装置50が実行する処理の流れを説明する。ここでは、全体的な流れ、メッセージによって実行される各処理の流れを説明する。
(全体的な流れ)
図10は、実施例2に係るGW装置が実行する処理の流れを示すフローチャートである。図10に示すように、GW装置50の送受信部51がサービス要求メッセージを受信すると(S101)、受付部54は、受信されたサービス要求メッセージの種別を判定する(S102)。
受付部54がサービス要求メッセージをリクエスト要求と判定した場合、事前認証部55等は、サービスリクエスト処理を実行する(S103)。また、受付部54がサービス要求メッセージをログアウト要求と判定した場合、セッション管理部58は、ログアウト処理を実行する(S104)。
また、受付部54がサービス要求メッセージを認証要求によるリダイレクト要求と判定した場合、代理認証部57等は、認証要求処理を実行する(S105)。また、受付部54がサービス要求メッセージを認証情報要求と判定した場合、代理認証部57等は、認証情報応答処理を実行する(S106)。
また、受付部54がサービス要求メッセージをアクセス許可判断要求と判定した場合、代理認証部57等は、アクセス判定結果を要求元に送出する(S107)。すなわち、代理認証部57等は、キャッシュしておいたOAuth codeを含むアクセス許可要求メッセージを生成し、受付部54と送受信部51とを介して要求元に送信する。
また、受付部54がサービス要求メッセージを認証またはアクセス許可終了時のリダイレクト要求と判定した場合、受付部54等は、リダイレクトを送出する(S108)。すなわち、受付部54等は、受信したメッセージのリダイレクト指示にしたがって、リダイレクトでメッセージを送信する。例えば、受付部54等は、メッセージが認証成功を示す認証結果メッセージであれば、リダイレクト指示にしたがって、認証済みのサービス要求メッセージとして認証結果をリダイレクト先に送信する。また、受付部54等は、メッセージが認証成功の認証結果メッセージであれば、リダイレクト指示にしたがって、許可完了通知メッセージとして認証結果をリダイレクト先に送信する。
また、受付部54がサービス要求メッセージをサービス応答と判定した場合、制御部53は、連携サービス登録処理を実行する(S109)。
(サービスリクエスト処理)
図11は、実施例2に係るGW装置が実行するサービスリクエスト処理の流れを示すフローチャートである。図11に示すように、事前認証部55は、受信されたリクエスト要求が認証済みであるか否かを判定する(S201)。例えば、事前認証部55は、リクエスト要求に認証済みであることを示す識別子等が含まれている場合に、認証済みであると判定する。なお、この識別子は、認証処理を実行したIDPサーバによって付加される。
続いて、リクエスト要求が認証済みであると判定された場合(S201Yes)、セッション管理部58は、当該リクエスト要求を送信したユーザのユーザ識別子がセッション管理テーブル52cに記憶されているか否かを判定する(S202)。つまり、セッション管理部58は、リクエスト要求元のユーザがログイン中であるか否かを判定する。例えば、セッション管理部58は、リクエスト要求に含まれるユーザIDが、セッション管理テーブル52cに存在する場合に、ユーザがログイン中であると判定する。
そして、リクエスト要求を送信したユーザのユーザ識別子がセッション管理テーブル52cに記憶されていないと判定された場合(S202No)、代理認証部57は、S203を実行する。つまり、代理認証部57は、セッションが確立されていないと判定した場合、S203を実行する。具体的には、代理認証部57は、受信されたメッセージに含まれる「テナントID、サービスURL」の組に対応するエントリが、連携サービステーブル52aに記憶されているか否かを判定する。そして、代理認証部57は、該当するエントリが存在する場合には、当該エントリから「IDP_URL」と「連携先IDP_URL」を抽出する。その後、代理認証部57は、「テナントID、サービスURL、IDP_URL」と「テナントID、サービスURL、連携先IDP_URL」とを認証情報候補として生成し、認証情報が存在すると判定する。
続いて、代理認証部57は、認証情報が存在すると判定した場合(S203Yes)、アカウント管理テーブル52bに当該認証情報が登録されているか否かを判定する(S204)。すなわち、代理認証部57は、S203で生成した「テナントID、サービスURL、IDP_URL」と「テナントID、サービスURL、連携先IDP_URL」の各々に対応するエントリがアカウント管理テーブル52bに存在するか否かを判定する。なお、認証情報が存在しないと判定された場合(S203No)、GW装置50は、S204を実行することなく、S205を実行する。
そして、代理認証部57は、両方の組に対応するエントリが存在すると判定した場合(S204Yes)、「テナントID、ユーザID」および「サービスURL」をキャッシュデータとして保持する(S205)。具体的には、代理認証部57は、受信されたメッセージから「テナントID、ユーザID」を取得する。さらに、代理認証部57は、取得した「テナントID、ユーザID」に対応する「サービスURL」をアカウント管理テーブル52b等から取得する。そして、代理認証部57は、「テナントID、ユーザID、サービスURL」をキャッシュデータとして保持する。
一方、代理認証部57が両方の組に対応するエントリまたはいずれかの組に対応するエントリが存在しないと判定した場合(S204No)、問い合わせ部56は、S206を実行する。具体的には、問い合わせ部56は、対応するエントリが存在しないと判定された上記組を含む問い合わせメッセージを管理サーバ40に送信し、その応答としてIDとパスワードとを含む認証情報を受信する。例えば、問い合わせ部56は、「テナントID、サービスURL、IDP_URL」を管理サーバ40に送信する。管理サーバ40では、受信した組に対応付けられた「ID、パスワード」を、認証情報テーブル43から取得してGW装置50に応答する。そして、問い合わせ部56は、送信した「テナントID、サービスURL、IDP_URL」に、受信した「ID、パスワード」を対応付けて、アカウント管理テーブル52bに格納する。その後、S205が実行される。
その後、セッション管理部58は、メッセージを送信したユーザのユーザIDがセッション維持テーブル52dに記憶されているか否かを判定する(S207)。例えば、セッション管理部58は、S203で生成された「テナントID、ユーザID、サービスURL」またはS202で抽出された「テナントID、サービスURL」に対応する「ID」をアカウント管理テーブル52bから特定する。そして、セッション管理部58は、特定した「ID」がセッション維持テーブル52dに記憶されているか否かを判定する。このとき、セッション管理部58は、「サービスURL」の一致をさらに判定してもよい。
そして、セッション管理部58によって、ユーザIDがセッション維持テーブル52dに記憶されていないと判定した場合(S207No)、代理認証部57は、サービス要求を送出する(S208)。例えば、代理認証部57は、S205でキャッシュした「サービスURL」すなわちサービス要求メッセージに含まれる「サービスURL」に対して、サービス要求を送信する。
一方、セッション管理部58は、ユーザIDがセッション維持テーブル52dに記憶されていると判定した場合(S207Yes)、セッション情報を付加してサービス要求を送出する(S209)。例えば、セッション管理部58は、ユーザIDに対応付けられる「セッションID」を用いて接続されるサービス連携元のAPサーバにサービスを要求する。このとき、セッション管理部58は、当該「セッションID」に対応する「連携先」をセッション維持テーブル52dから特定し、さらに、当該「連携先」に対応する「セッションID」を特定する。そして、セッション管理部58は、特定した「セッションID」すなわち「連携先のセッションID」、を用いて接続されるサービス連携先と連携したサービスの提供を要求する。
また、S202において、代理認証部57によって、リクエスト要求を送信したユーザのユーザ識別子がセッション管理テーブル52cに記憶されていると判定された場合(S202Yes)、セッション管理部58は、S209を実行する。つまり、セッション管理部58は、セッションが確立されていると判定した場合、S209を実行する。
また、S201において、リクエスト要求が認証済みでないと判定された場合(S201No)、事前認証部55は、S210を実行する。具体的には、事前認証部55は、サービス要求メッセージの要求元のユーザ端末に、認証要求メッセージを応答する。例えば、事前認証部55は、認証要求メッセージを生成し、受付部54に出力する。受付部54は、入力された認証要求メッセージを、送受信部51を介して宛先のユーザ端末に送信する。なお、S208、S209、S210が実行されると、GW装置50は、サービスリクエスト処理を終了する。
(ログアウト処理)
図12は、実施例2に係るGW装置が実行するログアウト処理の流れを示すフローチャートである。図12に示すように、セッション管理部58は、ログアウト要求が受信された場合に、ログアウトを依頼したユーザが使用しているセッションを維持するか否かを判定する(S301)。
例えば、セッション管理部58は、ログアウト要求からユーザIDを抽出し、当該ユーザIDに対応するサービスURLをセッション管理テーブル52cから特定する。そして、セッション管理部58は、特定したサービスURLによって提供されるサービスの種別によってセッションを維持するか否かを判定する。一例を挙げると、セッション管理部58は、サービス種別がダウンロードサービスである場合には、維持すると判定して、サービス種別がデータ格納サービスである場合には、破棄するなどと判定する。
そして、セッション管理部58は、セッションを維持すると判定した場合(S301Yes)、セッション維持テーブル52dにセッション情報を登録する(S302)。
例えば、セッション管理部58は、ログアウト要求から抽出したユーザIDに対応するエントリをセッション管理テーブル52cから特定する。そして、セッション管理部58は、特定したエントリの情報等を用いて、セッション維持テーブル52dにエントリを格納する。
その後、セッション管理部58は、ログアウト要求から抽出したユーザIDに対応するエントリをセッション管理テーブル52cから削除する(S303)。また、S301において、セッション管理部58は、ログアウトを依頼したユーザが使用しているセッションを維持しないと判定した場合(S301No)、S303を実行する。なお、S303が実行されると、GW装置50は、ログアウト処理を終了する。
(認証要求処理)
図13は、実施例2に係るGW装置が実行する認証要求処理の流れを示すフローチャートである。
図13に示すように、代理認証部57は、リダイレクトを伴う認証要求メッセージが受信された場合、当該メッセージにOAuth codeが含まれているか否かを判定する(S401)。例えば、代理認証部57は、認証要求メッセージにOAuth codeが含まれているか否かを判定し、OAuth codeを含む認証要求メッセージは、OAuthにおける許可要求メッセージに該当する。
そして、代理認証部57は、認証要求メッセージにOAuth codeが含まれていると判定した場合(S401Yes)、サービス間連携と判断し、OAuth codeとリダイレクト先とを保持する(S402)。例えば、代理認証部57は、OAuth codeとリダイレクト先のURLである連携先IDPサーバのURLとを保持する。
一方、代理認証部57は、認証要求メッセージにOAuth codeが含まれていないと判定した場合(S401No)、リダイレクト先のURLである連携元IDPサーバのURLを、当該メッセージから取得して保持する(S403)。
S402とS404を実行した後、代理認証部57は、サービスを利用するための認証処理が未認証であることから、当該メッセージを指示されたリダイレクトで、該当するIDPサーバに送信する(S404)。なお、S404が実行されると、GW装置50は、認証要求処理を終了する。
(認証情報応答処理)
図14は、実施例2に係るGW装置が実行する認証情報応答処理の流れを示すフローチャートである。
図14に示すように、GW装置50の代理認証部57は、認証情報要求を示すサービス要求メッセージが受信された場合、要求された認証情報を保持するか否かを判定する(S501)。例えば、代理認証部57は、要求された「テナントID、ユーザID、IDPのURL」の組がアカウント管理テーブル52bに記憶されているか否かを判定する。
そして、代理認証部57が認証情報を保持していないと判定した場合(S501No)、問い合わせ部56が、要求された認証情報を管理サーバ40に問い合わせ、代理認証部57が、問い合わせて得られた認証情報を保持させる(S502)。例えば、問い合わせ部56は、要求された「テナントID、ユーザID、IDPのURL」を管理サーバ40に問い合わせて、「テナントID、ユーザID、IDPのURL」とともに、この情報に対応する「ID、パスワード」を管理サーバ40から取得する。なお、ここでの「ID、パスワード」は、認証情報テーブル43上では、各社のIDと各社のパスワードに該当する。そして、代理認証部57は、取得された「テナントID、ユーザID、IDPのURL」と「ID、パスワード」とを対応付けて、アカウント管理テーブル52bに格納する。
その後、代理認証部57は、認証情報要求元に認証情報を送出する(S503)。例えば、代理認証部57は、要求された「テナントID、ユーザID、IDPのURL」に対応するエントリをアカウント管理テーブル52bから特定する。そして、代理認証部57は、受付部54と送受信部51とを介して、特定したエントリ内の「ID、PW」を要求元に送出する。
(連携サービス登録処理)
図15は、実施例2に係るGW装置が実行する連携サービス登録処理の流れを示すフローチャートである。
図15に示すように、GW装置50の制御部53は、サービス応答を示すサービス要求メッセージが受信された場合、受信したサービス応答を送信元に送信する(S601)。例えば、制御部53の受付部54は、送受信部51を介して、受信されたサービス要求メッセージに対する応答として、サービス応答を送信元に送信する。
続いて、制御部53は、連携サービステーブル52aへの格納対象となるエントリを作成する(S602)。例えば、制御部53は、代理認証部57が保持しているキャッシュデータから、「テナントID、サービスURL、連携元IDPのURL、連携先IDPのURL」を取得し、この組を1つのエントリ候補とする。
そして、制御部53は、エントリ候補と同一のエントリが連携サービステーブル52a内に存在するか否かを判定する(S603)。例えば、制御部53は、S602で生成した「テナントID、サービスURL、連携元IDPのURL、連携先IDPのURL」の組が連携サービステーブル52aに記憶されているか否かを判定する。
その後、制御部53は、エントリ候補と同一のエントリが連携サービステーブル52a内に存在すると判定した場合(S603Yes)、代理認証部57が保持していたキャッシュを削除する(S604)。
一方、制御部53は、エントリ候補と同一のエントリが連携サービステーブル52a内に存在しないと判定した場合(S603No)、S602で生成したエントリ候補を新たなエントリとして連携サービステーブル52aに登録する(S605)。
[シーケンス]
次に、実施例2に係るサービス提供システム全体の処理シーケンスを説明する。ここでは、ユーザが初めてログインした場合のシーケンス、ログイン中からログアウトまでのシーケンス、ログアウト後に再ログインした場合のシーケンスについて説明する。
(初回ログイン)
図16と図17は、実施例2に係るサービス提供システムにおける初回ログイン時の処理シーケンス図である。図16に示すように、ユーザ端末10aは、ユーザの指示操作によって、事前認証が未認証の状態でAPサーバ70b「https://service1.com」にサービス要求メッセージを送信する(S701)。ただし、このメッセージはGW装置50に受信される。
そして、GW装置50の事前認証部55は、受信されたサービス要求メッセージを未認証と判定する(S702)。例えば、事前認証部55は、事前認証が終了していることを示す識別子等がサービス要求メッセージに含まれていないことから、未認証と判定する。
続いて、GW装置50の事前認証部55は、ユーザ端末10aを介するリダイレクト指示を含めた認証要求をIDPサーバ30に送信する(S703)。IDPサーバ30は、認証要求をリダイレクトさせたユーザ端末10aに、認証画面を応答する(S704)。
ユーザ端末10aは、IDPサーバ30から受信した認証画面に対してユーザが入力したIDとパスワードとを認証情報として、IDPサーバ30に応答する(S705)。IDPサーバ30の認証部33は、ユーザ端末10aから受信した認証情報がログイン情報テーブル32に記憶されているか否かを判定するユーザ認証処理を実行する(S706)。なお、ここでは、認証情報がログイン情報テーブル32に記憶されているものとする。
そして、IDPサーバ30の認証部33は、認証を許可したことを示す認証結果をユーザ端末10aに送信する(S707)。この認証結果を受信したユーザ端末10aは、APサーバ60b「https://service1.com」にサービス要求メッセージを送信する(S708)。このとき、ユーザ端末10aは、事前認証済みであることを示す識別子を付与して送信する。ただし、ここで送信されたメッセージは、GW装置50に受信される。
このメッセージを受信したGW装置50の事前認証部55が認証済みと判定し、問い合わせ部56が、認証情報を管理サーバ40に問い合わせて、該当する認証情報を取得する(S709)。
例えば、代理認証部57は、サービス要求メッセージから「サービスURL(https://service1.com)、ユーザID(user001)、テナントID(tenantY)」を取得する。そして、代理認証部57は、取得した「サービスURL(https://service1.com)、テナントID(tenantY)」に対応する「IDP_URL(https://IDP1.com)」と「連携先IDP_URL(https://IDP2.com)」とを連携サービステーブル52aから取得する。ここで、代理認証部57は、これまでに取得した「https://service1.com、user001、tenantY、https://IDP1.com」のエントリと「https://service1.com、user001、tenantY、https://IDP2.com」のエントリとをアカウント管理テーブル52bに生成する。そして、問い合わせ部56は、取得された「https://service1.com、user001、tenantY、https://IDP1.com」の認証情報および「https://service1.com、user001、tenantY、https://IDP2.com」の認証情報を管理サーバ40に問い合わせる。
管理サーバ40の認証情報提供部44は、受信した「https://IDP1.com」と「https://IDP2.com」各々に対応する各サービス事業者をクラウド対応テーブル42から検索する。そして、認証情報提供部44は、検索したサービス事業者(A社)の認証情報テーブルを用いて、GW装置50から受信した「user001、tenantY」に対応する「A社ID(a_ID)、A社パスワード(a_PW)」を特定する。同様に、認証情報提供部44は、検索したサービス事業者(B社)の認証情報テーブルを用いて、GW装置50から受信した「user001、tenantY」に対応する「B社ID(b_ID)、B社パスワード(b_PW)」を特定する。その後、認証情報提供部44は、特定した「A社ID(a_ID)、A社パスワード(a_PW)」と「B社ID(b_ID)、B社パスワード(b_PW)」とを、GW装置50に応答する。
そして、GW装置50の問い合わせ部56は、管理サーバ40から「A社ID(a_ID)、A社パスワード(a_PW)」と「B社ID(b_ID)、B社パスワード(b_PW)」とを取得する。すると、代理認証部57は、アカウント管理テーブル52bに先ほど生成したサービス提供元「https://service1.com」のエントリに、「A社ID(a_ID)、A社パスワード(a_PW)」を格納する。同様に、代理認証部57は、アカウント管理テーブル52bに先ほど生成したサービス提供先「https://service2.com」のエントリに、「B社ID(b_ID)、B社パスワード(b_PW)」を格納する。
図16に戻り、GW装置50の代理認証部57は、ユーザ端末10aから受信したサービス提供メッセージの宛先であるAPサーバ60bに、当該メッセージを転送する(S710)。
このメッセージを受信したAPサーバ60bは、サービス要求メッセージを未認証と判定し、送信元のGW装置50を介するリダイレクト指示を含めた認証要求をIDPサーバ60aに送信する(S711)。IDPサーバ60aは、認証要求をリダイレクトさせたGW装置50に、認証画面を応答する(S712)。
GW装置50は、受信した認証画面に対して応答として、該当する認証情報をIDPサーバ60aに応答する(S713)。例えば、代理認証部57は、「テナントID(tenantY)、ユーザID(user001)」を含むサービス要求メッセージの応答として認証画面を受信することから、認証対象となっている「テナントID(tenantY)、ユーザID(user001)」を特定できる。また、代理認証部57は、認証画面のURL等から認証を要求するサーバのURL、すなわちサービスURL「https://service1.com」を特定する。そして、代理認証部57は、「テナントID(tenantY)、ユーザID(user001)、サービスURL「https://service1.com」に対応する「a_ID、a_PW」をアカウント管理テーブル52bから特定し、IDPサーバ60aに応答する。
IDPサーバ60aは、GW装置50から受信した認証情報を記憶しているか否かによって、正当なユーザであるか否かを判定するユーザ認証処理を実行する(S714)。なお、ここでは、IDPサーバ60aは、正当なユーザであると判定したとする。
そして、IDPサーバ60aは、認証を許可したことを示す認証結果をGW装置50に送信する(S715)。この認証結果を受信したGW装置50は、APサーバ60b「https://service1.com」にサービス要求メッセージを送信する(S716)。
その後、APサーバ60bは、サービス要求メッセージの内容を解析し、APサーバ70bとの連携処理であることを認識する。
すると、APサーバ60bは、GW装置50を介するリダイレクト指示を含めるとともに、受信したOAuth codeを含む許可要求メッセージを、ネットワーク事業者B社のIDPサーバ70aに送信する(S717)。この際、OAuth codeは、HTTP(HyperText Transfer Protocol)形式の応答メッセージに含めることができる。なお、GW装置50は、許可要求メッセージに応じてIDPサーバ70aの代理認証を実施するので、ここでは、許可要求メッセージは認証要求メッセージの一種である。
そして、IDPサーバ70aは、OAuth codeを含む許可要求メッセージを受信し、その応答として認証画面を、リダイレクト元のGW装置50に応答する(S718)。
続いて、図17に示すように、GW装置50は、受信した認証画面に対して応答として、該当する認証情報をIDPサーバ70aに応答する(S801)。例えば、代理認証部57は、「テナントID(tenantY)、ユーザID(user001)」を含むサービス要求メッセージの応答として認証画面を受信することから、認証対象となっている「テナントID(tenantY)、ユーザID(user001)」を特定できる。また、代理認証部57は、認証画面のURL等から認証を要求するサーバのURL、すなわちサービスURL「https://service2.com」を特定する。そして、代理認証部57は、テナントID(tenantY)、ユーザID(user001)、サービスURL「https://service2.com」に対応する「b_ID、b_PW」をアカウント管理テーブル52bから特定し、IDPサーバ70aに応答する。
IDPサーバ70aは、GW装置50から受信した認証情報を記憶しているか否かによって、正当なユーザであるか否かを判定するユーザ認証処理を実行する(S802)。なお、ここでは、IDPサーバ70aは、正当なユーザであると判定したとする。そして、IDPサーバ70aは、アクセス許可画面データをGW装置50に送信する(S803)。アクセス許可画面データは、例えばAPサーバ60bがアクセスするドキュメントデータの内容と条件を示し、アクセス許可してよいか否かの判断を促す画面のデータである。なお、この画面データがアクセス許可判断要求となる。
この画面を受信したGW装置50の代理認証部57は、OAuth codeを含むアクセス許可要求メッセージをIDPサーバ70aに送信する(S804)。なお、アクセス許可要求メッセージは、アクセス許可画面データに示される内容を許可してよいかどうかを問い合わせるメッセージである。
その後、IDPサーバ70aは、認証処理を実行する(S805)。そして、IDPサーバ70aは、GW装置50を介したリダイレクト指示を含んだ、認証を許可したことを示す認証結果メッセージをAPサーバ60bに応答する(S806)。例えば、IDPサーバ70aは、GW装置50によってアクセスが許可された場合に、アクセス許可を示すOAuth codeを含む認証結果メッセージをAPサーバ60bに送信する。
認証結果メッセージを受信したGW装置50の代理認証部57は、アクセス許可を示すOAuth codeを含む許可完了通知を、リダイレクト先のAPサーバ60bに送信する(S807)。
許可完了通知を受信したAPサーバ60bは、IDPサーバ70aに対してアクセストークン要求を送信する(S808)。なお、アクセストークン要求には、アクセス許可を示すOAuth codeが含まれる。
そして、IDPサーバ70aは、アクセストークン要求を受信すると、アクセス許可を示すOAuth codeが含まれていることを確認後、アクセストークン応答をAPサーバ60bに応答する(S809)。なお、アクセストークン応答には、データ取得のAPIを示すアクセストークン(A_token)が含まれる。
APサーバ60bは、アクセストークン応答を受信すると、アクセストークンに含まれるデータ取得のAPIを用いたデータ要求を、APサーバ70bに送信する(S810)。APサーバ70bは、受信したデータ要求にしたがって、該当するデータをAPサーバ60bに応答する(S811)。
APサーバ60bは、APサーバ70bから受信したデータに対して、所定の処理を実行して得られたデータを、GW装置50に送信する(S812)。GW装置50は、APサーバ60bから受信したデータをユーザ端末10aに応答する(S813)。例えば、APサーバ60bは、APサーバ70bから受信したドキュメントデータを印刷データに変換し、GW装置50を介して、印刷データをユーザ端末10aに応答する。
また、GW装置50のセッション管理部58は、ユーザ端末10aにサービスを提供しているセッションの情報を収集して、セッション管理テーブル52cに格納する(S514)。具体的には、セッション管理部58は、GW装置50とAPサーバ60bとの間のセッション情報と、GW装置50とAPサーバ70bとの間のセッション情報と、これらのセッション情報の関係性とを収集する。
例えば、セッション管理部58は、アカウント管理テーブル52bを参照することで、どのテナントのどのユーザが、どのサービスURLにアクセスしているかを特定できる。また、セッション管理部58は、連携サービステーブル52aを参照することで、特定したサービスURLがいずれのURLと連携しているかを特定することができる。また、セッション管理部58は、現在確立されているセッションやGW装置50と他サーバとの間で送受信されたWeb画面におけるCookieから、セッションを識別するセッションIDを特定できる。そして、セッション管理部58は、上記特定した各情報を関連付けたエントリを生成して、セッション管理テーブル52cに格納する。
このようにして、GW装置50は、連携サービスを行う複数のAPサーバの機能を使用するための代理認証の手続きを実施することができる。しかも、GW装置50は、代理認証に用いられる複数の認証情報を、管理サーバ40から一括して取得することができる。
(ログイン中からログアウトまで)
図18は、実施例2に係るサービス提供システムにおけるログイン中からログアウトまでの処理シーケンス図である。
ログイン中のユーザ端末10aは、ログイン中のセッションを示すセッションID=xxxxxを含めたサービス要求をAPサーバ70b「https://service1.com」に送信する(S901)。ただし、このメッセージはGW装置50に受信される。
そして、GW装置50の事前認証部55は、受信されたサービス要求メッセージを認証済みと判定する(S902)。例えば、事前認証部55は、サービス要求メッセージを受信したWebページを利用する場合のCookieに含まれる「xxxxx」がログイン中のセッションであることから、事前認証済みと判定する。また、事前認証部55は、サービス要求メッセージに含まれる「テナントID、ユーザID」がセッション管理テーブル52cに登録されていることから、事前認証済みと判定することもできる。
そして、GW装置50の代理認証部57は、S716と同様、APサーバ60b「https://service1.com」にサービス要求メッセージを送信する(S903)。例えば、代理認証部57は、サービス要求メッセージに含まれる「テナントID、ユーザID」に対応する「サービスURL(連携元)」と「連携元セッションID」とを、セッション管理テーブル52cから特定する。そして、代理認証部57は、特定した「連携元セッションID」で識別されるセッションを用いて、「サービスURL(連携元)= https://service1.com」に、サービス要求メッセージを送信する。
その後のS904からS907までの処理は、図17で説明したS810からS813までと同様の処理なので、詳細な説明は省略する。
サービスを利用したユーザ端末10aは、ユーザの指示操作によって、ログアウト要求をAPサーバ70b「https://service1.com」に送信する(S908)。ただし、このメッセージはGW装置50に受信される。また、このログアウト要求のcookieには、セッションID=yyyyyが含まれる。
ログアウト要求を受信したGW装置50のセッション管理部58は、ユーザ端末10aがサービスの提供を受けているセッション情報をセッション維持テーブル52dに登録した後(S909)、ログアウトを実行する(S910)。例えば、セッション管理部58は、ユーザ端末10aの「テナントID、ユーザID」に対応付けられる「サービスURL(連携元)、連携元セッションID、サービスURL(連携先)、連携先セッションID」をセッション維持テーブル52dに登録する。
(再ログイン時)
図19は、実施例2に係るサービス提供システムにおける再ログイン時の処理シーケンス図である。図19に示すように、S1001からS1008までの処理は、図16のS701からS708までの処理と同様であるので、詳細な説明は省略する。
認証済みのサービス要求メッセージを受信したGW装置50の事前認証部55が認証済みと判定し、セッション管理部58は、セッション維持テーブル52dからセッション情報を検出する(S1009)。
例えば、セッション管理部58は、サービス要求メッセージに含まれる「テナントID、ユーザID、サービスURL」を抽出する。続いて、セッション管理部58は、抽出した「テナントID、ユーザID、サービスURL」に対応するエントリをアカウント管理テーブル52bから検索し、「ID、PW」を特定する。そして、セッション管理部58は、抽出した「テナントID、サービスURL」および特定した「ID」の組に対応するエントリをセッション維持テーブル52dから検索し、「セッションID、連携先」を特定する。その後、セッション管理部58は、セッションIDで識別されるセッションを用いて、抽出した「サービスURL」に対して「連携先」と連携したサービスを要求する(S1010)。
その後のS1011からS1014の処理は、図17のS810からS813までの処理と同様であるので、詳細な説明は省略する。
このように、実施例2に係るサービス提供システムでは、GW装置50がユーザ端末に代わって、各APサーバへの認証を代理で実行することができる。また、GW装置50が認証情報を管理サーバ40から一括で取得することができるので、代理認証の処理が効率化する。また、GW装置50は、ユーザがログアウトした後を、ログイン時に利用していたセッションを維持することができる。このため、サービスを利用したユーザが一度ログアウトした後に再度ログインしてサービスを利用する場合に、OAuth処理の確認フェーズを省略することができる。したがって、OAuth処理がボトルネックとなることを防止でき、処理性能の劣化を抑制できる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(セッション維持判定)
例えば、GW装置50は、セッション情報を維持するか否かの判定基準をサービスごとに設けることができる。図20は、セッション情報の判定基準例を示す図である。図20に示すように、GW装置50は、「サービスURL(連携元)、サービスURL(連携先)、セッション動作、タイムアウト」を対応付けて記憶する。ここで記憶される「セッション動作」は、セッションを維持するか削除するかを示す情報が設定される。また、「タイムアウト」は、削除するタイミングが設定される。
図20を例にすると、GW装置50は、サービス連携元が「https://service1.com」で、かつ、サービス連携先が「https://service2.com」であるサービスのセッション情報を、24時間維持し、24時間経過後に削除する。つまり、GW装置50は、上記条件に該当するセッション情報をセッション維持テーブル52dで24時間保持し、24時間経過後に、該当エントリをセッション維持テーブル52dから削除する。なお、図20に記憶される情報は、管理者等によって更新される。
このようにサービスごとに、維持するか削除するか等を柔軟に設定できるので、セキュリティを高く保つことができる。例えば、代金支払いサイトなど、セッションを維持し続けるにはリスクの高いサービスの場合には、維持することなく削除することができる。
(グループ管理)
実施例2では、ユーザ各々が、各APサーバに認証するためのIDとPWとを有する例を説明したが、これに限定されるものではなく、複数のユーザが、各APサーバに認証するためにIDとPWとを共有することができる。つまり、1つのグループアカウントを複数のユーザで共有することができる。
図21は、1アカウントで1ユーザが利用できる場合の例を示す図である。図21の構成は、実施例1や実施例2と同様なので、省略する。図21に示すように、GW装置50は、アカウント管理テーブル52bに、「テナントID=tenantY、ユーザID=User001、サービスURL=https://service1.com、ID=group1001、PW=G_PW」を記憶する。また、GW装置50は、セッション維持テーブル52dに、「連携元=https://service1.com、ID=group1001、セッションID=yyyyy、状態=login、連携先=https://service2.com」を記憶する。つまり、ID=group001に属するユーザID=User001が、セッションID=yyyyyで接続される「https://service1.com」が提供するサービスを利用中である状態である。
このような状態で、ID=group001に属するユーザID=User002がログインして、サービス要求メッセージを送信したとする。この場合、GW装置50は、1アカウントで1ユーザが使用できる条件にしたがって、「ユーザID=User002」のサービス要求メッセージを拒否する。このようにすることで、IDを共有する場合であっても、1ユーザ1アカウントと同様のセキュリティレベルを維持できる。
図22は、1アカウントで複数ユーザが利用できる場合の例を示す図である。図22の構成は、実施例1や実施例2と同様なので、省略する。また、図22におけるアカウント管理テーブル52bおよびセッション維持テーブル52dの状態は、図21と同様なので説明を省略する。図21と異なる点は、GW装置50が、サービスURLに対応付けてセッション利用可能数を記憶する点である。
このような状態で、ID=group001に属するユーザID=User002がログインして、サービス要求メッセージを送信したとする。この場合、GW装置50は、1アカウントで10ユーザが使用できる条件にしたがって、「ユーザID=User002」のサービス要求メッセージを許可する。このとき、GW装置50は、ユーザ数が上限値を超える場合には、「ユーザID=User002」のサービス要求メッセージを拒否する。このようにすることで、APサーバごと、または、サービスごとにセッションを接続できる数を定義できるので、サービスに適したセキュリティで、柔軟なサービスを提供することができる。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(ハードウェア構成)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
図23は、ハードウェア構成例を示す図である。図23に示すように、GW装置100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108を有する。また、図23に示した各部は、バス101で相互に接続される。
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NIC(Network Interface Card)などのインタフェースである。HDD107は、図3等に示した機能を実行するプログラムとともに、実施例1や実施例2で説明した各テーブル等を記憶する。記録媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM、CD−ROM等の他のコンピュータが読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのGW装置自身の記録媒体に格納して用いてもよい。
CPU102は、図3に示した各処理部と同様の処理を実行するプログラムを読み出してRAM108に展開することで、図3等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、受付部54、事前認証部55、問い合わせ部56、代理認証部57、セッション管理部58を実行する。このようにGW装置100は、プログラムを読み出して実行することでセッション管理方法を実行する情報処理装置として動作する。
また、GW装置100は、媒体読取装置106によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、GW装置100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。なお、図1や図2に示した他の装置も、図23と同様のハードウェア構成を用いることができる。
30 IDPサーバ
31 送受信部
32 ログイン情報テーブル
33 認証部
40 管理サーバ
41 送受信部
42 クラウド対応テーブル
43 認証情報テーブル
44 認証情報提供部
50 GW装置
51 送受信部
52 記憶部
52a 連携サービステーブル
52b アカウント管理テーブル
52c セッション管理テーブル
52d セッション維持テーブル
53 制御部
54 受付部
55 事前認証部
56 問い合わせ部
57 代理認証部
58 セッション管理部

Claims (7)

  1. ユーザ端末を認証した認証情報を用いてユーザ認証を代行するサービス要求装置において、
    ユーザを識別するユーザ識別子に対応付けて、前記ユーザがサービスの提供を要求するサービス連携元が使用するセッションの情報を示す連携元セッション情報と、前記サービス連携元と連携して前記ユーザにサービスを提供するサービス連携先が使用するセッションの情報を示す連携先セッション情報とを記憶する記憶部と、
    前記ユーザ端末に代わって前記サービス要求装置から前記認証情報を取得してユーザ認証を実行する前記サービス連携元に対してサービスの提供を要求するユーザのユーザ識別子が、前記記憶部に記憶されているか否かを判定する判定部と、
    前記判定部によって前記ユーザ識別子が記憶されていると判定された場合に、前記ユーザ識別子に対応付けられて前記記憶部に記憶される前記連携元セッション情報を用いて接続されるサービス連携元に、前記連携元セッション情報に対応付けられた前記連携先セッション情報を用いて接続される、前記ユーザ端末に代わって前記サービス要求装置から前記認証情報を取得してユーザ認証を実行する前記サービス連携先と連携したサービスの提供を要求する要求部と
    を有することを特徴とするサービス要求装置。
  2. 前記サービス連携元に対してサービスの提供を要求するユーザが正当なユーザであるか否かを認証する認証部をさらに有し、
    前記判定部は、前記認証部によって正当なユーザであると認証されたユーザに対して、当該ユーザのユーザ識別子が、前記記憶部に記憶されているか否かを判定することを特徴とする請求項1に記載のサービス要求装置。
  3. 前記ユーザが前記サービス連携元と前記サービス連携先とが連携して提供するサービスを終了する際に、前記サービスの提供を受けている前記ユーザの識別子と、前記サービス連携元の前記連携元セッション情報と、前記サービス連携先の前記連携先セッション情報とを取得し、取得した情報を対応付けて前記記憶部に格納する格納制御部をさらに有することを特徴とする請求項1に記載のサービス要求装置。
  4. 前記ユーザに提供されるサービスごとに決められた有効期限にしたがって、前記記憶部に記憶されるエントリのうち、前記有効期限を超過したサービスのセッション情報に該当する前記連携元セッション情報または前記連携先セッション情報を含むエントリを、前記記憶部から削除する削除制御部をさらに有することを特徴とする請求項1に記載のサービス要求装置。
  5. 前記記憶部に記憶される前記ユーザ識別子は、複数のユーザが属するグループを識別する識別子であって、
    前記判定部は、さらに、前記サービス連携元に対してサービスの提供を要求するユーザによって、当該ユーザのユーザ識別子が属するグループが、利用可能なセッション数を越えるか否かを判定することを特徴とする請求項1に記載のサービス要求装置。
  6. ユーザ端末を認証した認証情報を用いてユーザ認証を代行するサービス要求装置が、
    前記ユーザ端末に代わって前記サービス要求装置から前記認証情報を取得してユーザ認証を実行するサービス連携元に対してサービスの提供を要求するユーザのユーザ識別子が、前記ユーザ識別子と、前記ユーザがサービスの提供を要求するサービス連携元が使用するセッションの情報を示す連携元セッション情報と、前記サービス連携元と連携して前記ユーザにサービスを提供するサービス連携先が使用するセッションの情報を示す連携先セッション情報とを対応付けて記憶する記憶部に、記憶されているか否かを判定し、
    前記ユーザ識別子が記憶されていると判定した場合に、前記ユーザ識別子に対応付けられて前記記憶部に記憶される前記連携元セッション情報を用いて接続されるサービス連携元に、前記連携元セッション情報に対応付けられた前記連携先セッション情報を用いて接続される、前記ユーザ端末に代わって前記サービス要求装置から前記認証情報を取得してユーザ認証を実行する前記サービス連携先と連携したサービスの提供を要求する
    処理を実行することを特徴とするサービス要求方法。
  7. ユーザ端末を認証した認証情報を用いてユーザ認証を代行するサービス要求装置に、
    前記ユーザ端末に代わって前記サービス要求装置から前記認証情報を取得してユーザ認証を実行するサービス連携元に対してサービスの提供を要求するユーザのユーザ識別子が、前記ユーザ識別子と、前記ユーザがサービスの提供を要求するサービス連携元が使用するセッションの情報を示す連携元セッション情報と、前記サービス連携元と連携して前記ユーザにサービスを提供するサービス連携先が使用するセッションの情報を示す連携先セッション情報とを対応付けて記憶する記憶部に、記憶されているか否かを判定し、
    前記ユーザ識別子が記憶されていると判定した場合に、前記ユーザ識別子に対応付けられて前記記憶部に記憶される前記連携元セッション情報を用いて接続されるサービス連携元に、前記連携元セッション情報に対応付けられた前記連携先セッション情報を用いて接続される、前記ユーザ端末に代わって前記サービス要求装置から前記認証情報を取得してユーザ認証を実行する前記サービス連携先と連携したサービスの提供を要求する
    処理を実行させることを特徴とするサービス要求プログラム。
JP2012059243A 2012-03-15 2012-03-15 サービス要求装置、サービス要求方法およびサービス要求プログラム Active JP5942503B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012059243A JP5942503B2 (ja) 2012-03-15 2012-03-15 サービス要求装置、サービス要求方法およびサービス要求プログラム
US13/720,544 US9313254B2 (en) 2012-03-15 2012-12-19 Service request apparatus, service request method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012059243A JP5942503B2 (ja) 2012-03-15 2012-03-15 サービス要求装置、サービス要求方法およびサービス要求プログラム

Publications (2)

Publication Number Publication Date
JP2013196036A JP2013196036A (ja) 2013-09-30
JP5942503B2 true JP5942503B2 (ja) 2016-06-29

Family

ID=49158700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012059243A Active JP5942503B2 (ja) 2012-03-15 2012-03-15 サービス要求装置、サービス要求方法およびサービス要求プログラム

Country Status (2)

Country Link
US (1) US9313254B2 (ja)
JP (1) JP5942503B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US9147042B1 (en) 2010-11-22 2015-09-29 Experian Information Solutions, Inc. Systems and methods for data verification
US9665854B1 (en) 2011-06-16 2017-05-30 Consumerinfo.Com, Inc. Authentication alerts
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US9137172B2 (en) * 2012-05-02 2015-09-15 Salesforce.Com, Inc. Managing multiple proxy servers in a multi-tenant application system environment
US9633322B1 (en) * 2013-03-15 2017-04-25 Consumerinfo.Com, Inc. Adjustment of knowledge-based authentication
US10664936B2 (en) 2013-03-15 2020-05-26 Csidentity Corporation Authentication systems and methods for on-demand products
JP5662507B2 (ja) * 2013-03-28 2015-01-28 株式会社 ディー・エヌ・エー 認証方法、認証システム、および、サービス提供サーバ
JP2014203141A (ja) * 2013-04-02 2014-10-27 キヤノン株式会社 管理装置、管理システム、制御方法およびコンピュータプログラム
US9721147B1 (en) 2013-05-23 2017-08-01 Consumerinfo.Com, Inc. Digital identity
JP6245949B2 (ja) * 2013-11-11 2017-12-13 キヤノン株式会社 認可サーバーシステム、その制御方法、およびそのプログラム。
JP6201835B2 (ja) * 2014-03-14 2017-09-27 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US11057395B2 (en) 2014-03-24 2021-07-06 Micro Focus Llc Monitoring for authentication information
JP5953333B2 (ja) * 2014-03-26 2016-07-20 日本電信電話株式会社 アクセス制御サーバ、アクセス制御方法、及びアクセス制御プログラム
US10373240B1 (en) 2014-04-25 2019-08-06 Csidentity Corporation Systems, methods and computer-program products for eligibility verification
JP6305271B2 (ja) * 2014-08-11 2018-04-04 キヤノン株式会社 情報処理システム、情報処理装置、それらの制御方法およびプログラム
JP2016085641A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム
JP6163170B2 (ja) * 2015-01-09 2017-07-12 エヌ・ティ・ティ・コミュニケーションズ株式会社 サービス連携システム、サービス連携装置、端末装置、サービス連携方法及びサービス連携プログラム
JP2016208131A (ja) * 2015-04-17 2016-12-08 株式会社日立製作所 提携サービス提供方法
CN113360812B (zh) 2016-03-07 2024-02-06 创新先进技术有限公司 一种业务执行方法及装置
US10785200B2 (en) * 2016-11-29 2020-09-22 Ricoh Company, Ltd. Information processing system, information processing terminal, and information processing method for reducing burden of entering a passcode upon signing in to a service
CN106878419A (zh) * 2017-02-17 2017-06-20 福建升腾资讯有限公司 一种基于虚拟通道的桌面云高效打印方法及***
JP6949585B2 (ja) * 2017-06-30 2021-10-13 キヤノン株式会社 管理サーバ、サービス提供サーバ、システム、制御方法、および、プログラム
JP6904183B2 (ja) * 2017-09-12 2021-07-14 富士通株式会社 情報処理装置、プログラム及び情報処理方法
US10855793B2 (en) 2017-09-25 2020-12-01 Splunk Inc. Proxying hypertext transfer protocol (HTTP) requests for microservices
CN112075061A (zh) * 2018-04-26 2020-12-11 谷歌有限责任公司 基于自动填充的网站认证
US10911234B2 (en) 2018-06-22 2021-02-02 Experian Information Solutions, Inc. System and method for a token gateway environment
JP6624251B1 (ja) * 2018-07-31 2019-12-25 横河電機株式会社 インターフェイスモジュール、ネットワークデバイス、およびネットワークシステム
JP7099198B2 (ja) * 2018-09-03 2022-07-12 富士フイルムビジネスイノベーション株式会社 管理装置、管理システム及びプログラム
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
JP2021056565A (ja) * 2019-09-27 2021-04-08 シャープ株式会社 認証装置、複合機及び認証方法
US20220113989A1 (en) * 2020-10-13 2022-04-14 International Business Machines Corporation Visualization for splitting an application into modules

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10155140A (ja) * 1996-08-08 1998-06-09 Matsushita Electric Ind Co Ltd 情報受信装置および情報受信方法
DE69840672D1 (de) 1997-11-14 2009-04-30 Microsoft Corp Serversbetriebssystem zur unterstützung von mehreren client-serverssitzungen und dynamischer wiederverbindung der benutzer an vorhergehenden sitzungen
US6085247A (en) 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US20020120743A1 (en) 2001-02-26 2002-08-29 Lior Shabtay Splicing persistent connections
US7802295B2 (en) * 2003-08-11 2010-09-21 Sony Corporation Authentication method, authentication system, and authentication server
US7594018B2 (en) * 2003-10-10 2009-09-22 Citrix Systems, Inc. Methods and apparatus for providing access to persistent application sessions
DE102004045147A1 (de) * 2004-09-17 2006-03-23 Fujitsu Ltd., Kawasaki Einstellungsinformations-Verteilungsvorrichtung, Verfahren, Programm und Medium, Authentifizierungseinstellungs-Transfervorrichtung, Verfahren, Programm und Medium und Einstellungsinformations-Empfangsprogramm
JP2006195791A (ja) * 2005-01-14 2006-07-27 Sony Corp 情報処理システム、情報処理装置および方法、情報提供装置および方法、並びにプログラム
JP2006229265A (ja) * 2005-01-20 2006-08-31 Ntt Docomo Inc ゲートウェイシステム
US20060242232A1 (en) * 2005-03-31 2006-10-26 International Business Machines Corporation Automatically limiting requests for additional chat sessions received by a particula user
JP4742903B2 (ja) * 2006-02-17 2011-08-10 日本電気株式会社 分散認証システム及び分散認証方法
CN100589398C (zh) * 2006-05-19 2010-02-10 华为技术有限公司 对群组会话体验质量进行区分的方法及***
JP2009060442A (ja) * 2007-08-31 2009-03-19 Canon Inc 画像処理システム及びその制御方法
JP5359530B2 (ja) * 2008-06-19 2013-12-04 株式会社リコー 印刷サービス提供方法、印刷サービス提供システム、呼制御サーバ及びプログラム
JP5193787B2 (ja) * 2008-10-02 2013-05-08 株式会社日立製作所 情報処理方法、中継サーバおよびネットワークシステム
JP5214402B2 (ja) * 2008-10-22 2013-06-19 沖電気工業株式会社 パケット転送装置、パケット転送方法、パケット転送プログラム及び通信装置
JP2010157208A (ja) * 2008-12-02 2010-07-15 Ricoh Co Ltd データ処理装置、プリンタネットワークシステム、データ処理方法、プログラムおよび記録媒体
JP5644074B2 (ja) * 2009-08-17 2014-12-24 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US8621035B2 (en) * 2010-07-15 2013-12-31 Broadcom Corporation Method and system for providing content remotely via one or more IP multimedia residential gateways
US8763154B2 (en) * 2012-01-23 2014-06-24 Verizon Patent And Licensing Inc. Federated authentication
JP6056384B2 (ja) * 2012-10-31 2017-01-11 株式会社リコー システム及びサービス提供装置

Also Published As

Publication number Publication date
JP2013196036A (ja) 2013-09-30
US9313254B2 (en) 2016-04-12
US20130246528A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
JP5942503B2 (ja) サービス要求装置、サービス要求方法およびサービス要求プログラム
US10785037B2 (en) Managing secure content in a content delivery network
JP5614340B2 (ja) システム、認証情報管理方法、およびプログラム
US8910270B2 (en) Remote access to private network resources from outside the network
EP3694185A1 (en) Method for facilitating federated single sign-on (sso) for internal web applications
JP5292712B2 (ja) 認証連携システム、中継装置、認証連携方法および認証連携プログラム
JP5239341B2 (ja) ゲートウェイ、中継方法及びプログラム
US20210144015A1 (en) Accessing hosts in a computer network
US10972453B1 (en) Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
EP3328023B1 (en) Authentication of users in a computer network
JP2013243553A (ja) サービス要求装置、サービス提供システム、サービス要求方法およびサービス要求プログラム
JP2001350718A (ja) コンピュータネットワークシステム及び同システムにおけるセキュリティ保証方法
WO2013040957A1 (zh) 单点登录的方法、***和信息处理方法、***
JPWO2013046336A1 (ja) グループ定義管理システム
JP2006018399A (ja) 情報処理装置、情報処理方法およびプログラム
EP3328025A1 (en) Accessing hosts in a hybrid computer network
JP4847483B2 (ja) 個人属性情報提供システムおよび個人属性情報提供方法
JP2012181662A (ja) アカウント情報連携システム
Nunes et al. KRB-CCN: lightweight authentication and access control for private content-centric networks
JP2012064007A (ja) 情報処理装置、通信中継方法およびプログラム
CN101771722A (zh) 一种WAPI终端访问Web应用站点的***及方法
JP5589034B2 (ja) 情報流通システム、認証連携方法、装置及びそのプログラム
WO2011131002A1 (zh) 身份管理方法及***
JP2007272689A (ja) オンラインストレージ認証システム、オンラインストレージ認証方法、及びオンラインストレージ認証プログラム
Chalandar et al. A centralized cookie-based single sign-on in distributed systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151102

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160509

R150 Certificate of patent or registration of utility model

Ref document number: 5942503

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150