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

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

Info

Publication number
JP6141041B2
JP6141041B2 JP2013027837A JP2013027837A JP6141041B2 JP 6141041 B2 JP6141041 B2 JP 6141041B2 JP 2013027837 A JP2013027837 A JP 2013027837A JP 2013027837 A JP2013027837 A JP 2013027837A JP 6141041 B2 JP6141041 B2 JP 6141041B2
Authority
JP
Japan
Prior art keywords
token
service providing
providing server
authentication
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013027837A
Other languages
English (en)
Other versions
JP2014157480A (ja
JP2014157480A5 (ja
Inventor
加藤 豊
豊 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2013027837A priority Critical patent/JP6141041B2/ja
Priority to US14/180,542 priority patent/US9185102B2/en
Publication of JP2014157480A publication Critical patent/JP2014157480A/ja
Publication of JP2014157480A5 publication Critical patent/JP2014157480A5/ja
Application granted granted Critical
Publication of JP6141041B2 publication Critical patent/JP6141041B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key

Description

本発明は、情報処理装置及びプログラム、制御方法の技術に関する。
従来、アクセストークンを用いて認証する技術が開示されている。
特許文献1は画像形成装置が端末装置にトークンを発行して、端末装置は発行されたトークンを用いて画像形成装置による認証を受ける技術を開示している。また、トークンの検証を画像形成装置で行う技術についても開示している。
特開2009−251709号公報
ここで識別子に対応する第1のトークンを用いて第1の外部情報処理装置からデータを取得して、取得したデータから文書を生成して、同じ識別子に対応する第2のトークンを用いて第2の外部情報処理装置に生成した文書を送信する環境を想定する。
しかし、特許文献1は前述の環境を想定していないため、識別子から第1のトークンと第2のトークンを特定できない。そのため、第1のトークンを用いて第1の外部情報処理装置からデータを取得することも、第2のトークンを用いて第2の外部情報処理装置に文書を送信することも当然できない。
よって本発明では、識別子に基づいて第1のトークンと第2のトークンを特定して、特定された第1のトークンを第1の外部情報処理装置に用いて、特定された第2のトークンを第2の外部情報処理装置に用いることで、トークンを活用することを目的とする。
上記の目的を達成するための本発明に係る情報処理装置は、
識別子を第1の外部情報処理装置から受け付ける受付手段と、
前記識別子に基づいて、前記第1の外部情報処理装置からデータを取得するための第1のトークンと、認証処理装置で検証結果を取得するための第2のトークンを特定する特定手段と、
前記第1のトークンを用いて前記第1の外部情報処理装置からデータを取得して、取得した前記データから文書を生成する生成手段と、
前記第2のトークンを前記認証処理装置に送信することで、前記認証処理装置から前記第2のトークンの前記検証結果を取得する取得手段と、
前記第2のトークンを用いて第の外部情報処理装置に生成した前記文書を送信する送信手段と、を有することを特徴とする。
本発明によれば、識別子に基づいて第1のトークンと第2のトークンを特定して、特定された第1のトークンを第1の外部情報処理装置に用いて、特定された第2のトークンを第2の外部情報処理装置に用いることで、トークンを活用することができる。
ネットワーク構成を示す図である。 ハードウェア構成図である。 サービス提供サーバA500のモジュール構成図である。 サービス提供サーバC560のモジュール構成図である。 サービス提供サーバB550のモジュール構成図である。 サービス提供サーバB550のスケジュールジョブ登録画面の例である。 サービス提供サーバB550の登録済みスケジュールジョブ一覧画面の例である。 サービス提供サーバA500のバッチ印刷情報の設定画面の例である。 サービス提供サーバB550の秘密鍵登録画面の例である。 サービス提供サーバA500のバッチ印刷情報の例である。 ブラウザ、サービス提供サーバA500、認証サーバA400が実行するフローである。 サービス提供サーバA500が実行するフローである。 ブラウザ、サービス提供サーバA500、認証サーバB450が実行するフローである。 ブラウザ、サービス提供サーバA500、サービス提供サーバB550が実行するフローである。 サービス提供サーバA500、サービス提供サーバB550、サービス提供サーバC560、認証サーバA400が実行するフローである。 サービス提供サーバA500が実行するフローである。 ダイジェスト認証のチャレンジの例である。 ダイジェスト認証のレスポンスの例である。 本発明の第2の実施の形態に係るサービス提供サーバA500が実行するフローである。
クラウドプラットフォーム上で業務データの管理や各種処理を行う方法について説明する。ユーザは、クライアントPCのブラウザからインターネットを介してクラウドプラットフォームのWebページにアクセスし、そのWebページ上で閲覧したい業務データを表示する。例えば、その画面から文書作成指示を行うと、文書生成サーバにリダイレクトされ、文書生成サーバがクラウドプラットフォームにある業務データを取得して文書を生成し、文書をクライアントPC200やクラウドプラットフォームに送信する。クラウドプラットフォームの代表例として、例えば、Salesforce.com社のSalesforce CRMが挙げられる。
クラウドプラットフォームや文書生成サーバはマルチテナントで動作する。テナントとは、クラウドプラットフォームや文書生成サーバを使用する契約を締結した企業や組織の単位である。マルチテナントで動作するサービスは、1つのシステムで複数のテナントのデータを管理し、あるテナントのデータが別のテナントから参照できないよう各テナントのデータを分離して管理する。自身のテナントのデータのみを参照させるため、クラウドプラットフォームや文書生成サーバはユーザ認証を行う。
クラウドプラットフォームと文書生成サーバが連携を行う場合、ユーザがそれぞれのサーバで認証を行うことなくサーバ間で認証を連携させることが可能である。複数のサーバ間で認証を連携させる技術として、SAML(Security Assertion Markup Language)によるシングルサインオン (以下SSO) の仕組みが挙げられる。SAMLのSSOにおいて、ユーザは、認証サービスを提供する側(IdentityProvider、以下IdP)、および認証サービスの認証結果を信頼してサービスを提供する側(ServiceProvider、以下SP)の両方のユーザIDを保有している。ユーザがIdPで認証を受けると、SPはその認証結果を信頼して、そのアクセスをSP内で管理するIDとして認証する(IdP先行)。また、IdPで認証を受けていない未認証のユーザがSPにアクセスしてきた場合、SPは、未認証のユーザを適切なIdPへと誘導し、IdPで認証させる(SP先行)。
SAMLによるSSOを行う場合、IdPが保有するIDとSPが保有するIDを対応付け(以下、ユーザマッピングと称する)を行って管理する。特に、ユーザを識別することが不可欠なサービスと文書生成サーバを連携させる場合、ユーザマッピングによるID管理が必要となる。ユーザを識別することが不可欠なサービスには、文書をID毎に管理・印刷する印刷サービスが挙げられる。
しかしながら上記の方法には以下の問題が挙げられる。複数のサービス提供サーバの連携によって成立つ自動ワークフローシステム(夜間バッチ印刷など)をクラウド環境で実現する場合、ユーザが介在しないため、通常のユーザを基準とした認証の仕組みを用いることが出来ない。また、連携するサービス提供サーバ間の両方にユーザ名やパスワード等のアカウント情報を保持した場合、他のサービスのアカウント情報を管理しなければならないことになり、不正な成り済ましや情報漏洩等のセキュリティリスクが増大する。
さらに、クラウド環境における各サービスはマルチテナントで動作する必要があり、サーバ連携による自動ワークフロー実行時、それがどのテナントのフローなのか特定できなければならない。また、各テナントを特定するための情報はテナントごとに分離され安全に管理される必要がある。
以降、サービス提供サーバ同士が連携してスケジュールジョブを実行するシステムにおいて、夜間バッチ印刷等のユーザが介在しないシステム権限で動作するスケジュールジョブを実行する場合について説明する。その際、両サーバにユーザ名やパスワードを保持すること無く安全に連携を実現する方法についても説明する。
[実施例1]
図1は、本発明の実施例のシステム構成を示すブロック図である。
100は、Wide Area Network(WAN100)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。101は各構成要素を接続するLocal Area Network(LAN101)である。複数のLAN101は、WAN100を介することで互いの装置が通信可能になる。
200はユーザが操作するクライアントPC200であり、後述するサービス提供サーバA500やサービス提供サーバB550に対してブラウザ220を用いてリクエストを発行する。以降、クライアントPC200上で実行されるブラウザ220を単にブラウザ220と呼ぶ。
300はユーザのアクセスを適切な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は同じネットワーク内(イントラネット内)に構築されたサーバ群となる。また、さらに各サーバは1台で構成されていてもよいし、複数台で構成されていても構わない。このように1台又は複数台で構成されたシステムをサーバーシステムと呼ぶ。
クライアントPC200はまず、バッチ印刷用のスケジュールジョブを登録するためサービス提供サーバB550にアクセスする。サービス提供サーバB550は未認証のユーザアクセスを受け付けると、不図示の認証画面を表示し、ユーザ認証を行う。ユーザを認証すると、バッチ印刷用のスケジュールジョブ登録画面の表示を行う。
図6は、本実施の形態に係るサービス提供サーバB550がブラウザ220に提供するバッチ印刷用のスケジュールジョブ登録画面601の例である。スケジュールジョブ登録画面601は、スケジュールジョブの名前を設定するジョブ情報設定領域602、スケジュールジョブを開始する時刻を設定するジョブ開始時刻設定領域603、スケジュールジョブで実行されるバッチ印刷の印刷パラメータを設定する印刷パラメータ設定領域604、およびこれらの設定を登録する登録ボタン605から成る。ユーザ(管理者)は、スケジュールジョブ登録画面601を操作し、スケジュールジョブを実行したい時刻および印刷パラメータ等を入力して登録ボタン605を押す。登録ボタン605が押下されると、サービス提供サーバB550は、指示された設定をテナントごとの管理領域に保存する。保存されたスケジュールジョブに関する各種設定は、サービス提供サーバB550がブラウザ220に提供するスケジュールジョブ一覧画面でいつでも確認可能である。
図7は、本実施の形態に係るサービス提供サーバB550がブラウザ220に提供するスケジュールジョブ一覧画面701の例である。一覧表示により、スケジュールジョブの名前702やジョブの開始時刻703を確認することが出来る。
次にクライアントPC200は、バッチ印刷用の事前設定を行うためにサービス提供サーバA500にアクセスする。サービス提供サーバA500は未認証のユーザアクセスを受け付けると、不図示の認証画面を表示し、ユーザ認証を行う。ユーザを認証すると、バッチ印刷用の設定画面の表示を行う。
図8は、本実施の形態に係るサービス提供サーバA500がブラウザ220に提供するバッチ印刷用の設定画面801の例である。バッチ印刷用の設定画面801には、サービス提供サーバC560のアクセストークン(以降、サーバCアクセストークン)をサービス提供サーバA500の管理領域に設定するためのボタン802、サービス提供サーバB550のアクセストークン(以降、サーバBアクセストークン)をサービス提供サーバA500の管理領域に設定するためのボタン803、サービス提供サーバB550から来るバッチ印刷要求の検証を行うための秘密鍵804が表示されている。アクセストークンは、各サービス提供サーバの機能へのアクセスを許可するトークンで、通常、ユーザによる事前認可操作を経て認証サーバから発行される。ユーザ(管理者)によりボタン802、803が押下されると、サービス提供サーバA500は、それぞれのサーバから取得したアクセストークンをテナントの識別番号(テナントID)に紐付けて管理領域へ保存する。また、秘密鍵804については、テナントID発行時(新規にテナントを登録した時)に生成され、その際テナントIDに紐付けて管理する構成としても構わない。
さらにクライアントPC200は、バッチ印刷用の事前設定を行うためにサービス提供サーバB550にアクセスする。サービス提供サーバB550における認証手続きは前記と同様である。ユーザ認証済みであれば、秘密鍵登録画面の表示を行う。
図9は、本実施の形態に係るサービス提供サーバB550がブラウザ220に提供する秘密鍵登録画面901の例である。ユーザ(管理者)は、秘密鍵入力エリア902に対して、前記バッチ印刷用の設定画面801に表示された秘密鍵を入力し、登録ボタン903を押す。登録ボタン903が押下されると、サービス提供サーバB550は、秘密鍵をテナントごとの管理領域に保存する。
サービス提供サーバB550はスケジュールジョブの開始時刻になると、スケジュールジョブを開始し、サービス提供サーバA500にバッチ印刷を要求する。
サービス提供サーバA500はバッチ印刷の要求を受け付けると、その要求が妥当であるかを検証し、妥当であればサーバBアクセストークンを使ってサービス提供サーバB550からデータを取得する。そして取得したデータに基づいて生成された文書をサーバCアクセストークンを使ってサービス提供サーバC560に送信する。
図2は本実施の形態に係るクライアントPC200の構成を示す図である。また認証サービス決定サーバ300、認証サーバA400、認証サーバB450、サービス提供サーバA500、サービス提供サーバB550、サービス提供サーバC560を提供するサーバコンピューターの構成も同様である。このように、本実施形態のクライアントPC200およびサーバには一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、或いはHD(ハードディスク)211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。なお、HD211はSSD(Solid State Disk)であっても構わない。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するHD211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
尚、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はHD211にインストールされたアプリケーションプログラムである。
加えて、CPU201がHD211に記憶されているプログラムに基づき処理を実行することによって、図3乃至5に示されるようなソフトウェア構成及び後述するフローの各ステップの処理が実現される。
図5は、本実施の形態に係るサービス提供サーバB550のモジュール構成図である。サービス提供サーバB550は、アクセス制御モジュール551、ページ生成モジュール552、スケジュールジョブ登録モジュール5531,5541、スケジュールジョブ情報管理モジュール5532,5542、スケジュールジョブ実行モジュール5533,5543、バッチ印刷要求モジュール5534,5544、秘密鍵管理モジュール5535,5545、認証情報付加モジュール5536,5546、業務データ管理モジュール5537,5547を備える。
サービス提供サーバB550がアクセスを受け付けると、ユーザのアクセスが認証済みであるか否かをアクセス制御モジュール551が判断し、未認証であればページ生成モジュール552が認証画面をブラウザ220に提供する。認証済みであればサービス提供サーバB550はサービスを提供する。
スケジュールジョブ登録モジュール5531,5541はスケジュールジョブを登録する。ジョブ開始時間等のスケジュールジョブ関連情報は、スケジュールジョブ情報管理モジュール5532,5542によって管理される。
スケジュールジョブの開始時刻になると、スケジュールジョブ実行モジュール5533,5543がスケジュールジョブを実行する。バッチ印刷要求モジュール5534,5544はスケジュールジョブ実行モジュール5533,5543から呼び出され、サービス提供サーバA500に対してバッチ印刷の要求リクエストを行う。サービス提供サーバA500にて前記バッチ印刷リクエストの妥当性検証を行うため、秘密鍵管理モジュール5535,5545が秘密鍵の保存および取得を行う。そして認証情報付加モジュール5536,5546が妥当性検証に必要な情報を生成してリクエストに付加する。
サービス提供サーバB550が業務データ取得のリクエストを受け付けると、業務データ管理モジュール5537,5547が業務データを取得し、リクエストの発行元に返却する。
また、サービス提供サーバB550は、スケジュールジョブ登録モジュール5531,5541、スケジュールジョブ情報管理モジュール5532,5542、スケジュールジョブ実行モジュール5533,5543、バッチ印刷要求モジュール5534,5544、秘密鍵管理モジュール5535,5545、認証情報付加モジュール5536,5546、業務データ管理モジュール5537,5547をテナント毎に管理する。なお、これらテナント毎に管理されるモジュールは同一のHD211に記憶されてテナント毎のデータを論理的に分離して管理するようにしてもよいし、HD211を分けて物理的に分離して管理するようにしてもよい。また、これらのモジュールは実体としては1つである。サービス提供サーバB550がテナントIDを各モジュールに渡すことで、各モジュールはそのテナント専用の動作を行う。例えば、そのテナント固有のデータ領域のみアクセスが制限される。図5ではこのような意図をふまえてテナント毎にモジュールを記載している。
図3は、本実施の形態に係るサービス提供サーバA500のモジュール構成図である。サービス提供サーバA500は、アクセス制御モジュール501、データ取得モジュール502、文書生成モジュール503、ページ生成モジュール504、アクセストークン取得モジュール505、バッチ印刷情報管理モジュール506、秘密鍵生成モジュール507、文書送信モジュール508、認証情報検証モジュール509、アクセストークン検証モジュール510を備える。
サービス提供サーバA500がアクセスを受け付けると、アクセス制御モジュール501はアクセスが認証済みかどうかを判断する。アクセスが認証済みであればサービス提供サーバA500はサービスを提供する。
サービス提供サーバA500は、サービス提供サーバB550からのバッチ印刷リクエストに応じてバッチ印刷を行う。バッチ印刷リクエストを受けると、認証情報検証モジュール509は、受理したバッチ印刷リクエストを検証する。検証に必要な情報は、あらかじめHD211に保存されており、バッチ印刷情報管理モジュール506によって管理される。
図10はHD211に保存されたバッチ印刷情報の一例である。後述する秘密鍵およびサーバBおよびCのアクセストークンおよびリフレッシュトークンが、サービス提供サーバA500のテナントIDに紐付けられて保存されている。なお、リフレッシュトークンとは、アクセストークンの期限が切れた際に、再発行を行う際必要になる無期限のトークンである。例では、テナントID「1000AA」と「1000BB」の2つのテナントに関するバッチ印刷情報が保存されている。バッチ印刷情報として保存されている秘密鍵は、バッチ印刷リクエストの検証に使用される。具体的な検証方法については後述する。
あらかじめHD211に保存されるバッチ印刷情報のうち、秘密鍵については、秘密鍵生成モジュール507が生成したものであり、サービス提供サーバA500のテナントIDに紐付けて管理されている。また、バッチ印刷情報のうち、サーバBアクセストークンおよびサーバCアクセストークンについては、アクセストークン取得モジュール505により夫々サービス提供サーバB550およびサービス提供サーバC560から取得される。そしてこちらもサービス提供サーバA500のテナントIDに紐付けて管理されている。
データ取得モジュール502は、サーバBアクセストークンを使用してサービス提供サーバB550から業務データを取得する。文書生成モジュール503は、不図示のフォーム管理モジュールが管理するフォームを取得して、データ取得モジュール502が取得した業務データとフォームから文書を生成する。文書送信モジュール508は、文書生成モジュール503が生成した文書を、サーバCアクセストークンを使用してサービス提供サーバC560に送信する。アクセストークン検証モジュール510は、サーバBおよびサーバCアクセストークンの有効期限が切れていないかを判断し、切れている場合にトークンの再取得を行う。
図4は、本実施の形態に係るサービス提供サーバC560のモジュール構成図である。サービス提供サーバC560は、アクセス制御モジュール561、ページ生成モジュール562、文書印刷モジュール563を備える。
サービス提供サーバC560がアクセスを受け付けると、ユーザのアクセスが認証済みであるか否かをアクセス制御モジュール561が判断し、未認証であればページ生成モジュール562が認証画面をブラウザ220に提供する。認証済みであればサービス提供サーバC560はサービスを提供する。
文書印刷モジュール563は、サービス提供サーバA500から送信された文書を印刷する。詳細についてはステップ1524の説明で述べる。
以降、図11から図14を用いてバッチ印刷を行うための準備について説明する。
図11は本実施の形態に係る、ブラウザ220、サービス提供サーバA500および認証サーバA400が実行するフローである。本フローは、ブラウザ220に表示されるバッチ印刷用の設定画面801において、ユーザがサーバCアクセストークンの設定ボタン802を押下することによって始まる(ステップ1101)。
ステップ1102でサービス提供サーバA500は、サーバCアクセストークンの設定要求を受け付ける。本フロー開始前に、ブラウザ220は、ログイン操作によりサービス提供サーバA500へのユーザ認証を済ませており、サービス提供サーバC560の認証セッションIDは認証サーバA400により発行済みである。サービス提供サーバC560の認証セッションIDは、ブラウザ220によりURLパラメータ「AUTH_ID」に指定され、本ステップ1102の設定要求リクエストに含まれている。
なお、本実施例において、認証セッションIDはCookie「AUTH_SESSION_ID」に付加することを想定する。Cookie以外の方法で認証セッションIDを付加するようことも可能である。
ステップ1103でサービス提供サーバA500は、前記設定要求リクエストのURLパラメータとしてパラメータ「AUTH_ID」に含まれるサービス提供サーバC560の認証セッションIDを取得する。
ステップ1104でサービス提供サーバA500は、前記ステップ1102で取得したサービス提供サーバC560の認証セッションIDをパラメータに指定して認証サーバA400のアクセストークン取得API(Application Programming Interface)を呼び出す。
ステップ1105で認証サーバA400は、サービス提供サーバA500からのサーバCアクセストークン取得API呼び出しを受け付け、ステップ1106でサーバCアクセストークンおよびサーバCリフレッシュトークンを発行する。そして、発行したアクセストークンおよびリフレッシュトークンをサービス提供サーバA500に返す。
ステップ1107でサービス提供サーバA500は、サーバCアクセストークンおよびサーバCリフレッシュトークンをAPIの戻り値として受理する。
ステップ1108でサービス提供サーバA500は、ステップ1107で受理したサーバCアクセストークンおよびサーバCリフレッシュトークンを、サービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、本フロー開始前のログイン完了時に既に特定され、サービス提供サーバA500が識別済みとする。
ステップ1109でサービス提供サーバA500は、サーバCアクセストークンおよびサーバCリフレッシュトークンの保存が完了したことを示す保存完了画面を、ブラウザ220に返す。
ステップ1110でブラウザ220は、ステップ1109にて返された保存完了画面を表示する。
以上でブラウザ220、サービス提供サーバA500および認証サーバA400が実行するフローが終了する。なお、上記フローは認証サーバA400のアクセストークン発行APIによるアクセストークン取得のフローだが、サービス提供サーバA500がサービス提供サーバC560にアクセスするために必要な情報が取得できるのであれば他の方法でも構わない。
図12は本実施の形態に係る、サービス提供サーバA500が実行するフローである。本フローは、サービス提供サーバA500でのサーバCアクセストークン取得時のエラー処理を示したフローである。なお、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。
ステップ1201でサービス提供サーバA500は、ステップ1107においてサーバCアクセストークンおよびサーバCリフレッシュトークンを正しく取得できたかを判断する。例えば、ステップ1103で取得した認証セッションIDの有効期限が切れていた場合などに、アクセストークンの取得が失敗する可能性がある。
正しく取得できた場合、ステップ1108に遷移し、取得に失敗した場合、ステップ1202に遷移する。
サーバCアクセストークンおよびサーバCリフレッシュトークンの取得に失敗した場合、ステップ1202でサービス提供サーバA500は、サーバCアクセストークンおよびサーバCリフレッシュトークンの取得に失敗したことを示すエラー画面を、ブラウザ220に返す。
以上でサーバCアクセストークンの取得と保存に関するサービス提供サーバA500が実行するフローは終了する。
図13は本実施の形態に係る、ブラウザ220、サービス提供サーバA500および認証サーバB450が実行するフローである。本フローは、ブラウザ220に表示されるバッチ印刷用の設定画面801において、ユーザがサーバBアクセストークンの設定ボタン803を押下することによって始まる(ステップ1301)。
ステップ1302でサービス提供サーバA500は、サービス提供サーバB550のアクセストークン設定要求を受け付ける。
ステップ1303でサービス提供サーバA500は、認証サーバB450へリダイレクトするようブラウザ220に指示を行う。その際、認証サーバB450がアクセストークン設定要求元(すなわち、サービス提供サーバA)および認可完了後のリダイレクト先を識別できるように、リダイレクトパラメータとして、URLにアクセストークン設定要求元のクライアント識別子およびリダイレクトURLを付与する。クライアント識別子とは認証サーバB450へのアクセス元がサービス提供サーバA500であることを示す識別子である。
ステップ1304で認証サーバB450は、不図示のログイン画面の表示をブラウザ220に返す。
ステップ1305でブラウザ220は、ステップ1304にて返されたログイン画面を表示する。ユーザは、ブラウザ220に表示されたログイン画面に対して、サービス提供サーバB550のユーザIDおよびパスワードを入力し、認可の許可ボタンを押下する。
ユーザによる認可ボタン押下を受けて、ステップ1306でブラウザ220は、認証サーバB450に対して、サービス提供サーバA500からサービス提供サーバB550へのアクセス許可要求を行う。
ステップ1307で認証サーバB450は、ブラウザ220からの認可要求を受け付ける。ステップ1308で認証サーバB450は、サービス提供サーバA500へリダイレクトするようブラウザ220に指示を行う。リダイレクト先は、ステップ1303でサービス提供サーバA500が認証サーバB450へのリダイレクトパラメータとして、URLに付与したものである。サービス提供サーバA500へのリダイレクトURLパラメータには認可コードが含まれる。認可コードとは、アクセストークンを取得するために使用される、ユーザのアクセス許可を表す短期間のみ有効なトークンである。
リダイレクトによるアクセスを受け付けると、ステップ1309でサービス提供サーバA500は、認証サーバB450に対して、サーバBアクセストークンの取得リクエストを行う。この際サービス提供サーバA500は、リクエストのURLパラメータとして、リダイレクトのURLパラメータに含まれていた認可コードを含める。
ステップ1310で認証サーバB450は、サービス提供サーバA500からのサーバBアクセストークン取得リクエストを受理する。ステップ1311で認証サーバB450は、サーバBアクセストークンおよびサーバBリフレッシュトークンを発行する。そして、それらのトークンをサービス提供サーバA500にレスポンスとして返却する。
ステップ1312でサービス提供サーバA500は、サーバBアクセストークンおよびサーバBリフレッシュトークンをレスポンスとして受理する。
ステップ1313でサービス提供サーバA500は、ステップ1312で受理したサーバBアクセストークンおよびサーバBリフレッシュトークンをサービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、本フロー開始前のログイン完了時に既に特定され、サービス提供サーバA500が識別済みとする。
ステップ1314でサービス提供サーバA500は、サーバBアクセストークンおよびサーバBリフレッシュトークンの保存が完了したことを示す保存完了画面を、ブラウザ220に返す。
ステップ1315でブラウザ220は、ステップ1314にて返された保存完了画面を表示する。
以上でサーバBアクセストークンの取得と保存に関する、ブラウザ220、サービス提供サーバA500および認証サーバB450のフローの説明を終了する。なお、上記フローはOauthによるアクセストークン取得のフローだが、サービス提供サーバA500がサービス提供サーバB550にアクセスするために必要な情報が取得できるのであれば他の方法でも構わない。
図14は本実施の形態に係る、ブラウザ220、サービス提供サーバA500およびサービス提供サーバB550が実行するフローである。本フローは、サービス提供サーバA500が提供することでブラウザ220に表示される不図示の秘密鍵発行画面において、ユーザが秘密鍵発行ボタンを押下することによって始まる(ステップ1401)。
ステップ1402でサービス提供サーバA500は、秘密鍵発行要求を受け付ける。
ステップ1403でサービス提供サーバA500は、秘密鍵の発行(生成)を行う。本実施例における秘密鍵は、サービス提供サーバA500が生成するUUIDとサービス提供サーバA500のテナントIDを組み合わせたものとするが、別な内容でも構わない。
ステップ1404でサービス提供サーバA500は、ステップ1403で発行した秘密鍵を、サービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、本フロー開始前のログイン完了時に既に特定され、サービス提供サーバA500が識別済みとする。また、一度本ステップ1404で秘密鍵が保存された後はステップ1403で再度秘密鍵の生成は行われない。
ステップ1405でサービス提供サーバA500は、ユーザが、ステップ1403で発行された秘密鍵を確認するための秘密鍵確認画面801を、ブラウザ220に返す。
ステップ1406でブラウザ220は、ステップ1405にて返された秘密鍵確認画面801を表示する。ユーザは、後述する秘密鍵登録画面901にて秘密鍵の指定を行うために、表示された秘密鍵をメモもしくはコピーする。
ステップ1407でブラウザ220は、サービス提供サーバBが提供する秘密鍵登録画面901にアクセスする。必要に応じてユーザ認証を行う。
ステップ1408でサービス提供サーバB550は、秘密鍵の登録操作を行うための秘密鍵登録画面901を、ブラウザ220に返す。
ステップ1409でブラウザ220は、ステップ1408にて返された秘密鍵登録画面901を表示する。そして、ユーザは表示された秘密鍵登録画面901にメモもしくはコピーした秘密鍵の入力を行う。
ステップ1410でブラウザ220は、サービス提供サーバB550に対して、秘密鍵登録リクエストを発行する。リクエストのURLのパラメータとして秘密鍵が含まれるため、クライアントPC200とサービス提供サーバB550間の通信は暗号化されることが望ましい。なお、ここではURLのパラメータを用いて秘密鍵を送信するGETの例を説明したが、当然POSTによって秘密鍵を送信しても構わない。
ステップ1411でサービス提供サーバB550は、ブラウザ220からの秘密鍵登録リクエストを受理する。
ステップ1412でサービス提供サーバB550は、ステップ1411で受理したリクエストに含まれる秘密鍵を、サービス提供サーバA500のテナントIDに紐付けてHD211に保存する。なお、テナントIDは、あらかじめ不図示の保存画面によりサービス提供サーバB550に保存済みである。サービス提供サーバA500とサービス提供サーバB550のテナントIDは1対1に紐付いているものとする。また、秘密鍵およびサービス提供サーバA500のテナントIDは、サービス提供サーバB550のテナントごとに別の領域に保存され、処理対象のテナント以外からはアクセスできないよう管理されていることが望ましい。また、秘密鍵はサービス提供サーバB550のテナントIDが同一であれば、スケジュールジョブが別であっても同じものが使用される。
以上でブラウザ220、サービス提供サーバA500およびサービス提供サーバB550が実行するフローが終了する。
以降、図11から図14を用いて説明した準備が完了した後に行うバッチ印刷について説明する。
図15Aおよび図15Bは本実施の形態に係る、サービス提供サーバA500、サービス提供サーバC560、サービス提供サーバB550および認証サーバA400が実行するフローである。本フローは、サービス提供サーバB550のスケジュールジョブ情報管理モジュール5532、5542が管理するスケジュールジョブの実行開始時間に従って、スケジュールジョブ実行モジュール5533、5543によりスケジュールジョブが開始されることによって始まる。
ステップ1501でサービス提供サーバB550のスケジュールジョブ実行モジュール5533、5543は、スケジュールジョブの実行を開始する。スケジュールジョブ実行モジュール5533、5543は、スケジュールジョブ情報管理モジュール5532、5542が管理するすべてのスケジュールジョブの実行開始時間を確認し、実行開始時間となったスケジュールジョブの実行を開始する。スケジュールジョブ実行モジュール5533、5543は、スケジュールジョブの実行を開始すると、バッチ印刷要求モジュール5534、5544を呼び出し、その後の処理を任せる。
ステップ1502でサービス提供サーバB550のバッチ印刷要求モジュール5534、5544は、サービス提供サーバA500に対してバッチ印刷の要求を行う。バッチ印刷要求はユーザログインを必要としないスケジュールジョブとして実行されるため、通常のログインを経た印刷要求とは異なり、実行の主体はある特定のユーザではなくサービス提供サーバB550のシステムそのもの(システム権限)となる。このため、要求を受けるサービス提供サーバA500は、バッチ印刷要求の妥当性をユーザやテナントIDから判断することが出来ない。
ステップ1503でサービス提供サーバA500のアクセス制御モジュール501は、バッチ印刷要求を受け付ける。前述の通り、バッチ印刷要求には認証セッションID等のユーザを識別するための情報が含まれていないため、後述するステップ1504〜1512にてバッチ印刷要求を受け付けてよいかどうかの検証を行う。
ステップ1504でサービス提供サーバA500の認証情報検証モジュール509は、サービス提供サーバB550に対して、ダイジェスト認証のチャレンジを送信する。
図17は、本実施の形態に係る認証情報検証モジュール509が送信するダイジェスト認証のチャレンジの例(WWW−Authenticateレスポンスヘッダの一部)である。realm1702にはサービス提供サーバA500のサービス名がセットされている。algorithm1703はダイジェスト認証アルゴリズムで「SHA−256」がセットされている。nonce1704には認証情報検証モジュール509が生成するワンタイムトークンがセットされている。ここでワインタイムトークンとはダイジェスト認証の時に用いるダイジェスト認証専用のトークンを意味する。
ステップ1505でサービス提供サーバB550のアクセス制御モジュール551は、ダイジェスト認証のチャレンジを受信し、それを認証情報付加モジュール5536、5546に渡す。
ステップ1506でサービス提供サーバB550の秘密鍵管理モジュール5535、5545は、ステップ1412でHD211に保存された秘密鍵を取得する。秘密鍵管理モジュール5535、5545は、当該スケジュールジョブに対応するテナントIDを特定し、そのテナントIDに紐付けられた秘密鍵を取得する。秘密鍵管理モジュール5535、5545は、取得した秘密鍵を認証情報付加モジュール5536、5546に渡す。
ステップ1507でサービス提供サーバB550の認証情報付加モジュール5536、5546は、スケジュールジョブに対応するテナントIDを取得する。
ステップ1508でサービス提供サーバB550の認証情報付加モジュール5536、5546は、ステップ1505でアクセス制御モジュール551から渡されたダイジェスト認証のチャレンジ、ステップ1506で秘密鍵管理モジュール5535、5545から渡された秘密鍵、ステップ1507で取得したサービス提供サーバA500のテナントID、等からダイジェスト認証のレスポンスを作成する。
図18は、本実施の形態に係る認証情報付加モジュール5536、5546が作成するダイジェスト認証のチャレンジ(Authorizationリクエストヘッダの一部)の例である。username1802にはステップ1506で取得した秘密鍵に対応するサービス提供サーバA500のテナントIDをセットする。realm1803およびnonce1804には、前記ダイジェスト認証のチャレンジに含まれる同項目の値をセットする。cnonce1806には認証情報付加モジュール5536、5546が生成するワンタイムトークンをセットする。そして、response1807には、username1802、realm1803、nonce1804、cnonce1806およびステップ1506で秘密鍵管理モジュール5535、5545から渡された秘密鍵を連結したものをさらにalgorithm1805に指定の「SHA−256」でダイジェスト化した値をセットする。
ステップ1509でサービス提供サーバB550の認証情報付加モジュール5536、5546は、サービス提供サーバA500に対して、ステップ1508で作成したダイジェスト認証のレスポンスを送信する。なお、この際、認証情報付加モジュール5536、5546は、ダイジェスト認証のレスポンスとは別に、ステップ1507で取得したサービス提供サーバA500のテナントIDをURLパラメータ「tenant_ID」に設定する。
ステップ1510でサービス提供サーバA500のアクセス制御モジュール551は、サービス提供サーバB550から送信されたダイジェスト認証のレスポンスおよびURLパラメータを受信する。アクセス制御モジュール551は、本ステップ1510にて、URLパラメータ「tenant_ID」の値を取得し、アクセスがどのテナントからのものかを判断する。
ステップ1511でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップ1510で受信したURLパラメータ「tenant_ID」の値をキーとして、HD211に保存されたバッチ印刷情報内を検索する。そして、該当のテナントIDに紐づく秘密鍵を特定し取得する。そして、バッチ印刷情報管理モジュール506は、取得した秘密鍵およびテナントIDを認証情報検証モジュール509に渡す。
ステップ1512でサービス提供サーバA500の認証情報検証モジュール509は、ステップ1510で受信したダイジェスト認証のレスポンスの妥当性を検証する。認証情報検証モジュール509は、ステップ1510で受信したダイジェスト認証のレスポンス(Authorizationリクエストヘッダ)のusername1802、realm1803、nonce1804、cnonce1806およびステップ1511で渡された秘密鍵を、認証情報付加モジュール5536、5546でのレスポンス生成時と同じ方法で結合し、algorithm1805に指定された「SHA−256」でダイジェスト化する。認証情報検証モジュール509は、そのダイジェスト化された値と、ダイジェスト認証のレスポンスのresponse1807の値とを比較して、一致するかで妥当性を検証する。一致すれば妥当であるとみなす。ダイジェスト認証のレスポンスが妥当と判断された場合、図15Bのステップ1515に遷移する。レスポンスが不正と判断された場合、サービス提供サーバA500のページ生成モジュール504はエラー画面を生成し、サービス提供サーバB550へ送信する。この場合、バッチ印刷のスケジュールジョブはここで中断される。
ここで前述のように図15Aの処理では秘密鍵を、ダイジェスト認証を行うための識別子として用いた。よって、図15Aでは秘密鍵そのもので復号化・暗号化を行わない例について示した。しかし、これに限らずダイジェスト認証のレスポンスそのものを秘密鍵で暗号化・復号化するように構成しても構わない。
以上のステップで、サービス提供サーバA500でのバッチ印刷の受付が完了する。
図15Bを用いて図15Aの続きであるサービス提供サーバA500が受け付けたバッチ印刷の実行を行うフローについて説明する。
ステップ1515でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップ1510で受信したURLパラメータ「tenant_ID」の値をキーとして、HD211に保存されたバッチ印刷情報内を検索する。そして、該当のテナントIDに紐づくサーバBアクセストークンを特定し取得する。
ステップ1516でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップ1510で受信したURLパラメータ「tenant_ID」の値をキーとして、HD211に保存されたバッチ印刷情報内を検索する。そして、該当のテナントIDに紐づくサーバCアクセストークンを特定し取得する。
ステップ1520で、サービス提供サーバA500のアクセストークン検証モジュール510は、ステップ1516で取得したサーバCアクセストークンを指定して認証サーバA400のアクセストークン有効性検証APIを呼び出し、有効であるかを検証する。前記ステップ1519の文書生成は、取得した業務データが大量にある場合などに時間がかかる。このため、本ステップ1520にてサーバCアクセストークンの有効性を事前に検証する。
ステップ1521で認証サーバA400は、アクセストークン有効性検証APIが呼び出されると、指定されたアクセストークンが有効かどうかを検証して、検証結果をサービス提供サーバA500に返す。取得した検証結果がサーバCアクセストークンは有効であることを示す場合、ステップ1517に遷移し、有効でない(すなわち無効である)場合、図16のステップ1607に遷移する。有効でない場合のフローについては図16で別途説明する。
ステップ1517で、サービス提供サーバA500のデータ取得モジュール502は、サービス提供サーバB550に対して業務データの取得要求(クエリ)を行う。サービス提供サーバB550が公開するWebサービスAPIのパラメータに対して、ステップ1515で取得したサーバBアクセストークンを指定することで業務データの取得が可能となる。
ステップ1518でサービス提供サーバB550は、業務データ取得のAPI要求を受けて、サービス提供サーバA500へ業務データを送信する。
ステップ1519で、サービス提供サーバA500の文書生成モジュール503は、不図示のフォーム管理モジュールが管理するフォームを取得して、前記取得した業務データと前記取得したフォームから文書を生成する。ここでフォームは図6のスケジュールジョブ登録画面601で設定したものを用いる。
ステップ1519の処理の後に再度ステップ1520とステップ1521が行われる。これによりサービス提供サーバA500はサーバCアクセストークンの検証結果を再度取得する。これはステップ1517から1519の処理に時間がかかった場合に、ステップ1517の直前までサーバCアクセストークンが有効であったとしても、ステップ1519の直後ではサーバCアクセストークンが無効になっている可能性があるためである。
なお、図15Bではステップ1520と1521を2度行なっているが、どちらか一方のみを実行するように構成しても構わない。
ステップ1522でサービス提供サーバA500の文書送信モジュール508は、サービス提供サーバC560に対して、ステップ1519で生成した文書を送信する。サービス提供サーバC560が公開するWebサービスAPIのパラメータに対して、ステップ1516で取得したサーバCアクセストークンを指定することで文書の送信が可能となる。
ステップ1523でサービス提供サーバC560のアクセス制御モジュール561は、文書を受信し、ステップ1524で文書印刷モジュール563がその文書を印刷する。ここで印刷とは文書をPDLの形式に変換して、プリンタにPDLを送信してそのPDLに基づいてプリンタが印刷することを指す。
ステップ1525でサービス提供サーバA500の文書送信モジュール508は、ブラウザ220に対して、文書の送信完了通知を返す。なお、本フローでは、サービス提供サーバC560での文書印刷(ステップ1524)の完了を待たずに、文書送信完了通知をブラウザ220へ返しているが、文書印刷の完了を待って、印刷完了通知をブラウザ220へ返すようにしてもよい。
ステップ1526でブラウザ220は、ステップ1524にて返された文書の送信完了通知を受理する。
以上でサービス提供サーバA500、サービス提供サーバC560、サービス提供サーバB550および認証サーバA400が実行するフローが終了する。
図16は本実施の形態に係る、サービス提供サーバA500が実行するフローである。本フローは図15Bで説明した処理に加えて、業務データ取得に必要となるサーバBアクセストークンおよび文書送信に必要となるサーバCアクセストークンの期限が切れた場合の処理を示したフローである。なお、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。
ステップ1620はサーバCアクセストークンの有効性を検証する処理を示している。以降、ステップ1620で行われる処理について説明する。
ステップ1607でサービス提供サーバA500のアクセストークン検証モジュール510は、ステップ1520で認証サーバA400から返されたサーバCアクセストークンの有効性検証結果をもとに、サーバCアクセストークンが有効であるかどうかを判断する。
有効な場合ステップ1517に遷移し、有効でない場合ステップ1608に遷移する。図15Bを用いて説明したようにステップ1620のサーバCアクセストークンの有効性を検証する処理は2度行われる。よって、ステップ1519の後に実行されるステップ1620のステップ1607で有効でないと判断された場合にはステップ1522に遷移する。
ステップ1608でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、図11のステップ1108で保存されたサーバCリフレッシュトークンを特定して取得する。バッチ印刷情報管理モジュール506は、ステップ1510で受信したURLパラメータ「tenant_ID」の値をキーとしてHD211のバッチ印刷情報内を検索し、該当のテナントIDに紐付くサーバCリフレッシュトークンを特定する。
ステップ1609でサービス提供サーバA500のアクセストークン取得モジュール505は、認証サーバA400のサーバCアクセストークンの再取得APIを呼び出す。この際サービス提供サーバA500のアクセストークン取得モジュール505は、APIの呼び出しパラメータとして、ステップ1608で取得したサーバCリフレッシュトークンを指定する。API呼び出しを受け付けた認証サーバA400は、リフレッシュトークンの検証を行い、有効であればサーバCアクセストークンを再度発行し、そのトークンをAPIの戻り値としてサービス提供サーバA500に返す。
ステップ1611でステップ1609によるサーバCアクセストークンの再取得が成功したかどうかを判断する。判断の結果、再取得が成功した場合はステップ1610に遷移し、再取得が成功しなかった場合はステップ1612に遷移して処理を中断する。
ステップ1610でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップ1609で認証サーバA400から再取得したサーバCアクセストークンを、サービス提供サーバA500のテナントIDに紐付けてHD211に再保存する。
次にステップ1517の次のステップであるステップ1601について説明する。ステップ1601でサービス提供サーバA500のデータ取得モジュール502は、ステップ1517での業務データ取得が成功したかどうかを判断する。成功した場合ステップ1519に遷移し、失敗した場合ステップ1602に遷移する。アクセストークンの期限が切れた場合やデータ取得のクエリに何らかの問題がある場合に、業務データ取得が失敗する場合がある。
ステップ1602でサービス提供サーバA500のデータ取得モジュール502は、業務データが取得できなかった場合にサービス提供サーバB550から発行されるエラーを解析して、サーバBアクセストークンの期限切れエラーかどうかを判断する。期限切れエラーの場合ステップ1603に遷移し、そうでない場合、何らかの理由(例えば存在しないテーブルをクエリで指定している等)で業務データが取得できないと判断し、ステップ1606でフローを中断する。
ステップ1603でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、図13のステップ1313で保存されたサーバBリフレッシュトークンを特定して取得する。バッチ印刷情報管理モジュール506は、ステップ1510で受信したURLパラメータ「tenant_ID」の値をキーとしてHD211のバッチ印刷情報内を検索し、該当のテナントIDに紐づくサーバBリフレッシュトークンを特定する。
ステップ1604でサービス提供サーバA500のアクセストークン取得モジュール505は、認証サーバB450に対して、サーバBアクセストークンの再取得リクエストを行う。この際サービス提供サーバA500のアクセストークン取得モジュール505は、リクエストのURLパラメータとして、ステップ1603で取得したリフレッシュトークンを含める。リクエストを受けた認証サーバB450は、リフレッシュトークンの検証を行い、有効であればサーバBアクセストークンを再度発行し、そのトークンをレスポンスに含めてサービス提供サーバA500に返す。
ステップ1605でサービス提供サーバA500のバッチ印刷情報管理モジュール506は、ステップ1604で認証サーバB450から再取得したサーバBアクセストークンを、サービス提供サーバA500のテナントIDに紐付けてHD211に再保存する。
[実施例2]
次に、本発明を実施するための第2の形態について図面を用いて説明する。なお第1の実施の形態と共通の部分については説明を省略し、以下では差異部分のみ説明する。
図19は本実施の第2の形態に係る、サービス提供サーバA500が実行するフローである。なお、既に説明したステップと同じ処理については、既に説明したステップの番号と同一の番号を付与し、特に断りが無い限り説明は省略する。ステップ1901でサービス提供サーバA500は、受け付けたリクエストが、サービス提供サーバB550からのバッチ印刷要求なのか、ブラウザ220からのユーザ操作による印刷要求なのかを判断する。判断は、リクエストのURLパラメータとしてパラメータ「sessionid」にサービス提供サーバB550の認証ユーザのセッションIDが含まれているかどうかで行う。セッションIDが含まれていない場合、バッチ印刷要求と判断しステップ1503に遷移し、セッションIDが含まれていた場合、ユーザ操作による印刷要求と判断し、ステップ1902に遷移する。ステップ1902でサービス提供サーバA500は、前記セッションIDを用いてサービス提供サーバB550にアクセスし、業務データの取得を行い、ステップ1903で文書の生成を行う。ステップ1904でサービス提供サーバA500は、前記ステップ1903で生成された文書をサービス提供サーバC560へ送信し印刷要求リクエストを発行する。サービス提供サーバC560への文書送信にはユーザ認証が必要になるが、印刷要求リクエストのURLパラメータとしてパラメータ「AUTH_ID」にサービス提供サーバC560の認証セッションIDが含まれている。文書送信時にはその認証セッションIDを使用するものとする。
本実施の第2の形態によれば、サービス提供サーバB550からのバッチ印刷要求と、通常のブラウザ220からのユーザ操作による印刷要求とが混在した場合でも、サービス提供サーバA500の構成を変更する事無く、両方の要求に応答することが可能となる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。
即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
200 クライアントPC
400 認証サーバA
450 認証サーバB
500 サービス提供サーバB

Claims (11)

  1. 識別子を第1の外部情報処理装置から受け付ける受付手段と、
    前記識別子に基づいて、前記第1の外部情報処理装置からデータを取得するための第1のトークンと、認証処理装置で検証結果を取得するための第2のトークンを特定する特定手段と、
    前記第1のトークンを用いて前記第1の外部情報処理装置からデータを取得して、取得した前記データから文書を生成する生成手段と、
    前記第2のトークンを前記認証処理装置に送信することで、前記認証処理装置から前記第2のトークンの前記検証結果を取得する取得手段と、
    前記第2のトークンを用いて第2の外部情報処理装置に生成した前記文書を送信する送信手段と、を有することを特徴とするサーバーシステム。
  2. 前記取得手段は、前記生成手段による前記文書の生成の前に前記第2のトークンの検証結果を取得して、前記生成手段による前記文書の生成の後に前記第2のトークンの検証結果を再度取得することを特徴とする請求項1に記載のサーバーシステム。
  3. 前記第2の外部情報処理装置は、前記文書を変換して、変換された文書をプリンタに送信することを特徴とする請求項1又は請求項2に記載のサーバーシステム。
  4. 前記第1の外部情報処理装置からバッチ印刷の要求を受け付けた場合に、前記第1の外部情報処理装置の認証を行う認証手段と、を有し、
    前記受付手段は前記認証のレスポンスとして前記識別子を受け付けることを特徴とする請求項1に記載のサーバーシステム。
  5. 前記取得手段が取得した前記検証結果が前記第2のトークンは有効であることを示す場合に、前記生成手段は、前記第1のトークンを用いて前記第1の外部情報処理装置からデータを取得して、取得した前記データから文書を生成することを特徴とする請求項1に記載のサーバーシステム。
  6. コンピュータに、
    識別子を第1の外部情報処理装置から受け付ける受付工程と、
    前記識別子に基づいて、前記第1の外部情報処理装置からデータを取得するための第1のトークンと、認証処理装置で検証結果を取得するための第2のトークンを特定する特定工程と、
    前記第1のトークンを用いて前記第1の外部情報処理装置からデータを取得して、取得した前記データから文書を生成する生成工程と、
    前記第2のトークンを前記認証処理装置に送信することで、前記認証処理装置から前記第2のトークンの前記検証結果を取得する取得工程と、
    前記第2のトークンを用いて第2の外部情報処理装置に生成した前記文書を送信する送信工程と、を実行させることを特徴とするプログラム。
  7. 前記取得工程は、前記生成工程による前記文書の生成の前に前記第2のトークンの検証結果を取得して、前記生成工程による前記文書の生成の後に前記第2のトークンの検証結果を再度取得することを特徴とする請求項に記載のプログラム。
  8. 前記第2の外部情報処理装置は、前記文書を変換して、変換された文書をプリンタに送信することを特徴とする請求項6又は請求項7に記載のプログラム。
  9. 前記コンピュータに、
    前記第1の外部情報処理装置からバッチ印刷の要求を受け付けた場合に、前記第1の外部情報処理装置の認証を行う認証工程と、を実行させ、
    前記受付工程は前記認証のレスポンスとして前記識別子を受け付けることを特徴とする請求項に記載のプログラム。
  10. 前記取得工程で取得した前記検証結果が前記第2のトークンは有効であることを示す場合に、前記生成工程は、前記第1のトークンを用いて前記第1の外部情報処理装置からデータを取得して、取得した前記データから文書を生成することを特徴とする請求項に記載のプログラム。
  11. 識別子を第1の外部情報処理装置から受け付ける受付工程と、
    前記識別子に基づいて、前記第1の外部情報処理装置からデータを取得するための第1のトークンと、認証処理装置で検証結果を取得するための第2のトークンを特定する特定工程と、
    前記第1のトークンを用いて前記第1の外部情報処理装置からデータを取得して、取得した前記データから文書を生成する生成工程と、
    前記第2のトークンを前記認証処理装置に送信することで、前記認証処理装置から前記第2のトークンの前記検証結果を取得する取得工程と、
    前記第2のトークンを用いて第2の外部情報処理装置に生成した前記文書を送信する送信工程と、を有することを特徴とする制御方法。
JP2013027837A 2013-02-15 2013-02-15 情報処理装置及びプログラム、制御方法 Expired - Fee Related JP6141041B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013027837A JP6141041B2 (ja) 2013-02-15 2013-02-15 情報処理装置及びプログラム、制御方法
US14/180,542 US9185102B2 (en) 2013-02-15 2014-02-14 Server system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013027837A JP6141041B2 (ja) 2013-02-15 2013-02-15 情報処理装置及びプログラム、制御方法

Publications (3)

Publication Number Publication Date
JP2014157480A JP2014157480A (ja) 2014-08-28
JP2014157480A5 JP2014157480A5 (ja) 2016-03-31
JP6141041B2 true JP6141041B2 (ja) 2017-06-07

Family

ID=51352309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013027837A Expired - Fee Related JP6141041B2 (ja) 2013-02-15 2013-02-15 情報処理装置及びプログラム、制御方法

Country Status (2)

Country Link
US (1) US9185102B2 (ja)
JP (1) JP6141041B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2496107C (en) * 2011-10-26 2022-07-27 Cliquecloud Ltd A method and apparatus for preventing unwanted code execution
JP5900456B2 (ja) * 2013-10-09 2016-04-06 コニカミノルタ株式会社 画像処理システム、画像形成装置、中継装置、管理方法、および制御プログラム
US9426156B2 (en) * 2013-11-19 2016-08-23 Care Innovations, Llc System and method for facilitating federated user provisioning through a cloud-based system
US9313193B1 (en) * 2014-09-29 2016-04-12 Amazon Technologies, Inc. Management and authentication in hosted directory service
WO2018004027A1 (ko) * 2016-06-29 2018-01-04 주식회사 한글과컴퓨터 문서 편집에 대한 인증이 가능한 웹 기반의 전자 문서 서비스 장치 및 그 동작 방법
JP6729145B2 (ja) 2016-08-03 2020-07-22 富士通株式会社 接続管理装置、接続管理方法および接続管理プログラム
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
JP6922308B2 (ja) * 2017-03-23 2021-08-18 日本電気株式会社 ワークフローシステム、処理システム、方法及びプログラム
CN110502197B (zh) * 2018-08-30 2024-03-29 珠海奔图电子有限公司 图像形成装置注册方法、系统及图像形成装置的控制方法
US11190514B2 (en) * 2019-06-17 2021-11-30 Microsoft Technology Licensing, Llc Client-server security enhancement using information accessed from access tokens
US11381571B2 (en) * 2020-01-27 2022-07-05 Microsoft Technology Licensing, Llc Authentication framework for resource access across organizations

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784463A (en) * 1996-12-04 1998-07-21 V-One Corporation Token distribution, registration, and dynamic configuration of user entitlement for an application level security system and method
JP4478222B2 (ja) * 1997-09-24 2010-06-09 キヤノン株式会社 画像形成システム、画像形成装置及びその制御方法
JP2003242105A (ja) * 2002-02-20 2003-08-29 Fuji Xerox Co Ltd コンテンツ自動取出装置、コンテンツ自動取出方法、出力装置、出力方法及び出力プログラム
WO2006004815A1 (en) * 2004-06-25 2006-01-12 Accenture Global Services Gmbh Single sign-on with common access card
US20070199044A1 (en) * 2006-02-17 2007-08-23 Samsung Electronics Co., Ltd. Systems and methods for distributed security policy management
JP4767827B2 (ja) * 2006-12-01 2011-09-07 シャープ株式会社 認証サーバ、印刷装置、認証サーバの制御方法、印刷装置の制御方法、認証システム、プログラム及び記録媒体
US8189220B2 (en) * 2008-03-31 2012-05-29 Hewlett-Packard Development Company, L.P. Remote printing system using federated identity web services
JP5119028B2 (ja) * 2008-04-02 2013-01-16 京セラドキュメントソリューションズ株式会社 画像形成システム、画像形成装置、画像形成プログラムおよび画像形成方法
JP2011034462A (ja) * 2009-08-04 2011-02-17 Canon Inc 情報処理装置及びその処理方法
US8749821B2 (en) * 2010-10-28 2014-06-10 Hewlett-Packard Development Company, L.P. Printing system and method
JP5613532B2 (ja) * 2010-11-11 2014-10-22 株式会社日立システムズ クラウドサービス間の信頼関係構築方法及びシステム
JP5648433B2 (ja) * 2010-11-11 2015-01-07 ブラザー工業株式会社 共有画像印刷システム、共有画像印刷方法及び印刷装置
JP5730082B2 (ja) * 2011-03-08 2015-06-03 キヤノン株式会社 プリントサーバ、印刷システム、制御方法、およびプログラム。
JP5704330B2 (ja) * 2011-03-31 2015-04-22 ブラザー工業株式会社 印刷システム、印刷装置、及び、仲介装置
JP5888880B2 (ja) * 2011-06-09 2016-03-22 キヤノン株式会社 印刷システム、サーバ装置、画像形成装置および印刷処理方法
JP5820188B2 (ja) * 2011-08-19 2015-11-24 キヤノン株式会社 サーバおよびその制御方法、並びにプログラム
JP2013088950A (ja) * 2011-10-14 2013-05-13 Canon Inc 印刷システム及び印刷方法
JP6041622B2 (ja) * 2012-10-26 2016-12-14 キヤノン株式会社 印刷文書管理システム、印刷文書管理方法、及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2014157480A (ja) 2014-08-28
US9185102B2 (en) 2015-11-10
US20140237580A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
JP6141041B2 (ja) 情報処理装置及びプログラム、制御方法
US10375069B2 (en) Authorization delegation system, information processing apparatus, authorization server, control method, and storage medium
JP6682254B2 (ja) 認証連携システム及び認証連携方法、認可サーバー及びプログラム
US9571494B2 (en) Authorization server and client apparatus, server cooperative system, and token management method
CN110138718B (zh) 信息处理系统及其控制方法
JP6061633B2 (ja) デバイス装置、制御方法、およびそのプログラム。
JP6066647B2 (ja) デバイス装置、その制御方法、およびそのプログラム
JP6198477B2 (ja) 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
US9021570B2 (en) System, control method therefor, service providing apparatus, relay apparatus and computer-readable medium
JP5820188B2 (ja) サーバおよびその制御方法、並びにプログラム
US8879099B2 (en) Printing system and method including authentication and owner name acquisition
JP6929181B2 (ja) デバイスと、その制御方法とプログラム
US8799639B2 (en) Method and apparatus for converting authentication-tokens to facilitate interactions between applications
US9065828B2 (en) System for delegation of authority, access management service system, medium, and method for controlling the system for delegation of authority
US8938789B2 (en) Information processing system, method for controlling information processing system, and storage medium
JP5988699B2 (ja) 連携システム、その連携方法、情報処理システム、およびそのプログラム。
US20070283143A1 (en) System and method for certificate-based client registration via a document processing device
JP6571890B1 (ja) 電子署名システム、証明書発行システム、証明書発行方法及びプログラム
JP2016115260A (ja) 権限移譲システム、権限移譲システムに用いられる認可サーバー、リソースサーバー、クライアント、媒介装置、権限移譲方法およびプログラム
JP6465426B1 (ja) 電子署名システム、証明書発行システム、鍵管理システム及び電子証明書発行方法
JP6066586B2 (ja) 情報処理システム、その制御方法、およびそのプログラム。
JP2014142736A (ja) サービスプロバイダ装置、サービスプロバイダ装置を制御するための制御方法、およびプログラム
JP2020053100A (ja) 情報処理システムと、その制御方法とプログラム
JP2014186707A (ja) 文書生成システム
JP2016053858A (ja) サービスプロバイダ装置、サービスプロバイダ装置を制御するための制御方法、およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160212

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170216

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170502

R151 Written notification of patent or utility model registration

Ref document number: 6141041

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees