JP2014142736A - Service provider device, control method for controlling service provider device and program - Google Patents

Service provider device, control method for controlling service provider device and program Download PDF

Info

Publication number
JP2014142736A
JP2014142736A JP2013009763A JP2013009763A JP2014142736A JP 2014142736 A JP2014142736 A JP 2014142736A JP 2013009763 A JP2013009763 A JP 2013009763A JP 2013009763 A JP2013009763 A JP 2013009763A JP 2014142736 A JP2014142736 A JP 2014142736A
Authority
JP
Japan
Prior art keywords
service providing
providing server
server
authentication
execution
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.)
Pending
Application number
JP2013009763A
Other languages
Japanese (ja)
Inventor
Takayuki Uchida
貴之 内田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013009763A priority Critical patent/JP2014142736A/en
Publication of JP2014142736A publication Critical patent/JP2014142736A/en
Pending legal-status Critical Current

Links

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

PROBLEM TO BE SOLVED: To safely realize cooperation in a system performing automated workflow processing by causing servers to cooperate.SOLUTION: A system in which a client PC and a plurality of service provision servers communicable with at least one identity provider device which provides authentication service comprises means in which an execution number management module manages a processing number under execution for each tenant, a step S1527 for determining whether or not a simultaneously executable processing number upper limit of the service provision servers is reached, a processing execution waiting step S1528 for waiting execution of processing, a step S1529 for determining whether or not other processing under execution is completed, a processing number count-up step S1530 for counting up a processing number of processing number under execution management means, a processing execution step S1517 for executing processing, and a processing number count-down step S1531 for counting down the processing number of the processing number under execution management means.

Description

本発明は、ユーザが介在しない自動ワークフロー処理を提供するサービスプロバイダ装置、サービスプロバイダ装置を制御するための制御方法、およびプログラムに関する。   The present invention relates to a service provider device that provides automatic workflow processing without a user, a control method for controlling the service provider device, and a program.

クラウドプラットフォーム上で業務データの管理や各種処理を行う形態が普及し始めている。ユーザは、クライアントPCのブラウザからインターネットを介してクラウドプラットフォームのWebページにアクセスし、そのWebページ上で閲覧したい業務データを表示する。例えば、その画面から文書作成指示を行うと、文書生成サーバにリダイレクトされ、文書生成サーバがクラウドプラットフォームにある業務データを取得して文書を生成し、文書をクライアントPC200やクラウドプラットフォームに送信する。クラウドプラットフォームの代表例として、例えば、Salesforce.com社のSalesforce CRM(登録商標)がある。   Forms for managing business data and various processes on the cloud platform are becoming popular. A user accesses a web page of the cloud platform from the browser of the client PC via the Internet, and displays business data desired to be browsed on the web page. For example, when a document creation instruction is issued from the screen, the document generation server is redirected to the document generation server, and the document generation server acquires business data in the cloud platform to generate a document, and transmits the document to the client PC 200 and the cloud platform. As a typical example of a cloud platform, for example, Salesforce. com Salesforce CRM (registered trademark).

クラウドプラットフォームや文書生成サーバはマルチテナントで動作する。テナントとは、クラウドプラットフォームや文書生成サーバを使用する契約を締結した企業や組織の単位である。マルチテナントで動作するサービスは、1つのシステムで複数のテナントのデータを管理し、あるテナントのデータが別のテナントから参照できないよう各テナントのデータを分離して管理する。自身のテナントのデータのみを参照させるため、クラウドプラットフォームや文書生成サーバはユーザ認証を行う。   The cloud platform and document generation server operate in multi-tenant. A tenant is a unit of a company or organization that has signed a contract to use a cloud platform or a document generation server. A service operating in a multi-tenant manages data of a plurality of tenants in one system, and separately manages data of each tenant so that data of a tenant cannot be referred to from another tenant. Cloud platforms and document generation servers perform user authentication in order to refer only to their own tenant data.

クラウドプラットフォームと文書生成サーバが連携を行う場合、ユーザがそれぞれのサーバで認証を行うことなくサーバ間で認証を連携させることが可能である。従来複数のサーバ間で認証を連携させる技術として、SAML(Security Assertion Markup Language)によるシングルサインオン(以下SSO)の仕組みがある。SAMLのSSOにおいて、ユーザは、認証サービスを提供する側(IdentityProvider、以下IdP)、および認証サービスの認証結果を信頼してサービスを提供する側(ServiceProvider、以下SP)の両方のユーザIDを保有している。ユーザがIdPで認証を受けると、SPはその認証結果を信頼して、そのアクセスをSP内で管理するIDとして認証する(IdP先行)。また、IdPで認証を受けていない未認証のユーザがSPにアクセスしてきた場合、SPは、未認証のユーザを適切なIdPへと誘導し、IdPで認証させる(SP先行)。   When the cloud platform and the document generation server cooperate, it is possible to cooperate authentication between servers without the user performing authentication on each server. Conventionally, as a technique for linking authentication between a plurality of servers, there is a mechanism of single sign-on (hereinafter referred to as SSO) by SAML (Security Association Markup Language). In SAML SSO, a user has user IDs on both the authentication service providing side (IdentityProvider (hereinafter referred to as IdP)) and the authentication service authentication result (Service Provider (hereinafter referred to as SP)). ing. When the user is authenticated by the IdP, the SP trusts the authentication result and authenticates the access as an ID managed in the SP (IdP preceding). In addition, when an unauthenticated user who has not been authenticated by the IdP accesses the SP, the SP guides the unauthenticated user to an appropriate IdP and authenticates by the IdP (SP preceding).

SAMLによるSSOを行う場合、IdPが保有するIDとSPが保有するIDを対応付け(以下、ユーザマッピングと称する)を行って管理する。特に、ユーザを識別することが不可欠なサービスと文書生成サーバを連携させる場合、ユーザマッピングによるID管理が必要となる。ユーザを識別することが不可欠なサービスには、文書をID毎に管理・印刷を行う印刷サービスがある。   When performing SSO by SAML, the ID held by the IdP and the ID held by the SP are associated (hereinafter referred to as user mapping) and managed. In particular, when linking a service indispensable to identify a user with a document generation server, ID management by user mapping is required. Among services indispensable for identifying a user is a print service that manages and prints documents for each ID.

従来、複数のサービスがそれぞれ保有するIDを連携させる方法が開示されている。特許文献1には、サービス提供サーバがユーザのアクセスを認証サーバへ誘導し、認証サーバとユーザ間で認証情報の登録、認証処理を実行する方法が開示されている。特許文献2には、連携するサービス提供サーバのそれぞれでユーザ識別情報を管理する方法が開示されている。   Conventionally, a method of linking IDs held by a plurality of services has been disclosed. Patent Document 1 discloses a method in which a service providing server guides user access to an authentication server, and authentication information is registered and authenticated between the authentication server and the user. Patent Document 2 discloses a method for managing user identification information in each of the service providing servers that cooperate with each other.

特開2011−221729号公報JP 2011-221729 A 特開2010−113462号公報JP 2010-113462 A

しかしながら従来の方法には以下の問題があった。複数のサービス提供サーバの連携によって成立つ自動ワークフローシステム(夜間バッチ印刷など)をクラウド環境で実現する場合、どのユーザの権限でワークフローを実行するかを事前に設定しておく。しかしながら、連携するサービス提供サーバによっては、一人のユーザが同時に実行可能な処理数に制限がある場合がある。例えば、Salesforce CRM(登録商標)では、一人のユーザが同時に実行可能なクエリ数に制限がある。この場合、同時に複数のワークフローを実行しようとすると、一部の処理がエラーになってしまう可能性があった。   However, the conventional method has the following problems. When an automatic workflow system (such as nighttime batch printing) established by cooperation of a plurality of service providing servers is realized in a cloud environment, it is set in advance which user's authority to execute the workflow. However, depending on the service providing server that cooperates, there may be a limit to the number of processes that one user can execute simultaneously. For example, in the Sales CRM (registered trademark), there is a limit to the number of queries that one user can execute simultaneously. In this case, if a plurality of workflows are executed at the same time, there is a possibility that a part of the processing results in an error.

クライアントPC200、および認証サービスを提供する少なくとも1つ以上のアイデンティティプロバイダ装置と通信可能なサービス提供サーバA500、サービス提供サーバB550およびサービス提供サーバC5660が連携するシステムであって、
実行数管理モジュール511がテナント毎に実行中処理数を管理する手段1001と、サービス提供サーバB550の同時実行可能処理数上限値に達しているかを判定するステップS1527と、処理の実行を待機する処理実行待機ステップS1528と、他の実行中処理が完了したかを判定するステップS1529と、前記実行中処理数管理手段1001の処理数をカウントアップする処理数カウントアップステップS1530と、処理を実行する処理実行ステップS1517と、前記実行中処理数管理手段1001の処理数をカウントダウンする処理数カウントダウンステップS1531と、を有するシステム。
A system in which a service providing server A 500, a service providing server B 550, and a service providing server C 5660 that can communicate with a client PC 200 and at least one or more identity provider devices that provide an authentication service cooperate with each other.
A means 1001 for managing the number of processes being executed by the execution number management module 511 for each tenant, a step S1527 for determining whether or not the upper limit of the simultaneously executable process number of the service providing server B 550 has been reached, and a process waiting for execution of the process Execution waiting step S1528, step S1529 for determining whether other in-execution processing is completed, processing number count-up step S1530 for counting up the processing number of the in-execution processing number management means 1001, and processing for executing processing A system having an execution step S1517 and a process count down step S1531 for counting down the process count of the process count management means 1001 during execution.

本発明によれば、サービス提供サーバ同士が連携してスケジュールジョブを実行するシステムにおいて、夜間バッチ印刷等のユーザが介在しないシステム権限で動作するスケジュールジョブを同時に複数実行する場合においても、一部の処理がエラーになることなくスケジュールジョブを実行することが可能となる。   According to the present invention, in a system where service providing servers cooperate to execute a schedule job, even when a plurality of schedule jobs that operate with system authority not involving a user such as nighttime batch printing are executed simultaneously, A scheduled job can be executed without causing an error in processing.

ネットワーク構成を示す図である。It is a figure which shows a network structure. 本発明の実施の形態に係るハードウェア構成図である。It is a hardware block diagram concerning embodiment of this invention. 本発明の実施の形態に係るサービス提供サーバA500のモジュール構成図である。It is a module block diagram of the service provision server A500 which concerns on embodiment of this invention. 本発明の実施の形態に係るサービス提供サーバC560のモジュール構成図である。It is a module block diagram of the service provision server C560 which concerns on embodiment of this invention. 本発明の実施の形態に係るサービス提供サーバB550のモジュール構成図である。It is a module block diagram of service provision server B550 which concerns on embodiment of this invention. 本発明の実施の形態に係るサービス提供サーバB550のスケジュールジョブ登録画面の例である。It is an example of the schedule job registration screen of service provision server B550 which concerns on embodiment of this invention. 本発明の実施の形態に係るサービス提供サーバB550の登録済みスケジュールジョブ一覧画面の例である。It is an example of the registered scheduled job list screen of the service providing server B550 according to the embodiment of the present invention. 本発明の実施の形態に係るサービス提供サーバA500のバッチ印刷情報の設定画面の例である。It is an example of a setting screen of batch print information of the service providing server A500 according to the embodiment of the present invention. 本発明の実施の形態に係るサービス提供サーバB550の秘密鍵登録画面の例である。It is an example of the private key registration screen of service provision server B550 which concerns on embodiment of this invention. 本発明の実施の形態に係るサービス提供サーバA500のバッチ印刷情報の例である。It is an example of the batch print information of the service providing server A500 according to the embodiment of the present invention. 本発明の実施の形態に係るクライアントPC200のブラウザ、サービス提供サーバA500、認証サーバA400が実行するフローである。This is a flow executed by the browser of the client PC 200, the service providing server A500, and the authentication server A400 according to the embodiment of the present invention. 本発明の実施の形態に係るサービス提供サーバA500が実行するフローである。It is the flow which service provision server A500 which concerns on embodiment of this invention performs. 本発明の実施の形態に係るクライアントPC200のブラウザ、サービス提供サーバA500、認証サーバB450が実行するフローである。This is a flow executed by the browser, the service providing server A 500, and the authentication server B 450 of the client PC 200 according to the embodiment of the present invention. 本発明の実施の形態に係るクライアントPC200のブラウザ、サービス提供サーバA500、サービス提供サーバB550が実行するフローである。This is a flow executed by the browser, the service providing server A 500, and the service providing server B 550 of the client PC 200 according to the embodiment of the present invention. 本発明の実施の形態に係るサービス提供サーバA500、サービス提供サーバB550、サービス提供サーバC560、認証サーバA400が実行するフローである(その1)。This is a flow executed by the service providing server A500, the service providing server B550, the service providing server C560, and the authentication server A400 according to the embodiment of the present invention (part 1). 本発明の実施の形態に係るサービス提供サーバA500、サービス提供サーバB550、サービス提供サーバC560、認証サーバA400が実行するフローである(その2)。This is a flow executed by the service providing server A 500, the service providing server B 550, the service providing server C 560, and the authentication server A 400 according to the embodiment of the present invention (part 2). 本発明の実施の形態に係るサービス提供サーバA500が実行するフローである。It is the flow which service provision server A500 which concerns on embodiment of this invention performs. 本発明の実施の形態に係るダイジェスト認証のチャレンジの例である。It is an example of the challenge of digest authentication which concerns on embodiment of this invention. 本発明の実施の形態に係るダイジェスト認証のレスポンスの例である。It is an example of the response of the digest authentication which concerns on embodiment of this invention. 本発明の第2の実施の形態に係るサービス提供サーバA500が実行するフローである。It is the flow which the service provision server A500 which concerns on the 2nd Embodiment of this invention performs.

本発明の目的は、サービス提供サーバ同士が連携してスケジュールジョブを実行するシステムにおいて、夜間バッチ印刷等のユーザが介在しない自動ワークフローを実行する場合に、サービス提供サーバが同時実行可能な処理数を制限している場合においても、実行数制限のエラーになることなくスケジュールジョブを実行することである。   It is an object of the present invention to reduce the number of processes that can be executed simultaneously by a service providing server when executing an automatic workflow that does not involve a user, such as nighttime batch printing, in a system in which service providing servers execute a scheduled job. Even in the case of restriction, it is possible to execute the schedule job without causing an error of execution number restriction.

以降、本発明を実施するための最良の形態について図面を用いて説明する。   Hereinafter, the best mode for carrying out the present invention will be described with reference to the drawings.

図1は、本発明の実施例のシステム構成を示すブロック図である。   FIG. 1 is a block diagram showing a system configuration of an embodiment of the present invention.

100は、Wide Area Network(WAN100)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。101は各構成要素を接続するLocal Area Network(LAN101)である。LAN101は、WAN100を介することで互いの装置は通信可能になる。   Reference numeral 100 denotes a wide area network (WAN 100), and in the present invention, a World Wide Web (WWW) system is constructed. Reference numeral 101 denotes a local area network (LAN 101) for connecting each component. The LAN 101 can communicate with each other through the WAN 100.

200はユーザが操作するクライアントPC200であり、後述するサービス提供サーバA500やサービス提供サーバB550に対してリクエストを発行する。   A client PC 200 operated by the user issues a request to a service providing server A 500 and a service providing server B 550 described later.

300はユーザのアクセスを適切なIdPへと誘導する認証サービス決定サーバである。   Reference numeral 300 denotes an authentication service determination server that guides user access to an appropriate IdP.

400および450はそれぞれ認証を行う認証サーバA,Bであり、ともにIdP(アイデンティティプロバイダ装置)として動作する。なお認証サービスは2つに限定されるものではない。どのIdPが実際の認証を行うかはアクセスしてきたユーザによって異なる。500や550や560はそれぞれサービスを提供するサービス提供サーバA500,B550、C560であり、認証されたユーザに対してサービスを提供する。サービス提供サーバA500はクライアントPC200やサービス提供サーバB550からのリクエストを受信して文書生成を行う。サービス提供サーバB550はクライアントPC200やサービス提供サーバA500からのリクエストに応じて保持するデータの表示・更新等を行う。サービス提供サーバC560はクライアントPC200やサービス提供サーバA500からのリクエストを受信して文書印刷を行う。なお、サービス提供サーバA500,サービス提供サーバB550,サービス提供サーバC560は文書生成サービスやクラウドプラットフォーム、文書印刷サービスに限定されるものではなく、別のサービスであってもよい。またクライアントPC200、認証サービス決定サーバ300、認証サーバA400、認証サーバB450、サービス提供サーバA500、サービス提供サーバB550、サービス提供サーバC560はそれぞれWANネットワーク100およびLAN101を介して接続されている。なおクライアントPC200およびそれぞれのサービスはそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また同一のPC上に構成されていてもよい。認証サービス決定サーバ300、認証サーバA400、サービス提供サーバA500、サービス提供サーバC560は同じネットワーク内(イントラネット内)に構築されたサーバ群であり、認証サーバB450、サービス提供サーバB550は同じネットワーク内(イントラネット内)に構築されたサーバ群となる。   Reference numerals 400 and 450 denote authentication servers A and B that respectively perform authentication, and both operate as an IdP (identity provider device). Note that the authentication service is not limited to two. Which IdP performs the actual authentication depends on the accessing user. Reference numerals 500, 550, and 560 denote service providing servers A500, B550, and C560 that provide services, respectively, and provide services to authenticated users. The service providing server A 500 receives a request from the client PC 200 or the service providing server B 550 and generates a document. The service providing server B550 displays / updates data held in response to a request from the client PC 200 or the service providing server A500. The service providing server C 560 receives a request from the client PC 200 or the service providing server A 500 and prints a document. The service providing server A 500, the service providing server B 550, and the service providing server C 560 are not limited to the document generation service, the cloud platform, and the document printing service, and may be other services. The client PC 200, the authentication service determination server 300, the authentication server A 400, the authentication server B 450, the service providing server A 500, the service providing server B 550, and the service providing server C 560 are connected via the WAN network 100 and the LAN 101, respectively. The client PC 200 and each service may be configured on individual LANs or on the same LAN. Moreover, you may comprise on the same PC. The authentication service determination server 300, the authentication server A400, the service providing server A500, and the service providing server C560 are servers built in the same network (intranet), and the authentication server B450 and the service providing server B550 are in the same network (intranet). (Inside).

クライアントPC200はまず、バッチ印刷用のスケジュールジョブを登録するためサービス提供サーバB550にアクセスする。サービス提供サーバB550は未認証のユーザアクセスを受け付けると、不図示の認証画面を表示し、ユーザ認証を行う。ユーザを認証すると、バッチ印刷用のスケジュールジョブ登録画面の表示を行う。   First, the client PC 200 accesses the service providing server B 550 to register a batch print schedule job. When the service providing server B550 accepts unauthenticated user access, the service providing server B550 displays an unillustrated authentication screen and performs user authentication. When the user is authenticated, the schedule job registration screen for batch printing is displayed.

図6は、本実施の形態に係るサービス提供サーバB550が表示するバッチ印刷用のスケジュールジョブ登録画面601の例である。スケジュールジョブ登録画面601は、スケジュールジョブの名前を設定するジョブ情報設定領域602、スケジュールジョブを開始する時刻を設定するジョブ開始時刻設定領域603、スケジュールジョブで実行されるバッチ印刷の印刷パラメーターを設定する印刷パラメーター設定領域604、およびこれらの設定を登録する登録ボタン605から成る。ユーザ(管理者)は、スケジュールジョブ登録画面601を操作し、スケジュールジョブを実行したい時刻および印刷パラメーター等を入力して登録ボタン605を押す。登録ボタン605が押下されると、サービス提供サーバB550は、指示された設定をテナントごとの管理領域に保存する。保存されたスケジュールジョブに関する各種設定は、サービス提供サーバB550が表示するスケジュールジョブ一覧画面でいつでも確認可能である。   FIG. 6 shows an example of a scheduled job registration screen 601 for batch printing displayed by the service providing server B 550 according to this embodiment. The schedule job registration screen 601 sets a job information setting area 602 for setting the name of the schedule job, a job start time setting area 603 for setting the start time of the schedule job, and print parameters for batch printing executed by the schedule job. A print parameter setting area 604 and a registration button 605 for registering these settings are provided. The user (administrator) operates the schedule job registration screen 601, inputs the time at which the scheduled job is to be executed, print parameters, and the like, and presses the registration button 605. When the registration button 605 is pressed, the service providing server B 550 stores the instructed setting in the management area for each tenant. Various settings related to the stored schedule job can be confirmed at any time on the schedule job list screen displayed by the service providing server B550.

図7は、本実施の形態に係るサービス提供サーバB550が表示するスケジュールジョブ一覧画面701の例である。一覧表示により、スケジュールジョブの名前702やジョブの開始時刻703を確認することが出来る。   FIG. 7 shows an example of a scheduled job list screen 701 displayed by the service providing server B 550 according to this embodiment. By displaying the list, the name 702 of the scheduled job and the start time 703 of the job can be confirmed.

次にクライアントPC200は、バッチ印刷用の事前設定を行うためにサービス提供サーバA500にアクセスする。サービス提供サーバA500は未認証のユーザアクセスを受け付けると、不図示の認証画面を表示し、ユーザ認証を行う。ユーザを認証すると、バッチ印刷用の設定画面の表示を行う。   Next, the client PC 200 accesses the service providing server A 500 in order to perform presetting for batch printing. When the service providing server A 500 accepts unauthenticated user access, the service providing server A 500 displays an unillustrated authentication screen and performs user authentication. When the user is authenticated, a setting screen for batch printing is displayed.

図8は、本実施の形態に係るサービス提供サーバA500が表示するバッチ印刷用の設定画面801の例である。バッチ印刷用の設定画面801には、サービス提供サーバC560のアクセストークン(以降、サーバCアクセストークン)をサービス提供サーバA500の管理領域に設定するためのボタン802、サービス提供サーバB550のアクセストークン(以降、サーバBアクセストークン)をサービス提供サーバA500の管理領域に設定するためのボタン803、サービス提供サーバB550から来るバッチ印刷要求の検証を行うための秘密鍵804が表示されている。アクセストークンは、各サービス提供サーバの機能へのアクセスを許可するトークンで、通常、ユーザによる事前認可操作を経て認証サーバから発行される。ユーザ(管理者)によりボタン802、803が押下されると、サービス提供サーバA500は、それぞれのサーバから取得したアクセストークンをテナントの識別番号(テナントID)に紐付けて管理領域へ保存する。なお、秘密鍵804については、不図示の秘密鍵生成画面で生成され、テナントIDに紐付けて管理済みとする。   FIG. 8 is an example of a setting screen 801 for batch printing displayed by the service providing server A 500 according to the present embodiment. The setting screen 801 for batch printing includes a button 802 for setting the access token of the service providing server C 560 (hereinafter referred to as the server C access token) in the management area of the service providing server A 500, and an access token (hereinafter referred to as the service providing server B 550). , Server B access token) in the management area of the service providing server A 500, and a secret key 804 for verifying a batch print request coming from the service providing server B 550. The access token is a token that permits access to the function of each service providing server, and is normally issued from the authentication server through a pre-authorization operation by the user. When the buttons 802 and 803 are pressed by the user (administrator), the service providing server A 500 associates the access token acquired from each server with the tenant identification number (tenant ID) and stores it in the management area. Note that the secret key 804 is generated on a secret key generation screen (not shown) and is managed in association with the tenant ID.

さらにクライアントPC200は、バッチ印刷用の事前設定を行うためにサービス提供サーバB550にアクセスする。サービス提供サーバB550における認証手続きは前記と同様である。ユーザ認証済みであれば、秘密鍵登録画面の表示を行う。   Further, the client PC 200 accesses the service providing server B 550 in order to perform presetting for batch printing. The authentication procedure in the service providing server B550 is the same as described above. If the user has been authenticated, the secret key registration screen is displayed.

図9は、本実施の形態に係るサービス提供サーバB550が表示する秘密鍵登録画面901の例である。ユーザ(管理者)は、秘密鍵入力エリア902に対して、前記バッチ印刷用の設定画面801に表示された秘密鍵を入力し、登録ボタン903を押す。登録ボタン903が押下されると、サービス提供サーバB550は、秘密鍵をテナントごとの管理領域に保存する。   FIG. 9 is an example of a secret key registration screen 901 displayed by the service providing server B 550 according to the present embodiment. The user (administrator) inputs the secret key displayed on the setting screen 801 for batch printing in the secret key input area 902 and presses a registration button 903. When the registration button 903 is pressed, the service providing server B 550 stores the secret key in the management area for each tenant.

サービス提供サーバB550はスケジュールジョブの開始時刻になると、スケジュールジョブを開始し、サービス提供サーバA500にバッチ印刷を要求する。   When the start time of the schedule job is reached, the service providing server B 550 starts the schedule job and requests the service providing server A 500 to perform batch printing.

サービス提供サーバA500はバッチ印刷の要求を受け付けると、その要求が妥当であるかを検証し、妥当であればサーバBアクセストークンを使ってサービス提供サーバB550からデータを取得し、生成した文書をサーバCアクセストークンを使ってサービス提供サーバC560に送信する。   When the service providing server A 500 receives the request for batch printing, the service providing server A 500 verifies whether the request is valid. If the request is valid, the service providing server A 500 acquires data from the service providing server B 550 using the server B access token. It transmits to the service providing server C560 using the C access token.

サービス提供サーバA500は未認証のユーザアクセスを受け付けると、アクセスを認証サービス決定サーバ300にリダイレクトさせる。認証サービス決定サーバ300は未認証アクセスを適切な認証サーバA400または認証サーバB450にリダイレクトさせる。認証サーバA400または認証サーバB450はユーザを認証すると、再度ユーザをサービス提供サーバA500にリダイレクトさせ、サービス提供サーバA500がユーザにサービスを提供する。   When the service providing server A 500 accepts an unauthenticated user access, the service providing server A 500 redirects the access to the authentication service determining server 300. The authentication service determination server 300 redirects unauthenticated access to an appropriate authentication server A400 or authentication server B450. When authenticating the user, the authentication server A 400 or the authentication server B 450 redirects the user to the service providing server A 500 again, and the service providing server A 500 provides the service to the user.

認証サービス決定サーバ300は、認証装置を決定するキーとなる情報と、認証装置の情報とを紐付けて記憶する。認証サービス決定サーバ300が未認証のユーザからのアクセスを受け付けると、ユーザがアクセスした際に提供される情報から認証装置を決定するキーとなる情報を取り出し認証装置の情報を取得する。その後、取り出した認証装置の情報に従い、ユーザを適切な認証サービスにアクセスするように誘導する。   The authentication service determination server 300 stores information serving as a key for determining an authentication device and information on the authentication device in association with each other. When the authentication service determination server 300 accepts an access from an unauthenticated user, information serving as a key for determining the authentication device is extracted from information provided when the user accesses, and information on the authentication device is acquired. Thereafter, the user is guided to access an appropriate authentication service according to the information of the extracted authentication device.

認証サーバA400が認証サービス決定サーバ300からリダイレクトされた未認証のアクセスを受け付けると、不図示のユーザ認証画面を表示し、ユーザにユーザIDとパスワードの入力を促し認証を行う。認証完了後のアクセス先情報を受け取っていれば、その情報にもとづいてユーザのアクセスをリダイレクトさせる。たとえば認証完了後のリダイレクト先としてサービス提供サーバA500が指定されていた場合は、ユーザのアクセスをサービス提供サーバA500にリダイレクトさせる。このとき、ユーザ認証済であることを示す情報として認証セッションIDを発行し、認証セッションIDを付加してサービス提供サーバA500にリダイレクトさせる。認証セッションIDとは、任意の一意の文字列で、認証サーバA400がユーザIDと認証セッションIDとを紐付けて記憶する。以降、認証サーバA400は、ユーザがアクセスした際に提供される認証セッションIDからユーザIDを特定する。認証セッションIDは、サービス提供サーバA500がクライアントPC200のブラウザに返すレスポンスページに付加され、クライアントPC200のブラウザに保存される。以降、クライアントPC200のブラウザからサービス提供サーバA500にアクセスすると、認証セッションIDがサービス提供サーバA500に送られる。認証セッションIDは一定期間有効で、有効期限は認証サーバA400が管理する。   When the authentication server A 400 accepts unauthenticated access redirected from the authentication service determination server 300, a user authentication screen (not shown) is displayed, and the user is prompted to input a user ID and password for authentication. If the access destination information after the completion of authentication is received, the user access is redirected based on the information. For example, when the service providing server A500 is designated as the redirect destination after the completion of authentication, the user access is redirected to the service providing server A500. At this time, an authentication session ID is issued as information indicating that the user has been authenticated, the authentication session ID is added, and the service providing server A 500 is redirected. The authentication session ID is an arbitrary unique character string, and the authentication server A 400 stores the user ID and the authentication session ID in association with each other. Thereafter, the authentication server A 400 identifies the user ID from the authentication session ID provided when the user accesses. The authentication session ID is added to the response page that the service providing server A 500 returns to the browser of the client PC 200, and is stored in the browser of the client PC 200. Thereafter, when the service providing server A500 is accessed from the browser of the client PC 200, the authentication session ID is sent to the service providing server A500. The authentication session ID is valid for a certain period, and the expiration date is managed by the authentication server A400.

サービス提供サーバA500が認証サーバA400からリダイレクトされたアクセスを受け付けると、すでにユーザのアクセスは認証が済んでいるため、ユーザはサービス提供サーバA500が提供するサービスを受けることができる。なお、本実施例において、認証セッションIDはCookie「AUTH_SESSION_ID」に付加することを想定する。Cookie以外の方法で認証セッションIDを付加するようことも可能である。   When the service providing server A 500 receives the redirected access from the authentication server A 400, the user's access has already been authenticated, so the user can receive the service provided by the service providing server A 500. In the present embodiment, it is assumed that the authentication session ID is added to the cookie “AUTH_SESSION_ID”. It is also possible to add an authentication session ID by a method other than Cookie.

また、認証サーバA400は、ユーザIDとパスワードを受け付けてユーザ認証を行うAPI(Application Programming Interface)を備える。前記ユーザ認証APIはユーザを認証すると認証セッションIDを呼び出し元に返す。さらに、認証サーバA400は、認証セッションIDを受け付けて認証セッションIDの妥当性を検証するAPIを備える。認証セッション妥当性検証のAPIは検証結果を呼び出し元に返す。さらに、認証サーバA400は、認証セッションIDをパラメータに受け取り、その認証セッションIDに基づいて各サービス提供サーバへのアクセストークンおよびリフレッシュトークンを発行するAPIを備える。なお、リフレッシュトークンとは、アクセストークンの期限が切れた際に、再発行を行う最必要になる無期限のトークンである。アクセストークン発行APIは、発行したアクセストークンおよびリフレッシュトークンを呼び出し元に返す。さらに、認証サーバA400は、アクセストークンを受け付けてアクセストークンの妥当性を検証するAPIを備える。アクセストークン妥当性検証のAPIは検証結果を呼び出し元に返す。   Further, the authentication server A400 includes an API (Application Programming Interface) that accepts a user ID and a password and performs user authentication. When the user authentication API authenticates the user, the user authentication API returns an authentication session ID to the caller. Further, the authentication server A400 includes an API that receives the authentication session ID and verifies the validity of the authentication session ID. The authentication session validation API returns a validation result to the caller. Further, the authentication server A 400 includes an API that receives an authentication session ID as a parameter and issues an access token and a refresh token to each service providing server based on the authentication session ID. Note that the refresh token is an indefinite token that is required to be reissued when the access token expires. The access token issuing API returns the issued access token and refresh token to the caller. Further, the authentication server A400 includes an API that accepts an access token and verifies the validity of the access token. The access token validation API returns a validation result to the caller.

認証サーバB450が認証サービス決定サーバ300からリダイレクトされた未認証のアクセスを受け付けると、不図示のユーザ認証画面を表示し、ユーザにユーザIDとパスワードの入力を促し認証を行う。認証に成功すると認証の証拠を生成し、認証の証拠の検証を行うことが可能な認証サービスへ、ユーザのアクセスをリダイレクトさせる。   When the authentication server B450 accepts unauthenticated access redirected from the authentication service determination server 300, a user authentication screen (not shown) is displayed, and the user is prompted to input a user ID and password for authentication. When authentication is successful, authentication evidence is generated, and the user's access is redirected to an authentication service capable of verifying the authentication evidence.

図2は本実施の形態に係るクライアントPC200の構成を示す図である。また認証サービス決定サーバ300、認証サーバA400、認証サーバB450、サービス提供サーバA500、サービス提供サーバB550、サービス提供サーバC560を提供するサーバコンピューターの構成も同様である。これらサービスはサーバであり、図2に示されるハードウェアブロック図の構成を有する。このように、本実施形態のクライアントPC200およびサーバには一般的な情報処理装置のハードウェア構成を適用できる。   FIG. 2 is a diagram showing a configuration of the client PC 200 according to the present embodiment. The configuration of the server computer that provides the authentication service determination server 300, the authentication server A400, the authentication server B450, the service providing server A500, the service providing server B550, and the service providing server C560 is the same. These services are servers, and have the configuration of the hardware block diagram shown in FIG. As described above, the hardware configuration of a general information processing apparatus can be applied to the client PC 200 and the server of this embodiment.

図2において、CPU201は、ROM203のプログラム用ROMに記憶された、或いはハードディスク211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。   In FIG. 2, the CPU 201 executes a program such as an OS or an application stored in the program ROM of the ROM 203 or loaded from the hard disk 211 to the RAM 202. Here, the OS is an abbreviation for an operating system running on a computer, and the operating system is hereinafter referred to as an OS. The processing of each flowchart to be described later can be realized by executing this program. The RAM 202 functions as a main memory, work area, and the like for the CPU 201. A keyboard controller (KBC) 205 controls key input from a keyboard (KB) 209 or a pointing device (not shown). A CRT controller (CRTC) 206 controls display on the CRT display 210. A disk controller (DKC) 207 controls data access in a hard disk (HD) 211 or a floppy (registered trademark) disk (FD) that stores various data. The NC 212 is connected to the network and executes communication control processing with other devices connected to the network.

尚、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211にインストールされたアプリケーションプログラムである。   In all the descriptions below, unless otherwise specified, the execution hardware main body is the CPU 201, and the software main body is an application program installed in the hard disk (HD) 211.

図5は、本実施の形態に係るサービス提供サーバB550のモジュール構成図である。サービス提供サーバB550は、アクセス制御モジュール551、ページ生成モジュール552、スケジュールジョブ登録モジュール5531,5541、スケジュールジョブ情報管理モジュール5532,5542、スケジュールジョブ実行モジュール5533,5543、バッチ印刷要求モジュール5534,5544、秘密鍵管理モジュール5535,5545、認証情報付加モジュール5536,5546、業務データ管理モジュール5537,5547を備える。   FIG. 5 is a module configuration diagram of service providing server B 550 according to the present embodiment. The service providing server B 550 includes an access control module 551, a page generation module 552, schedule job registration modules 5531 and 5541, schedule job information management modules 5532 and 5542, schedule job execution modules 5533 and 5543, batch print request modules 5534 and 5544, and secrets. Key management modules 5535 and 5545, authentication information addition modules 5536 and 5546, and business data management modules 5537 and 5547 are provided.

サービス提供サーバB550がアクセスを受け付けると、ユーザのアクセスが認証済みであるか否かをアクセス制御モジュール551が判断し、未認証であればページ生成モジュール552が認証画面を表示する。認証済みであればサービス提供サーバB550はサービスを提供する。   When the service providing server B 550 accepts access, the access control module 551 determines whether or not the user's access has been authenticated, and if not authenticated, the page generation module 552 displays an authentication screen. If authenticated, the service providing server B 550 provides a service.

スケジュールジョブ登録モジュール5531,5541はスケジュールジョブを登録する。ジョブ開始時間等のスケジュールジョブ関連情報は、スケジュールジョブ情報管理モジュール5532,5542によって管理される。   Schedule job registration modules 5531 and 5541 register schedule jobs. Schedule job related information such as job start time is managed by the schedule job information management modules 5532 and 5542.

スケジュールジョブの開始時刻になると、スケジュールジョブ実行モジュール5533,5543がスケジュールジョブを実行する。バッチ印刷要求モジュール5534,5544はスケジュールジョブ実行モジュール5533,5543から呼び出され、サービス提供サーバA500に対してバッチ印刷の要求リクエストを行う。サービス提供サーバA500にて前記バッチ印刷リクエストの妥当性検証を行うため、秘密鍵管理モジュール5535,5545が秘密鍵の保存および取得を行い、認証情報付加モジュール5536,5546が妥当性検証に必要な情報を生成してリクエストに付加する。   When the start time of the scheduled job comes, the scheduled job execution modules 5533 and 5543 execute the scheduled job. The batch print request modules 5534 and 5544 are called from the scheduled job execution modules 5533 and 5543, and make a request for batch printing to the service providing server A500. In order to verify the validity of the batch print request in the service providing server A500, the secret key management modules 5535 and 5545 store and acquire the secret key, and the authentication information addition modules 5536 and 5546 are information necessary for the validity verification. Is generated and added to the request.

サービス提供サーバB550が業務データ取得のリクエストを受け付けると、業務データ管理モジュール5537,5547が業務データを取得し、リクエストの発行元に返却する。   When the service providing server B 550 receives a business data acquisition request, the business data management modules 5537 and 5547 acquire the business data and return it to the request issuer.

また、スケジュールジョブ登録モジュール5531,5541、スケジュールジョブ情報管理モジュール5532,5542、スケジュールジョブ実行モジュール5533,5543、バッチ印刷要求モジュール5534,5544、秘密鍵管理モジュール5535,5545、認証情報付加モジュール5536,5546、業務データ管理モジュール5537,5547は、テナント毎に管理される。なお、これらテナント毎に管理されるモジュールは同一のハードディスク(HD)211に記憶されてテナント毎のデータを論理的に分離して管理するようにしてもよいし、ハードディスク(HD)211を分けて物理的に分離して管理するようにしてもよい。   Also, scheduled job registration modules 5531 and 5541, scheduled job information management modules 5532 and 5542, scheduled job execution modules 5533 and 5543, batch print request modules 5534 and 5544, secret key management modules 5535 and 5545, and authentication information addition modules 5536 and 5546. The business data management modules 5537 and 5547 are managed for each tenant. The modules managed for each tenant may be stored in the same hard disk (HD) 211 and the data for each tenant may be logically separated and managed, or the hard disk (HD) 211 may be divided. You may make it manage physically separate.

図3は、本実施の形態に係るサービス提供サーバA500のモジュール構成図である。サービス提供サーバA500は、アクセス制御モジュール501、データ取得モジュール502、文書生成モジュール503、ページ生成モジュール504、アクセストークン取得モジュール505、バッチ印刷情報管理モジュール506、秘密鍵生成モジュール507、文書送信モジュール508、認証情報検証モジュール509、アクセストークン検証モジュール510を備える。   FIG. 3 is a module configuration diagram of service providing server A 500 according to the present embodiment. The service providing server A 500 includes an access control module 501, a data acquisition module 502, a document generation module 503, a page generation module 504, an access token acquisition module 505, a batch print information management module 506, a secret key generation module 507, a document transmission module 508, An authentication information verification module 509 and an access token verification module 510 are provided.

サービス提供サーバA500がアクセスを受け付けると、アクセス制御モジュール501はアクセスが認証済みかどうかを判断する。アクセスが認証済みであればサービス提供サーバA500はサービスを提供する。   When the service providing server A 500 accepts access, the access control module 501 determines whether the access has been authenticated. If the access has been authenticated, the service providing server A 500 provides the service.

サービス提供サーバA500は、サービス提供サーバB550からのバッチ印刷リクエストに応じてバッチ印刷を行う。バッチ印刷リクエストを受けると、認証情報検証モジュール509は、受理したバッチ印刷リクエストを検証する。検証に必要な情報は、あらかじめHD211に保存されており、バッチ印刷情報管理モジュール506によって管理される。   The service providing server A500 performs batch printing in response to the batch print request from the service providing server B550. Upon receiving the batch print request, the authentication information verification module 509 verifies the received batch print request. Information necessary for verification is stored in the HD 211 in advance and is managed by the batch print information management module 506.

図10はHD211に保存されたバッチ印刷情報の一例である。後述する秘密鍵およびサーバBのあるユーザおよびサーバCのあるユーザのアクセストークンおよびリフレッシュトークンが、サービス提供サーバA500のテナントIDに紐付けられて保存されている。例では、テナントID「1000AA」と「1000BB」の2つのテナントに関するバッチ印刷情報が保存されている。バッチ印刷情報として保存されている秘密鍵1002は、バッチ印刷リクエストの検証に使用される。具体的な検証方法については後述する。   FIG. 10 is an example of batch print information stored in the HD 211. An access token and a refresh token of a secret key and a user with the server B and a user with the server C, which will be described later, are stored in association with the tenant ID of the service providing server A500. In the example, batch print information regarding two tenants with tenant IDs “1000AA” and “1000BB” is stored. The secret key 1002 stored as the batch print information is used for verifying the batch print request. A specific verification method will be described later.

あらかじめHD211に保存されるバッチ印刷情報のうち、秘密鍵については、秘密鍵生成モジュール507が生成したものであり、サービス提供サーバA500のテナントIDに紐付けて管理されている。また、バッチ印刷情報のうち、サーバBのユーザのアクセストークンおよびサーバCのユーザのアクセストークンは、アクセストークン取得モジュール505により夫々サービス提供サーバB550およびサービス提供サーバC560から取得され、こちらもサービス提供サーバA500のテナントIDに紐付けて管理されている。アクセストークンの取得は、例えば、OAuthの認証フローを実行することで取得する。   Of the batch print information stored in advance in the HD 211, the secret key is generated by the secret key generation module 507 and is managed in association with the tenant ID of the service providing server A500. In the batch print information, the access token of the user of the server B and the access token of the user of the server C are acquired from the service providing server B550 and the service providing server C560 by the access token acquiring module 505, respectively. It is managed in association with the tenant ID of A500. For example, the access token is acquired by executing an OAuth authentication flow.

データ取得モジュール502は、サーバBアクセストークンを使用してサービス提供サーバB550から業務データを取得する。文書生成モジュール503は、不図示のフォーム管理モジュールが管理するフォームを取得して、データ取得モジュール502が取得した業務データとフォームから文書データを生成する。文書送信モジュール508は、文書生成モジュール503が生成した文書データを、サーバCアクセストークンを使用してサービス提供サーバC560に送信する。アクセストークン検証モジュール510は、サーバBおよびサーバCアクセストークンの有効期限が切れていないかを判断し、切れている場合にトークンの再取得を行う。実行数管理モジュール511は、バッチ印刷処理の実行中処理数1001を管理する。また、実行数管理モジュール511は、サービス提供サーバB550の同時実行可能処理数上限値をHD211で管理する。   The data acquisition module 502 acquires business data from the service providing server B 550 using the server B access token. The document generation module 503 acquires a form managed by a form management module (not shown), and generates document data from the business data and the form acquired by the data acquisition module 502. The document transmission module 508 transmits the document data generated by the document generation module 503 to the service providing server C 560 using the server C access token. The access token verification module 510 determines whether the server B and server C access tokens have expired, and re-acquires the token if they have expired. The execution number management module 511 manages the processing number 1001 during the execution of the batch printing process. Further, the execution number management module 511 manages the upper limit value of the simultaneously executable processing number of the service providing server B 550 with the HD 211.

図4は、本実施の形態に係るサービス提供サーバC560のモジュール構成図である。サービス提供サーバC560は、アクセス制御モジュール561、ページ生成モジュール562、文書印刷モジュール563を備える。   FIG. 4 is a module configuration diagram of the service providing server C560 according to the present embodiment. The service providing server C 560 includes an access control module 561, a page generation module 562, and a document printing module 563.

サービス提供サーバC560がアクセスを受け付けると、ユーザのアクセスが認証済みであるか否かをアクセス制御モジュール561が判断し、未認証であればページ生成モジュール562が認証画面を表示する。認証済みであればサービス提供サーバC560はサービスを提供する。   When the service providing server C 560 accepts access, the access control module 561 determines whether or not the user access has been authenticated, and if not authenticated, the page generation module 562 displays an authentication screen. If authenticated, the service providing server C560 provides the service.

文書印刷モジュール563は、サービス提供サーバA500から送信された文書を印刷する。   The document printing module 563 prints the document transmitted from the service providing server A 500.

図11は本実施の形態に係る、クライアントPC200のブラウザ、サービス提供サーバA500および認証サーバA400が実行するフローである。本フローは、クライアントPC200のブラウザに表示されるバッチ印刷用の設定画面801において、ユーザがサーバCアクセストークンの設定ボタン802を押下することによって始まる(ステップ1101)。   FIG. 11 is a flow executed by the browser of the client PC 200, the service providing server A500, and the authentication server A400 according to the present embodiment. This flow starts when the user presses the server C access token setting button 802 on the batch printing setting screen 801 displayed on the browser of the client PC 200 (step 1101).

ステップS1102でサービス提供サーバA500は、サーバCアクセストークンの設定要求を受け付ける。本フロー開始前に、クライアントPC200のブラウザは、ログイン操作によりサービス提供サーバA500へのユーザ認証を済ませており、サービス提供サーバC500の認証セッションIDは認証サーバA400により発行済みである。サービス提供サーバC500の認証セッションIDは、クライアントPC200のブラウザによりURLパラメーター「AUTH_ID」に指定され、本ステップS1102の設定要求リクエストに含まれている。   In step S1102, the service providing server A 500 receives a server C access token setting request. Prior to the start of this flow, the browser of the client PC 200 has completed user authentication to the service providing server A 500 by a login operation, and the authentication session ID of the service providing server C 500 has been issued by the authentication server A 400. The authentication session ID of the service providing server C500 is specified in the URL parameter “AUTH_ID” by the browser of the client PC 200, and is included in the setting request request in step S1102.

ステップS1103でサービス提供サーバA500は、前記設定要求リクエストのURLパラメーターとしてパラメーター「AUTH_ID」に含まれるサービス提供サーバC500の認証セッションIDを取得する。   In step S1103, the service providing server A500 acquires the authentication session ID of the service providing server C500 included in the parameter “AUTH_ID” as the URL parameter of the setting request.

ステップS1104でサービス提供サーバA500は、前記ステップS1102で取得したサービス提供サーバC500の認証セッションIDをパラメーターに指定して認証サーバA400のアクセストークン取得APIを呼び出す。   In step S1104, the service providing server A500 calls the access token acquisition API of the authentication server A400 by specifying the authentication session ID of the service providing server C500 acquired in step S1102 as a parameter.

ステップS1105で認証サーバ400は、サービス提供サーバA500からのサーバCアクセストークン発行API呼び出しを受け付け、ステップS1106でサーバCアクセストークンおよびサーバCリフレッシュトークンを発行する。そして、発行したアクセストークンおよびリフレッシュトークンをサービス提供サーバA500に返す。
ステップS1107でサービス提供サーバA500は、サーバCアクセストークンおよびサーバCリフレッシュトークンをAPIの戻り値として受理する。
In step S1105, the authentication server 400 accepts a server C access token issuance API call from the service providing server A500, and issues a server C access token and a server C refresh token in step S1106. The issued access token and refresh token are returned to the service providing server A 500.
In step S1107, the service providing server A 500 receives the server C access token and the server C refresh token as API return values.

ステップS1108でサービス提供サーバA500は、ステップS1107で受理したサーバCアクセストークンおよびサーバCリフレッシュトークンを、サービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、本フロー開始前のログイン完了時に既に特定され、サービス提供サーバA500が識別済みとする。   In step S1108, the service providing server A500 stores the server C access token and server C refresh token received in step S1107 in the HD 211 in association with the tenant ID of the service providing server A500. The tenant ID is already specified when the login is completed before the start of this flow, and the service providing server A 500 is identified.

ステップS1109でサービス提供サーバA500は、サーバCアクセストークンおよびサーバCリフレッシュトークンの保存が完了したことを示す保存完了画面を、クライアントPC200のブラウザに返す。   In step S1109, the service providing server A500 returns a storage completion screen indicating that storage of the server C access token and the server C refresh token is completed to the browser of the client PC 200.

ステップS1110でクライアントPC200のブラウザは、ステップS1109にて返された保存完了画面を表示する。   In step S1110, the browser of the client PC 200 displays the save completion screen returned in step S1109.

以上でクライアントPC200のブラウザ、サービス提供サーバA500および認証サーバA400が実行するフローが終了する。なお、上記フローは認証サーバA400のアクセストークン発行APIによるアクセストークン取得のフローだが、サービス提供サーバA500がサービス提供サーバC560にアクセスするために必要な情報が取得できるのであれば他の方法でも構わない。   This completes the flow executed by the browser of the client PC 200, the service providing server A 500, and the authentication server A 400. The above flow is an access token acquisition flow using the access token issuing API of the authentication server A400, but other methods may be used as long as the information necessary for the service providing server A500 to access the service providing server C560 can be acquired. .

図12は本実施の形態に係る、サービス提供サーバA500が実行するフローである。本フローは、サービス提供サーバA500でのサーバCアクセストークン取得時のエラー処理を示したフローである。なお、図11と同様のフローにおいては、同じ符号を付与しており、以下、差異部分のみ説明する。   FIG. 12 is a flow executed by the service providing server A 500 according to the present embodiment. This flow is a flow showing an error process when the server C access token is acquired by the service providing server A500. In addition, in the flow similar to FIG. 11, the same code | symbol is provided and only a different part is demonstrated below.

ステップS1201でサービス提供サーバA500は、ステップS1107においてサーバCアクセストークンおよびサーバCリフレッシュトークンを正しく取得できたかを判断する。例えば、ステップS1103で取得した認証セッションIDの有効期限が切れていた場合などに、アクセストークンの取得が失敗する可能性がある。   In step S1201, the service providing server A500 determines whether the server C access token and the server C refresh token have been correctly acquired in step S1107. For example, there is a possibility that acquisition of an access token may fail if the authentication session ID acquired in step S1103 has expired.

正しく取得できた場合、ステップS1108に遷移し、取得に失敗した場合、ステップS1202に遷移する。   If the acquisition is successful, the process proceeds to step S1108. If the acquisition fails, the process proceeds to step S1202.

サーバCアクセストークンおよびサーバCリフレッシュトークンの取得に失敗した場合、ステップS1202でサービス提供サーバA500は、サーバCアクセストークンおよびサーバCリフレッシュトークンの取得に失敗したことを示すエラー画面を、クライアントPC200のブラウザに返す。   If acquisition of the server C access token and server C refresh token has failed, the service providing server A 500 displays an error screen indicating that acquisition of the server C access token and server C refresh token has failed in step S1202 on the browser of the client PC 200. Return to.

以上でサービス提供サーバA500が実行するフローが終了する。   This completes the flow executed by the service providing server A500.

図13は本実施の形態に係る、クライアントPC200のブラウザ、サービス提供サーバA500および認証サーバB450が実行するフローである。本フローは、クライアントPC200のブラウザに表示されるバッチ印刷用の設定画面801において、ユーザがサーバBアクセストークンの設定ボタン803を押下することによって始まる(ステップ1301)。   FIG. 13 is a flow executed by the browser of the client PC 200, the service providing server A 500, and the authentication server B 450 according to the present embodiment. This flow starts when the user presses the server B access token setting button 803 on the setting screen 801 for batch printing displayed on the browser of the client PC 200 (step 1301).

ステップS1302でサービス提供サーバA500は、サービス提供サーバB550のアクセストークン設定要求を受け付ける。ステップS1303でサービス提供サーバA500は、認証サーバB450へリダイレクトを行う。その際、認証サーバB450が認可設定要求アプリケーションおよび認可完了後のリダイレクト先を識別できるように、リダイレクトパラメータとして、URLにアプリケーションのクライアント識別子およびリダイレクトURLを付与する。クライアント識別子は認証サーバB450へのアクセス元がサービス提供サーバA500であることを示す識別IDである。   In step S1302, the service providing server A500 receives an access token setting request from the service providing server B550. In step S1303, the service providing server A500 redirects to the authentication server B450. At that time, the client identifier of the application and the redirect URL are added to the URL as a redirect parameter so that the authentication server B 450 can identify the authorization setting request application and the redirect destination after the authorization is completed. The client identifier is an identification ID indicating that the access source to the authentication server B450 is the service providing server A500.

ステップS1304で認証サーバB450は、不図示の認可画面の表示をクライアントPC200のブラウザに返す。   In step S1304, the authentication server B450 returns a display of an authorization screen (not shown) to the browser of the client PC 200.

ステップS1305でクライアントPC200のブラウザは、ステップS1304にて返された認可画面を表示する。ユーザは、ブラウザに表示された認可画面に対して、サービス提供サーバB550のユーザIDおよびパスワードを入力し、認可の許可ボタンを押下する。   In step S1305, the browser of the client PC 200 displays the authorization screen returned in step S1304. The user inputs the user ID and password of the service providing server B 550 on the authorization screen displayed on the browser, and presses an authorization permission button.

ユーザによる認可ボタン押下を受けて、ステップS1306でクライアントPC200のブラウザは、認証サーバB450に対して、サービス提供サーバA500からサービス提供サーバB550へのアクセス許可要求を行う。   In response to pressing of the authorization button by the user, the browser of the client PC 200 makes an access permission request from the service providing server A500 to the service providing server B550 to the authentication server B450 in step S1306.

ステップS1307で認証サーバB450は、クライアントPC200のブラウザからの認可要求を受け付ける。ステップS1308で認証サーバB450は、サービス提供サーバA500へリダイレクトを行う。リダイレクト先は、ステップS1303でサービス提供サーバA500が認証サーバB450へのリダイレクトパラメータとして、URLに付与したものである。サービス提供サーバA500へのリダイレクトURLパラメーターには認可コードが含まれる。認可コードは、アクセストークンを取得するために使用される、ユーザのアクセス許可を表す短期間のみ有効なトークンである。   In step S1307, the authentication server B450 receives an authorization request from the browser of the client PC 200. In step S1308, the authentication server B450 redirects to the service providing server A500. The redirect destination is given to the URL as a redirect parameter to the authentication server B 450 by the service providing server A 500 in step S1303. The redirect URL parameter to the service providing server A 500 includes an authorization code. The authorization code is a token that is valid only for a short period of time and represents the access permission of the user, which is used to acquire the access token.

リダイレクトされたアクセスを受け付けると、ステップS1309でサービス提供サーバA500は、認証サーバB450に対して、サーバBアクセストークンの取得リクエストを行う。この際サービス提供サーバA500は、リクエストのURLパラメーターとして、リダイレクトのURLパラメーターに含まれていた認可コードを含める。   When the redirected access is accepted, the service providing server A 500 makes a server B access token acquisition request to the authentication server B 450 in step S1309. At this time, the service providing server A 500 includes the authorization code included in the redirect URL parameter as the URL parameter of the request.

ステップS1310で認証サーバ450は、サービス提供サーバA500からのサーバBアクセストークン取得リクエストを受理する。ステップS1311で認証サーバ450は、サーバBアクセストークンおよびサーバBリフレッシュトークンを発行する。そして、それらのトークンをサービス提供サーバA500にレスポンスとして返却する。   In step S1310, the authentication server 450 receives the server B access token acquisition request from the service providing server A500. In step S1311, the authentication server 450 issues a server B access token and a server B refresh token. These tokens are returned as a response to the service providing server A500.

ステップS1312でサービス提供サーバA500は、サーバBアクセストークンおよびサーバBリフレッシュトークンをレスポンスとして受理する。   In step S1312, the service providing server A500 receives the server B access token and the server B refresh token as responses.

ステップS1313でサービス提供サーバA500は、ステップS1312で受理したサーバBアクセストークンおよびサーバBリフレッシュトークンをサービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、本フロー開始前のログイン完了時に既に特定され、サービス提供サーバA500が識別済みとする。   In step S1313, the service providing server A500 stores the server B access token and server B refresh token received in step S1312 in the HD 211 in association with the tenant ID of the service providing server A500. The tenant ID is already specified when the login is completed before the start of this flow, and the service providing server A 500 is identified.

ステップS1314でサービス提供サーバA500は、サーバBアクセストークンおよびサーバBリフレッシュトークンの保存が完了したことを示す保存完了画面を、クライアントPC200のブラウザに返す。   In step S1314, the service providing server A 500 returns a storage completion screen indicating that storage of the server B access token and the server B refresh token has been completed to the browser of the client PC 200.

ステップS1315でクライアントPC200のブラウザは、ステップS1314にて返された保存完了画面を表示する。   In step S1315, the browser of the client PC 200 displays the save completion screen returned in step S1314.

以上でクライアントPC200のブラウザ、サービス提供サーバA500および認証サーバB450が実行するフローが終了する。なお、上記フローはOauthによるアクセストークン取得のフローだが、サービス提供サーバA500がサービス提供サーバB550にアクセスするために必要な情報が取得できるのであれば他の方法でも構わない。   This completes the flow executed by the browser of the client PC 200, the service providing server A 500, and the authentication server B 450. The above flow is an access token acquisition flow by Auth, but other methods may be used as long as the information necessary for the service providing server A 500 to access the service providing server B 550 can be acquired.

図14は本実施の形態に係る、クライアントPC200のブラウザ、サービス提供サーバA500およびサービス提供サーバB550が実行するフローである。本フローは、クライアントPC200のブラウザに表示される不図示の秘密鍵発行画面において、ユーザが秘密鍵発行ボタンを押下することによって始まる(ステップ1401)。   FIG. 14 is a flow executed by the browser of the client PC 200, the service providing server A 500, and the service providing server B 550 according to the present embodiment. This flow starts when the user presses a secret key issue button on a secret key issue screen (not shown) displayed on the browser of the client PC 200 (step 1401).

ステップS1402でサービス提供サーバA500は、秘密鍵発行要求を受け付ける。   In step S1402, the service providing server A500 receives a secret key issue request.

ステップS1403でサービス提供サーバA500は、秘密鍵の発行を行う。本実施例における秘密鍵は、UUIDとサービス提供サーバA500のテナントIDを組み合わせたものとするが、別な内容でも構わない。   In step S1403, the service providing server A500 issues a secret key. The secret key in this embodiment is a combination of the UUID and the tenant ID of the service providing server A 500, but may have other contents.

ステップS1404でサービス提供サーバA500は、ステップS1403で発行した秘密鍵を、サービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、本フロー開始前のログイン完了時に既に特定され、サービス提供サーバA500が識別済みとする。   In step S1404, the service providing server A500 stores the secret key issued in step S1403 in the HD 211 in association with the tenant ID of the service providing server A500. The tenant ID is already specified when the login is completed before the start of this flow, and the service providing server A 500 is identified.

ステップS1405でサービス提供サーバA500は、ユーザが、ステップS1403で発行された秘密鍵を確認するための秘密鍵確認画面801を、クライアントPC200のブラウザに返す。   In step S1405, the service providing server A500 returns a private key confirmation screen 801 for confirming the private key issued in step S1403 to the browser of the client PC 200.

ステップS1406でクライアントPC200のブラウザは、ステップ1405にて返された秘密鍵確認画面801を表示する。ユーザは、後述する秘密鍵登録画面901にて秘密鍵の指定を行うために、表示された秘密鍵をメモもしくはコピーする。   In step S1406, the browser of the client PC 200 displays the secret key confirmation screen 801 returned in step 1405. The user notes or copies the displayed secret key in order to designate the secret key on a secret key registration screen 901 described later.

ステップS1407でクライアントPC200のブラウザは、サービス提供サーバBが提供する秘密鍵登録画面901にアクセスする。必要に応じてユーザ認証を行う。   In step S1407, the browser of the client PC 200 accesses the secret key registration screen 901 provided by the service providing server B. User authentication is performed as necessary.

ステップS1408でサービス提供サーバB550は、秘密鍵の登録操作を行うための秘密鍵登録画面901を、クライアントPC200のブラウザに返す。   In step S1408, the service providing server B 550 returns a secret key registration screen 901 for performing a secret key registration operation to the browser of the client PC 200.

ステップS1409でクライアントPC200のブラウザは、ステップ1408にて返された秘密鍵登録画面901を表示する。   In step S1409, the browser of the client PC 200 displays the secret key registration screen 901 returned in step 1408.

ステップS1410でクライアントPC200のブラウザは、サービス提供サーバB550に対して、秘密鍵登録リクエストを発行する。リクエストのURLパラメータとして秘密鍵が含まれるため、クライアントPC200とサービス提供サーバB550間の通信は暗号化されることが望ましい。   In step S1410, the browser of the client PC 200 issues a secret key registration request to the service providing server B550. Since the secret key is included as the URL parameter of the request, it is desirable that the communication between the client PC 200 and the service providing server B 550 be encrypted.

ステップS1411でサービス提供サーバB550は、クライアントPC200のブラウザからの秘密鍵登録リクエストを受理する。   In step S1411, the service providing server B550 receives a secret key registration request from the browser of the client PC 200.

ステップS1412でサービス提供サーバB550は、ステップS1411で受理したリクエストに含まれる秘密鍵を、サービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、あらかじめ不図示の保存画面によりサービス提供サーバB550に保存済みである。サービス提供サーバA500とサービス提供サーバB550のテナントIDは1対1に紐付いているものとする。また、秘密鍵およびサービス提供サーバA500のテナントIDは、サービス提供サーバB550のテナントごとに別な領域に保存され、別のテナントからはアクセスできないよう管理されていることが望ましい。また、秘密鍵はサービス提供サーバB550のテナントIDが同一であれば、スケジュールジョブが別であっても同じものが使用される。   In step S1412, the service providing server B550 stores the secret key included in the request received in step S1411 in the HD 211 in association with the tenant ID of the service providing server A500. The tenant ID has been stored in advance in the service providing server B 550 by a storage screen (not shown). It is assumed that the tenant IDs of the service providing server A 500 and the service providing server B 550 are associated with each other one to one. Further, it is desirable that the secret key and the tenant ID of the service providing server A 500 are stored in different areas for each tenant of the service providing server B 550 and managed so that they cannot be accessed from another tenant. If the tenant ID of the service providing server B 550 is the same, the same secret key is used even if the schedule job is different.

以上でクライアントPC200のブラウザ、サービス提供サーバA500およびサービス提供サーバB550が実行するフローが終了する。   This completes the flow executed by the browser of the client PC 200, the service providing server A 500, and the service providing server B 550.

図15Aおよび図15Bは本実施の形態に係る、サービス提供サーバA500、サービス提供サーバC560、サービス提供サーバB550および認証サーバA500が実行するフローである。本フローは、サービス提供サーバB550のスケジュールジョブ情報管理モジュール5532、5542が管理するスケジュールジョブの実行開始時間に従って、スケジュールジョブ実行モジュール5533、5543によりスケジュールジョブが開始されることによって始まる。   15A and 15B are flows executed by service providing server A500, service providing server C560, service providing server B550, and authentication server A500 according to the present embodiment. This flow starts when the schedule job is started by the schedule job execution modules 5533 and 5543 in accordance with the execution start time of the schedule job managed by the schedule job information management modules 5532 and 5542 of the service providing server B550.

ステップS1501でサービス提供サーバB550のスケジュールジョブ実行モジュール5533、5543は、スケジュールジョブの実行を開始する。スケジュールジョブ実行モジュール5533、5543は、スケジュールジョブ情報管理モジュール5532、5542が管理するすべてのスケジュールジョブの実行開始時間を確認し、実行開始時間となったスケジュールジョブの実行を開始する。スケジュールジョブ実行モジュール5533、5543は、スケジュールジョブの実行を開始すると、バッチ印刷要求モジュール5534、5544を呼び出し、その後の処理を任せる。   In step S1501, the schedule job execution modules 5533 and 5543 of the service providing server B 550 start executing the schedule job. The schedule job execution modules 5533 and 5543 confirm the execution start times of all the schedule jobs managed by the schedule job information management modules 5532 and 5542, and start the execution of the schedule job that has reached the execution start time. When the schedule job execution modules 5533 and 5543 start execution of the schedule job, they call the batch print request modules 5534 and 5544 and leave the subsequent processing to them.

ステップS1502でサービス提供サーバB550のバッチ印刷要求モジュール5534、5544は、サービス提供サーバA500に対してバッチ印刷の要求を行う。バッチ印刷要求はユーザログインを必要としないスケジュールジョブとして実行されるため、通常のログインを経た印刷要求とは異なり、実行の主体はある特定のユーザではなくサービス提供サーバB550そのもの(システム権限)となる。このため、要求を受けるサービス提供サーバA500は、バッチ印刷要求の妥当性をユーザやテナントIDから判断することが出来ない。   In step S1502, the batch print request modules 5534 and 5544 of the service providing server B 550 make a batch print request to the service providing server A 500. Since a batch print request is executed as a scheduled job that does not require user login, unlike a print request that has passed through normal login, the subject of execution is not a specific user but the service providing server B550 itself (system authority). . Therefore, the service providing server A 500 that receives the request cannot determine the validity of the batch print request from the user or the tenant ID.

ステップS1503でサービス提供サーバA500のアクセス制御モジュール501は、バッチ印刷要求を受け付ける。前述の通り、バッチ印刷要求には認証セッションID等のユーザを識別するための情報が含まれていないため、後述するステップS1504〜S1512にてバッチ印刷要求を受け付けてよいかどうかの検証を行う。   In step S1503, the access control module 501 of the service providing server A 500 receives a batch print request. As described above, since the batch print request does not include information for identifying the user such as the authentication session ID, it is verified whether the batch print request can be accepted in steps S1504 to S1512 described later.

ステップS1504でサービス提供サーバA500の認証情報検証モジュール509は、サービス提供サーバB550に対して、ダイジェスト認証のチャレンジを送信する。   In step S1504, the authentication information verification module 509 of the service providing server A 500 transmits a digest authentication challenge to the service providing server B 550.

図17は、本実施の形態に係る認証情報検証モジュール509が送信するダイジェスト認証のチャレンジの例(WWW−Authenticateレスポンスヘッダの一部)である。realm1702にはサービス提供サーバA500のサービス名がセットされている。algorithm1703はダイジェスト認証アルゴリズムで「SHA−256」がセットされている。nonce1704には認証情報検証モジュール509が生成するワンタイムトークンがセットされている。   FIG. 17 is an example of a digest authentication challenge (part of the WWW-Authenticate response header) transmitted by the authentication information verification module 509 according to the present embodiment. In the realm 1702, the service name of the service providing server A500 is set. algorithm 1703 is a digest authentication algorithm, and “SHA-256” is set. In the nonce 1704, a one-time token generated by the authentication information verification module 509 is set.

ステップS1505でサービス提供サーバB550のアクセス制御モジュール551は、ダイジェスト認証のチャレンジを受信し、それを認証情報付加モジュール5536、5546に渡す。   In step S1505, the access control module 551 of the service providing server B 550 receives the digest authentication challenge and passes it to the authentication information addition modules 5536 and 5546.

ステップS1506でサービス提供サーバB550の秘密鍵管理モジュール5535、5545は、ステップS1412でHD211に保存された秘密鍵を取得する。秘密鍵管理モジュール5535、5545は、当該のスケジュールジョブを実行しているテナントIDを特定し、そのテナントIDに紐付けられた秘密鍵を取得する。秘密鍵管理モジュール5535、5545は、取得した秘密鍵を認証情報付加モジュール5536、5546に渡す。   In step S1506, the secret key management modules 5535 and 5545 of the service providing server B 550 obtain the secret key stored in the HD 211 in step S1412. The secret key management modules 5535 and 5545 specify the tenant ID that is executing the schedule job, and acquire the secret key associated with the tenant ID. The secret key management modules 5535 and 5545 pass the acquired secret key to the authentication information addition modules 5536 and 5546.

ステップS1507でサービス提供サーバB550の認証情報付加モジュール5536、5546は、あらかじめ不図示の保存画面によりサービス提供サーバB550のHD211に保存されたサービス提供サーバA500のテナントIDを取得する。   In step S1507, the authentication information addition modules 5536 and 5546 of the service providing server B550 acquire the tenant ID of the service providing server A500 that is stored in advance in the HD 211 of the service providing server B550 by using a storage screen (not illustrated).

ステップS1508でサービス提供サーバB550の認証情報付加モジュール5536、5546は、ステップS1505でアクセス制御モジュール551から渡されたダイジェスト認証のチャレンジ、ステップS1506で秘密鍵管理モジュール5535、5545から渡された秘密鍵、ステップS1507で取得したサービス提供サーバA500のテナントID、等からダイジェスト認証のレスポンスを作成する。   The authentication information addition modules 5536 and 5546 of the service providing server B 550 in step S1508 are the digest authentication challenge passed from the access control module 551 in step S1505, the secret keys passed from the secret key management modules 5535 and 5545 in step S1506, A digest authentication response is created from the tenant ID of the service providing server A 500 acquired in step S1507.

図18は、本実施の形態に係る認証情報付加モジュール5536、5546が作成するダイジェスト認証のチャレンジ(Authorizationリクエストヘッダの一部)の例である。username1802にはステップS1506で取得したサービス提供サーバA500のテナントIDをセットする。realm1803およびnonce1804には、前記ダイジェスト認証のチャレンジに含まれる同項目の値をセットする。cnonce1806には認証情報付加モジュール5536、5546が生成するワンタイムトークンをセットする。そして、response1807には、username1802、realm1803、nonce1804、cnonce1806およびステップS1506で秘密鍵管理モジュール5535、5545から渡された秘密鍵を連結したものをさらにalgorithm1805に指定の「SHA−256」でダイジェスト化した値をセットする。   FIG. 18 is an example of a digest authentication challenge (part of the Authorization request header) created by the authentication information addition modules 5536 and 5546 according to the present embodiment. The user name 1802 is set with the tenant ID of the service providing server A 500 acquired in step S1506. In realm 1803 and nonce 1804, the value of the same item included in the digest authentication challenge is set. A one-time token generated by the authentication information addition modules 5536 and 5546 is set in the cnonce 1806. In response 1807, the value obtained by concatenating the user name 1802, realm 1803, nonce 1804, cnonce 1806 and the secret key passed from the secret key management modules 5535 and 5545 in step S 1506 is further digested with “SHA-256” specified in algorithm 1805. Set.

ステップS1509でサービス提供サーバB550の認証情報付加モジュール5536、5546は、サービス提供サーバA500に対して、ステップS1508で作成したダイジェスト認証のレスポンスを送信する。なお、この際、認証情報付加モジュール5536、5546は、ダイジェスト認証のレスポンスとは別に、ステップS1507で取得したサービス提供サーバA500のテナントIDをURLパラメーター「tenant_ID」に設定する。   In step S1509, the authentication information addition modules 5536 and 5546 of the service providing server B550 transmit the digest authentication response created in step S1508 to the service providing server A500. At this time, the authentication information addition modules 5536 and 5546 set the tenant ID of the service providing server A 500 acquired in step S1507 in the URL parameter “tenant_ID” separately from the digest authentication response.

ステップS1510でサービス提供サーバA500のアクセス制御モジュール551は、サービス提供サーバB550から送信されたダイジェスト認証のレスポンスおよびURLパラメーターを受信する。アクセス制御モジュール551は、本ステップS1510にて、URLパラメーター「tenant_ID」の値を取得し、アクセスがどのテナントからのものかを判定する。   In step S1510, the access control module 551 of the service providing server A 500 receives the digest authentication response and the URL parameter transmitted from the service providing server B 550. In step S1510, the access control module 551 acquires the value of the URL parameter “tenant_ID” and determines which tenant the access is from.

ステップS1511でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップS1510で受信したURLパラメーター「tenant_ID」の値をキーとして、HD211に保存されたバッチ印刷情報内を検索し、該当のテナントIDに紐づく秘密鍵を特定し取得する。そして、バッチ印刷情報管理モジュール506は、取得した秘密鍵およびテナントIDを認証情報検証モジュール509に渡す。
ステップS1512でサービス提供サーバA500の認証情報検証モジュール509は、ステップS1510で受信したダイジェスト認証のレスポンスの妥当性を検証する。認証情報検証モジュール509は、ステップS1510で受信したダイジェスト認証のレスポンス(Authorizationリクエストヘッダ)のusername1802、realm1803、nonce1804、cnonce1806およびステップS1511で渡された秘密鍵を、認証情報付加モジュール5536、5546でのレスポンス生成時と同じ方法で結合し、algorithm1805に指定された「SHA−256」でダイジェスト化する。認証情報検証モジュール509は、そのダイジェストかされた値と、ダイジェスト認証のレスポンスのresponse1805の値とを比較して、一致するかで妥当性を検証する。一致すれば妥当であるとみなす。ダイジェスト認証のレスポンスが妥当と判断された場合、ステップS1513に遷移する。レスポンスが妥当でないと判断された場合、サービス提供サーバA500のページ生成モジュール504はエラー画面を生成し、サービス提供サーバB550へ送信する。この場合、バッチ印刷のスケジュールジョブはここで中断される。
In step S1511, the batch print information management module 506 of the service providing server A 500 searches the batch print information stored in the HD 211 using the value of the URL parameter “tenant_ID” received in step S1510 as a key, and sets the corresponding tenant ID. Identify and obtain the secret key to be associated. Then, the batch print information management module 506 passes the acquired secret key and tenant ID to the authentication information verification module 509.
In step S1512, the authentication information verification module 509 of the service providing server A 500 verifies the validity of the digest authentication response received in step S1510. The authentication information verification module 509 uses the digest 180 response (Authorization request header) received in step S1510 for the user name 1802, realm 1803, nonce 1804, cnonce 1806 and the secret key passed in step S1511 as responses in the authentication information addition modules 5536 and 5546. They are combined in the same way as at the time of generation, and digested with “SHA-256” specified in algorithm 1805. The authentication information verification module 509 compares the digested value with the response 1805 value of the digest authentication response, and verifies the validity of the match. If they match, it is considered valid. If it is determined that the digest authentication response is valid, the process proceeds to step S1513. When it is determined that the response is not valid, the page generation module 504 of the service providing server A 500 generates an error screen and transmits it to the service providing server B 550. In this case, the batch printing schedule job is interrupted here.

ステップS1513でサービス提供サーバA500の認証情報検証モジュール509は、バッチ印刷の実行依頼を受け付けたことを示す受付完了通知を、クライアントPC200のブラウザに返す。   In step S1513, the authentication information verification module 509 of the service providing server A 500 returns a reception completion notification indicating that the batch print execution request has been received, to the browser of the client PC 200.

ステップS1514でクライアントPC200のブラウザは、ステップ1513にて返された受付完了通知を受理する。   In step S1514, the browser of the client PC 200 receives the reception completion notification returned in step 1513.

以上のステップで、サービス提供サーバA500でのバッチ印刷の受付が完了する。以降のステップでは、サービス提供サーバA500が受け付けたバッチ印刷の実行を行う。   With the above steps, acceptance of batch printing at the service providing server A500 is completed. In subsequent steps, the batch printing received by the service providing server A 500 is executed.

ステップS1527でサービス提供サーバA500の実行数管理モジュール511は、該当のテナントIDの実行中処理数1001を取得する。また、HD211から同時実行可能処理数上限値を取得する。そして、実行数管理モジュール511は該当のテナントIDの実行中処理数1001が前記同時実行可能処理数上限値未満であるかを判定する。   In step S1527, the execution number management module 511 of the service providing server A 500 acquires the number of processes being executed 1001 for the corresponding tenant ID. Further, the upper limit value of the number of simultaneously executable processes is acquired from the HD 211. Then, the execution number management module 511 determines whether the number of currently executing processes 1001 of the corresponding tenant ID is less than the upper limit value of the simultaneously executable process number.

ステップS1527において、該当のテナントIDの実行中処理数1001が前記同時実行可能処理数上限値に達していると判定された場合、S1528で実行数管理モジュール511は処理を待機する。そして、S1529で実行数管理モジュール511は、他の実行中データ取得処理(後述のS1517)が完了した場合にS1527に戻る。   If it is determined in step S1527 that the number of currently executing processes 1001 of the corresponding tenant ID has reached the upper limit of the simultaneously executable processes, the execution number management module 511 waits for processing in S1528. In step S1529, the execution number management module 511 returns to step S1527 when the other data acquisition process (S1517 described later) is completed.

ステップ1527において、該当のテナントIDの実行中処理数1001が前記同時実行可能処理数上限値に達していないと判定された場合、ステップS1515でバッチ印刷情報管理モジュール506は、ステップS1510で受信したURLパラメーター「tenant_ID」の値をキーとして、HD211に保存されたバッチ印刷情報内を検索し、該当のテナントIDに紐づくサーバBアクセストークンを特定し取得する。   If it is determined in step 1527 that the number of currently executing processes 1001 of the corresponding tenant ID has not reached the upper limit value of the simultaneously executable processes, the batch print information management module 506 in step S1515 receives the URL received in step S1510. Using the value of the parameter “tenant_ID” as a key, the batch print information stored in the HD 211 is searched, and the server B access token associated with the corresponding tenant ID is specified and acquired.

ステップS1516でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップS1510で受信したURLパラメーター「tenant_ID」の値をキーとして、HD211に保存されたバッチ印刷情報内を検索し、該当のテナントIDに紐づくサーバCアクセストークンを特定し取得する。   In step S1516, the batch print information management module 506 of the service providing server A 500 searches the batch print information stored in the HD 211 using the value of the URL parameter “tenant_ID” received in step S1510 as a key, and sets the corresponding tenant ID. The server C access token to be associated is specified and acquired.

次に、ステップS1530で、実行数管理モジュール511は該当のテナントIDの実行中処理数1001をカウントアップして更新する。   Next, in step S1530, the execution number management module 511 counts up and updates the number of processes being executed 1001 for the corresponding tenant ID.

ステップS1517で、サービス提供サーバA500のデータ取得モジュール502は、サービス提供サーバB550に対して業務データの取得要求(クエリ)を行う。サービス提供サーバB550が公開するWebサービスAPIのパラメーターに対して、ステップS1515で取得したサーバBアクセストークンを指定することで業務データの取得が可能となる。   In step S1517, the data acquisition module 502 of the service providing server A 500 makes a business data acquisition request (query) to the service providing server B 550. By specifying the server B access token acquired in step S1515 for the parameters of the Web service API published by the service providing server B 550, the business data can be acquired.

ステップS1518でサービス提供サーバB550は、業務データ取得のAPI要求を受けて、サービス提供サーバA500へ業務データを送信する。   In step S1518, the service providing server B 550 receives the business data acquisition API request and transmits the business data to the service providing server A 500.

業務データの取得が完了した場合、ステップS1531で、実行数管理モジュール511は該当のテナントIDの実行中処理数1001をカウントダウンして更新する。   When the acquisition of the business data is completed, in step S1531, the execution number management module 511 counts down and updates the number of processes in progress 1001 for the corresponding tenant ID.

ステップS1519で、サービス提供サーバA500の文書生成モジュール503は、不図示のフォーム管理モジュールが管理するフォームを取得して、前記取得した業務データと前記取得したフォームから文書データを生成する。ステップ1518の文書生成処理は公知のため説明は割愛する。   In step S1519, the document generation module 503 of the service providing server A 500 acquires a form managed by a form management module (not shown), and generates document data from the acquired business data and the acquired form. Since the document generation process in step 1518 is known, the description thereof is omitted.

ステップS1520で、サービス提供サーバA500のアクセストークン検証モジュール510は、ステップS1516で取得したサーバCアクセストークンを指定して認証サーバA400のアクセストークン妥当性検証APIを呼び出し、妥当であるかを検証する。前記ステップS1519の文書データ生成は、取得した業務データが大量にある場合などに時間がかかる。このため、本ステップS1519にてサーバCアクセストークンの有効性を事前に検証する。   In step S1520, the access token verification module 510 of the service providing server A500 specifies the server C access token acquired in step S1516 and calls the access token validity verification API of the authentication server A400 to verify whether it is valid. The document data generation in step S1519 takes time when there is a large amount of acquired business data. Therefore, in step S1519, the validity of the server C access token is verified in advance.

ステップS1521で認証サーバA400は、アクセストークン妥当性検証APIが呼び出されると、指定されたアクセストークンが妥当かどうかを検証して、結果をサービス提供サーバA500に返す。前記取得したサーバCアクセストークンが妥当である場合、ステップS1522に遷移し、妥当でない場合、図16のステップS1607に遷移する。妥当でない場合のフローについては図16で別途説明する。   In step S1521, when the access token validity verification API is called, the authentication server A400 verifies whether the specified access token is valid and returns the result to the service providing server A500. If the acquired server C access token is valid, the process proceeds to step S1522, and if not valid, the process proceeds to step S1607 in FIG. The flow when it is not valid will be described separately with reference to FIG.

ステップS1522でサービス提供サーバA500の文書送信モジュール508は、サービス提供サーバC560に対して、ステップS1519で生成した文書データを送信する。サービス提供サーバC560が公開するWebサービスAPIのパラメーターに対して、ステップS1516で取得したサーバCアクセストークンを指定することで文書データの送信が可能となる。   In step S1522, the document transmission module 508 of the service providing server A500 transmits the document data generated in step S1519 to the service providing server C560. By specifying the server C access token acquired in step S1516 for the parameters of the Web service API published by the service providing server C560, document data can be transmitted.

ステップS1523でサービス提供サーバC560のアクセス制御モジュール561は、文書データを受信し、ステップS1524で文書印刷モジュール562がその文書データを印刷する。   In step S1523, the access control module 561 of the service providing server C560 receives the document data, and in step S1524, the document print module 562 prints the document data.

ステップS1525でサービス提供サーバA500の文書送信モジュール508は、クライアントPC200のブラウザに対して、文書データの送信完了通知を返す。なお、本フローでは、サービス提供サーバC560での文書データ印刷(S1524)の完了を待たずに、文書送信完了通知をブラウザへ返しているが、文書データ印刷の完了を待って、印刷完了通知をブラウザへ返すようにしてもよい。   In step S1525, the document transmission module 508 of the service providing server A 500 returns a document data transmission completion notification to the browser of the client PC 200. In this flow, the document transmission completion notification is returned to the browser without waiting for the completion of the document data printing (S1524) in the service providing server C560. However, the completion of the document data printing is waited for and the printing completion notification is sent. You may make it return to a browser.

ステップS1526でクライアントPC200のブラウザは、ステップS1524にて返された文書データの送信完了通知を受理する。   In step S1526, the browser of the client PC 200 receives the document data transmission completion notification returned in step S1524.

以上でサービス提供サーバA500、サービス提供サーバC510、サービス提供サーバB550および認証サーバA500が実行するフローが終了する。   The flow executed by the service providing server A 500, the service providing server C 510, the service providing server B 550, and the authentication server A 500 ends here.

図16は本実施の形態に係る、サービス提供サーバA500が実行するフローである。本フローは、業務データ取得に必要となるサーバBアクセストークンおよび文書データ送信に必要となるサーバCアクセストークンの期限が切れた場合の処理を示したフローである。なお、図15と同様のフローにおいては、同じ符号を付与しており、以下、差異部分のみ説明する。   FIG. 16 is a flow executed by the service providing server A 500 according to the present embodiment. This flow is a flow showing processing when the server B access token necessary for business data acquisition and the server C access token necessary for document data transmission have expired. In addition, in the flow similar to FIG. 15, the same code | symbol is provided and only a different part is demonstrated hereafter.

ステップS1601でサービス提供サーバA500のデータ取得モジュール502は、ステップS1517での業務データ取得が成功したかどうかを判断する。成功した場合ステップS1519に遷移し、失敗した場合ステップS1602に遷移する。アクセストークンの期限が切れた場合やデータ取得のクエリに何らかの問題がある場合に、業務データ取得が失敗する場合がある。   In step S1601, the data acquisition module 502 of the service providing server A 500 determines whether the business data acquisition in step S1517 is successful. If successful, the process proceeds to step S1519. If unsuccessful, the process proceeds to step S1602. Business data acquisition may fail if the access token expires or there is some problem with the data acquisition query.

ステップS1602でサービス提供サーバA500のデータ取得モジュール502は、業務データが取得できなかった場合にサービス提供サーバB550から発行されるエラーを解析して、サーバBアクセストークンの期限切れエラーかどうかを判断する。期限切れエラーの場合ステップS1603に遷移し、そうでない場合、何らかの理由(例えば存在しないテーブルをクエリで指定している等)で業務データが取得できないと判断し、ステップS1606でフローを中断する。   In step S1602, the data acquisition module 502 of the service providing server A 500 analyzes an error issued from the service providing server B 550 when business data cannot be acquired, and determines whether or not the server B access token has expired. If it is an expiration error, the process proceeds to step S1603. If not, it is determined that business data cannot be acquired for some reason (for example, a nonexistent table is specified by a query), and the flow is interrupted in step S1606.

ステップS1603でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、図13のステップS1312で保存されたサーバBリフレッシュトークンを取得する。バッチ印刷情報管理モジュール506は、ステップS1510で受信したURLパラメーター「tenant_ID」の値をキーとしてHD211のバッチ印刷情報内を検索し、該当のテナントIDに紐づくサーバBリフレッシュトークンを特定する。   In step S1603, the batch print information management module 506 of the service providing server A 500 acquires the server B refresh token stored in step S1312 of FIG. The batch print information management module 506 searches the HD 211 batch print information using the URL parameter “tenant_ID” received in step S1510 as a key, and identifies the server B refresh token associated with the corresponding tenant ID.

ステップS1604でサービス提供サーバA500のアクセストークン取得モジュール505は、認証サーバB450に対して、サーバBアクセストークンの再取得リクエストを行う。この際サービス提供サーバA500のアクセストークン取得モジュール505は、リクエストのURLパラメーターとして、ステップS1603で取得したリフレッシュトークンを含める。リクエストを受けた認証サーバB450は、リフレッシュトークンの検証を行い、妥当であればサーバBアクセストークンを再度発行し、そのトークンをレスポンスに含めてサービス提供サーバA500に返す。   In step S1604, the access token acquisition module 505 of the service providing server A 500 makes a server B access token reacquisition request to the authentication server B 450. At this time, the access token acquisition module 505 of the service providing server A 500 includes the refresh token acquired in step S1603 as the URL parameter of the request. Upon receiving the request, the authentication server B 450 verifies the refresh token, and if valid, issues the server B access token again, includes the token in the response, and returns it to the service providing server A 500.

ステップS1605でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップS1604で認証サーバB450から再取得したサーバBアクセストークンを、サービス提供サーバA500のテナントIDに紐付けてHD211に再保存する。   In step S1605, the batch print information management module 506 of the service providing server A500 associates the server B access token reacquired from the authentication server B450 in step S1604 with the tenant ID of the service providing server A500 and resaves it in the HD 211.

ステップS1607でサービス提供サーバA500のアクセストークン検証モジュール510は、ステップS1520で認証サーバA400から返されたサーバCアクセストークンの妥当性検証結果をもとに、サーバCアクセストークンの期限が切れているかどうかを判断する。   In step S1607, the access token verification module 510 of the service providing server A500 determines whether the server C access token has expired based on the validity verification result of the server C access token returned from the authentication server A400 in step S1520. Judging.

期限切れの場合ステップS1608に遷移し、そうでない場合、ステップS1522に遷移する。   If it has expired, the process proceeds to step S1608; otherwise, the process proceeds to step S1522.

ステップS1608でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、図11のステップS1108で保存されたサーバCリフレッシュトークンを取得する。バッチ印刷情報管理モジュール506は、ステップS1510で受信したURLパラメーター「tenant_ID」の値をキーとしてHD211のバッチ印刷情報内を検索し、該当のテナントIDに紐付くサーバCリフレッシュトークンを特定する。   In step S1608, the batch print information management module 506 of the service providing server A500 acquires the server C refresh token stored in step S1108 of FIG. The batch print information management module 506 searches the HD 211 batch print information using the value of the URL parameter “tenant_ID” received in step S1510 as a key, and specifies the server C refresh token associated with the corresponding tenant ID.

ステップS1609でサービス提供サーバA500のアクセストークン取得モジュール505は、認証サーバA500のサーバCアクセストークンの再取得APIを呼び出す。この際サービス提供サーバA500のアクセストークン取得モジュール505は、APIの呼び出しパラメーターとして、ステップS1608で取得したサーバCリフレッシュトークンを指定する。API呼び出しを受け付けた認証サーバA400は、リフレッシュトークンの検証を行い、妥当であればサーバCアクセストークンを再度発行し、そのトークンをAPIの戻り値としてサービス提供サーバA500に返す。   In step S1609, the access token acquisition module 505 of the service providing server A500 calls the server C access token reacquisition API of the authentication server A500. At this time, the access token acquisition module 505 of the service providing server A 500 designates the server C refresh token acquired in step S1608 as an API call parameter. The authentication server A 400 that has received the API call verifies the refresh token, and if valid, issues the server C access token again and returns the token to the service providing server A 500 as a return value of the API.

ステップS1610でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップS1609で認証サーバA400から再取得したサーバCアクセストークンを、サービス提供サーバA500のテナントIDに紐付けてHD211に再保存する。   In step S1610, the batch print information management module 506 of the service providing server A500 associates the server C access token reacquired from the authentication server A400 in step S1609 with the tenant ID of the service providing server A500 and resaves it in the HD 211.

100 WAN
101 LAN
200 クライアントPC
300 認証サービス決定サービス
400 認証サーバA
450 認証サーバB
500 サービス提供サービス
100 WAN
101 LAN
200 client PC
300 Authentication service decision service 400 Authentication server A
450 Authentication server B
500 Service provision service

Claims (3)

クライアントPC200、および認証サービスを提供する少なくとも1つ以上のアイデンティティプロバイダ装置と通信可能なサービス提供サーバA500、サービス提供サーバB550およびサービス提供サーバC5660が連携するシステムであって、
実行数管理モジュール511がテナント毎に実行中処理数を管理する手段1001と、サービス提供サーバB550の同時実行可能処理数上限値に達しているかを判定するステップS1527と、処理の実行を待機する処理実行待機ステップS1528と、他の実行中処理が完了したかを判定するステップS1529と、前記実行中処理数管理手段1001の処理数をカウントアップする処理数カウントアップステップS1530と、処理を実行する処理実行ステップS1517と、前記実行中処理数管理手段1001の処理数をカウントダウンする処理数カウントダウンステップS1531と、を有するシステム。
A system in which a service providing server A 500, a service providing server B 550, and a service providing server C 5660 that can communicate with a client PC 200 and at least one or more identity provider devices that provide an authentication service cooperate with each other.
A means 1001 for managing the number of processes being executed by the execution number management module 511 for each tenant, a step S1527 for determining whether or not the upper limit of the simultaneously executable process number of the service providing server B 550 has been reached, and a process waiting for execution of the process Execution waiting step S1528, step S1529 for determining whether other in-execution processing is completed, processing number count-up step S1530 for counting up the processing number of the in-execution processing number management means 1001, and processing for executing processing A system having an execution step S1517 and a process count down step S1531 for counting down the process count of the process count management means 1001 during execution.
前記処理実行待機ステップS1528は、実行中処理数が上限に達している場合に実行することを特徴とする請求項1に記載のシステム。 The system according to claim 1, wherein the process execution standby step S1528 is executed when the number of processes being executed has reached an upper limit. 前記処理数カウントアップステップS1530、前記処理実行ステップS1517、および前記処理数カウントダウンステップS1531は、実行中処理数が上限に達していない場合に実行することを特徴とする請求項1に記載のシステム。
The system according to claim 1, wherein the processing number count-up step S1530, the processing execution step S1517, and the processing number count-down step S1531 are executed when the number of processes being executed has not reached the upper limit.
JP2013009763A 2013-01-23 2013-01-23 Service provider device, control method for controlling service provider device and program Pending JP2014142736A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013009763A JP2014142736A (en) 2013-01-23 2013-01-23 Service provider device, control method for controlling service provider device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013009763A JP2014142736A (en) 2013-01-23 2013-01-23 Service provider device, control method for controlling service provider device and program

Publications (1)

Publication Number Publication Date
JP2014142736A true JP2014142736A (en) 2014-08-07

Family

ID=51423977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013009763A Pending JP2014142736A (en) 2013-01-23 2013-01-23 Service provider device, control method for controlling service provider device and program

Country Status (1)

Country Link
JP (1) JP2014142736A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017539017A (en) * 2014-11-18 2017-12-28 オース0,インコーポレイテッド Identity infrastructure as a service
JP2018160098A (en) * 2017-03-23 2018-10-11 日本電気株式会社 Workflow system, processing system, method and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017539017A (en) * 2014-11-18 2017-12-28 オース0,インコーポレイテッド Identity infrastructure as a service
JP2018160098A (en) * 2017-03-23 2018-10-11 日本電気株式会社 Workflow system, processing system, method and program

Similar Documents

Publication Publication Date Title
JP6141041B2 (en) Information processing apparatus, program, and control method
US9021570B2 (en) System, control method therefor, service providing apparatus, relay apparatus and computer-readable medium
EP3404574B1 (en) Information processing system and control method
JP5730082B2 (en) Print server, printing system, control method, and program.
US9065828B2 (en) System for delegation of authority, access management service system, medium, and method for controlling the system for delegation of authority
JP6929181B2 (en) Devices and their control methods and programs
JP5988699B2 (en) Cooperation system, its cooperation method, information processing system, and its program.
US8561157B2 (en) Method, system, and computer-readable storage medium for establishing a login session
JP4548660B2 (en) Method and apparatus for managing workflow in single sign-on framework
CN102238008A (en) Image sending apparatus and authentication method in image sending apparatus
JP2011128994A (en) Apparatus and method for processing information, and computer program
CA2995394C (en) System of device authentication
WO2021014863A1 (en) Information processing device, control method, and program
JP2016115260A (en) Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program
CN111562891B (en) Printing apparatus, control method, and storage medium
CN116170234B (en) Single sign-on method and system based on virtual account authentication
JP2014142736A (en) Service provider device, control method for controlling service provider device and program
US10735399B2 (en) System, service providing apparatus, control method for system, and storage medium
JP2014186707A (en) Document generation system
JP2015082183A (en) Document creation system
JP2020154447A (en) Information processing system and program
JP2016053858A (en) Service provider, control method for controlling service provider, and program
US20190182234A1 (en) Storing, managing and accessing information in a repository within a security context
JP2013037641A (en) Document generation system