JP6415155B2 - サーバシステム、方法、およびそのプログラム - Google Patents

サーバシステム、方法、およびそのプログラム Download PDF

Info

Publication number
JP6415155B2
JP6415155B2 JP2014149939A JP2014149939A JP6415155B2 JP 6415155 B2 JP6415155 B2 JP 6415155B2 JP 2014149939 A JP2014149939 A JP 2014149939A JP 2014149939 A JP2014149939 A JP 2014149939A JP 6415155 B2 JP6415155 B2 JP 6415155B2
Authority
JP
Japan
Prior art keywords
server
environment
request
execution environment
authentication
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
JP2014149939A
Other languages
English (en)
Other versions
JP2016024721A (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 JP2014149939A priority Critical patent/JP6415155B2/ja
Publication of JP2016024721A publication Critical patent/JP2016024721A/ja
Application granted granted Critical
Publication of JP6415155B2 publication Critical patent/JP6415155B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Description

本発明は、サービス間連携を行うサーバシステム、方法、よびそのプログラムに関する。
近年、サーバコンピュータ側で業務データの管理や各種処理を行う形態としてクラウドコンピューティングシステムが普及し始めている。ユーザは、クライアントコンピュータのブラウザからインターネットを介してクラウドプラットフォームサービスのWebページにアクセスし、自動ワークフロー(夜間バッチ印刷など)を指定日時に実行するためのスケジュール登録を行う。クラウドプラットフォームの代表例として、例えば、Salesforce.com社のSalesforce CRM(登録商標)がある。
複数サービスの連携によって成立つ自動ワークフローシステム(自動夜間バッチ印刷など)を実現する場合、クラウドプラットフォームサービスは文書生成サーバへ文書生成指示を行う。そして文書生成サーバはクラウドプラットフォームサービス上にあるデータを取得して帳票を生成する。
クラウドプラットフォームサービスと文書生成サーバが連携を行う場合、ユーザがそれぞれのサーバで認証を行うことなく2つのサーバを連携させることが可能である。それが、例えばOAuthを始めとする認可の仕組みである。文書生成サーバはアクセストークンと呼ばれる認可情報を送信するとともにクラウドプラットフォームサービス上にあるデータへアクセスすることで、ユーザが認証情報を入力することなく文書生成サーバはそのデータの取得が可能となる。
また、クラウドプラットフォームサービスにはサンドボックス機能を備えるサービスもあり、運用中の環境(データや設定などの環境情報)のコピー環境を作成することが可能である。このサンドボックス環境を用いることで運用中の本番環境に影響を与えることなく、開発行為を行うことが可能となる。この場合、文書生成サーバは本番環境とテスト環境の両方にアクセスするために複数のアクセストークンを管理する必要がある。
従来、複数のアクセストークンを管理する方法について以下の方法が開示されている。特許文献1には中継サーバにアクセストークンとユーザIDを併せて保持することにより、クライアントから機能提供サービスにアクセスする際に中継サーバを介することでユーザIDのみで機能提供サービスにアクセスする方法が開示されている。
特開2014−10769
クラウドプラットフォームサービスでサンドボックス環境を作成し、両方の環境が文書生成サービスを始めとする別のクラウドサービスに処理のリクエストを送信してきた場合、別のクラウドサービスは本番環境およびサンドボックス環境にアクセスするために夫々の環境に対応する複数のアクセストークンを保持しておく必要がある。
ここで問題なのは、サンドボックス環境は本番環境のコピー環境でありどちらの環境であっても送信するリクエストの内容は同一であるので、従来の仕組みでは文書生成サービスがどのアクセストークンを使用してクラウドプラットフォームサービスにアクセスすればいいのかを特定することができない。
本願発明の目的は、同一のリクエストを送信する複数の環境と連携するサーバがリクエストを受信した際、そのリクエストが何れの環境からのリクエストであるかを認識し、使用するアクセストークンを特定することでリクエストを送信してきた環境と連携することを実現する。
本発明の一実施形に係るサーバシステムは、複数の実行環境を有するサーバと通信可能なサーバシステムであって、認証情報を入力することなく特定の実行環境からデータの取得を可能にする前記複数の実行環境毎に発行された認可情報を、夫々の認可情報が対応する実行環境と関連付くよう、前記複数の実行環境の夫々に対して一意に割り当てられた識別情報と関連付けて管理する管理手段と、前記サーバにおける任意の実行環境からデータ処理のリクエストとともに前記任意の実行環境に対して一意に割り当てられた識別情報を受信する受信手段と、前記受信手段により受信された識別情報を基に、前記管理手段により管理された認可情報の中から前記受信された前記識別情報に関連付く認可情報を特定する特定手段と、前記特定手段により特定された認可情報を用いて前記リクエストを送信した前記任意の実行環境にアクセスし、認証情報を入力することなく前記任意の実行環境からデータを取得し、取得された前記データに対し処理を施し、前記管理手段は、前記サーバシステムが提供する前記サーバとの連携を開始する指示を受け付けるための認証情報確認画面にて、組織種別として前記サーバが有する複数の実行環境の内の1つであるサンドボックス環境が指定されたことに応じて、発行された認可情報を前記サーバのサンドボックス環境と関連付け、前記サンドボックス環境が指定されなかったことに応じて、発行された認可情報を前記サーバが有する複数の実行環境の内の1つである本番環境と関連付けることを特徴とする。
同一のリクエストを送信する複数の環境と連携するサーバがリクエストを受信した際、そのリクエストが何れの環境からのリクエストであるかを認識し、使用するアクセストークンを特定することでリクエストを送信してきた環境と連携することが実現できる。
システム構成を示すブロック図 ハードウェア構成を示す図 クラウドプラットフォームサービスのソフトウェアモジュール構成図 文書生成サービスのソフトウェアモジュール構成図 文書生成サービスの認証情報確認画面 クラウドプラットフォームサービスの認証情報登録画面 文書生成サービスへのアクセストークン登録処理シーケンス 実施例1における文書生成システムの文書生成処理を示すフローチャート 実施例2における文書生成システムの文書生成処理を示すフローチャート
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本発明の実施例のシステム構成を示すブロック図である。101は、後述するクラウドプラットフォームサービス102および後述する文書生成サービス103に対してリクエストを発行するクライアント101である。クラウドプラットフォームサービス(以降、CPS)102は、クライアント101や文書生成サービス103からのリクエストに応じて、保持するデータの表示・更新等を行う。文書生成サービス103は、CPS102からのリクエストを受信して文書生成を行う。また、クライアント101からのリクエストに応じて保持する設定情報の表示・更新等を行う。
また、上記各構成要素はネットワーク100により通信可能に接続されている。ネットワークは、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれである。また、これらの組み合わせにより実現される、いわゆる通信ネットワークである。
ネットワークはデータの送受信が可能であればよい。クライアント101とCPS102および文書生成サービス103との通信手段、文書生成サービス103とCPS102やプリンタ104との通信手段、及び各サーバ間の通信手段が異なっていてもよい。
CPS102は、ユーザの管理、業務データ等のデータの管理、後述する文書生成サービス103への文書生成リクエストを送信する。また、CPS102は、複数の企業・組織から使用されることが前提であり(一般的にマルチテナントと呼ばれる)、使用する企業・組織毎に前述のユーザ管理、業務データ管理等が行われる。さらにCPS102は、サンドボックス環境という特定の組織のコピー(データや設定などの環境情報)環境の作成が可能である。このサンドボックス環境は本番環境と同じ設定、データを保持するが、本番環境とは別の環境であり、このサンドボックス環境を用いてサービス間連携のテストを行うことで運用中の本番環境に影響を与えることなく本番と同様の動作テストを行うことが出来るので精密な開発行為を行うことが可能となる。本番環境とサンドボックス環境では、外部(例えば文書生成サービス103)からのリクエストを受け付けるためのURLおよび/またはAPIが異なり、認証情報だけでなくアクセスするURLが環境の種別に一致している必要がある。
文書生成サービス103はいわゆるWebアプリケーションの機能を有するよう構成されており、クライアント101を介してアクセスする事ができ、クライアント101からのリクエストに対してユーザインタフェース情報を返答する。また、文書生成サーバ103はCPS102からの文書生成リクエストを受信すると、CPS102から業務データ等のデータを取得し、受信したデータとCPS102で管理するフォームデータを使用してオーバーレイ処理を行い、文書データを生成する。この時、適宜CPS102に対して、文書生成履歴の書込みリクエストを送信する。なお、図1に示すシステムを構成する各装置は1台ずつ存在するように示したが複数台であっても良い。サーバシステムと称した場合、1台のサーバおよび複数台のサーバから構成されるサーバ群を含むサーバのことを指す。
図2は、図1のクライアント101、CPS102、文書生成サービス103のハードウェア構成を示すブロック図である。図中、201は内部バスで接続される各デバイス(後述のROM、RAM他)を直接或いは間接的に制御し、本発明を実現するためのプログラムを実行するCPUである。202はBIOSが格納してあるROMである。203はCPU201のワーク領域として利用されたり、本発明を実現するためのソフトウェアモジュールをロードするための一時記憶として利用されたりするRAM(直接記憶装置)である。204は基本ソフトウェアであるOSやソフトウェアモジュールが記憶されているHDD(ハードディスクドライブ)、もしくはSSD(ソリッドステートドライブ)などの間接記憶装置である。205は入力装置であり不図示のキーボードやポインティングデバイスなどである。206は出力装置でありディスプレイが接続される。207はネットワーク100に接続するためのI/Fである。
これらハードウェアでは、起動後CPU201によりBIOSが実行されOSがHDD204からRAM203に実行可能にロードされる。CPU201はOSの動作に従って後述する各種ソフトウェアモジュールをHDD204からRAM203に随時、実行可能にロードする。各種ソフトウェアモジュールは上記各デバイスの協調によりCPU201によって実行され動作する。また、I/F207はネットワーク100に接続されており、OSの動作に従ってCPU201により制御され、上述した通信手段による通信を実現している。
図3は、CPS102上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図2で示したHDD204に記憶されており、前述したようにCPU201によってRAM203にロードされ実行されサーバ内にて実現される。
CPS102は以下で構成される。クライアント101または文書生成サービス103からのリクエストを受け付け、処理結果を送信する送受信部301。認証処理部302は、文書生成サービス103からのアクセストークン取得リクエストに応じてアクセストークンの生成および送信を行い、また、クライアント101または文書生成サービス103からのリクエストに応じてユーザ認証を行う。また、認証処理部302は文書生成サービス103へ文書生成リクエストを送信する際の認証処理を行う。文書生成実行履歴を含む業務データおよび各種設定をデータベースに保持し、リクエストに応じてデータの取得、あるいはデータの更新を行うデータ管理部303。クライアント101またはCPS102自身によるスケジュール実行などからのリクエストに応じて、文書生成サービス103へ文書生成リクエストを送信する文書生成要求部304。
クライアント101からのリクエストを受け付け、サンドボックス環境の作成や更新、削除を行うサンドボックス管理部305である。本番環境とサンドボックス環境の違いについて説明する。始めに、環境とはプログラム、およびデータが特定の範囲内の領域に展開されてプログラムが実行されデータ処理が行われるシステム領域を指す。そして、本番環境とはユーザからの実際の処理依頼を受けたことに応じてデータ処理を行い、その結果をユーザに提供するための実行環境である。一方、サンドボックス環境は本番環境でユーザの要望する結果が出せるか否かを検証するための実行環境である。何れも実行環境であり、同一のプログラム、同一のデータが取り扱われるので動作や構成自体に差異はなく、ただ、互いの領域に存在するプログラム、データにアクセスすることはできない。
よって、図3に示す論理的に構築されたソフトウェア構成に関して本番環境とサンドボックス環境に差異がないのはもちろんのこと、取り扱うデータ種に関しても差異はない、言わば論理的に完全に独立した実行環境同士である。しかし、リクエストを外部から受け付けた際に何れの実行環境でデータ処理を行うかを特定する必要があるため、実行環境の各種機能を呼び出すためのURL、および/またはAPIは夫々異なるという性質がある。なお、何れの環境もCPS102内で実現される実行環境であり、本実施例ではサンドボックス環境が1つとして説明するが複数存在しても良い。CPS102にて実現された各環境におけるこれら各構成要素は、互いに協調して動作することにより後述する処理を実行する。
また、上述のデータベースは管理ユーザデータや業務データ、テナントID、認証キーを格納するストレージであり、図2で示したHDD204に記憶されている。前述のデータベースに格納されるデータは企業・組織(以降、組織と表記)毎に管理される。各組織には組織IDと呼ばれる実行環境を一意に識別するための識別情報が自動的に割り当てられ、組織IDとともに各データが管理される。以降のデータ取得等の処理は組織IDをもとに行われ、組織IDの一致するデータのみを参照することが可能となっている。組織IDは本番環境および各々のサンドボックス環境で異なる値が割り当てられる。
図4は、文書生成サービス103上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図2で示したHDD204に記憶されており、前述したようにCPU201によってRAM203にロードされ実行される。文書生成サービス103は以下で構成される。クライアント101またはCPS102からのリクエストを受け付け、処理結果を送信する送受信部401。クライアント101からのログインリクエストに対するユーザ認証およびCPS102からの文書生成リクエストに対する認証を行う認証処理部402。後述のアクセストークンおよびテナントID、組織ID、組織種別を管理する設定管理部403。
文書生成リクエストによる文書生成処理の成否を含む処理状況を、文書生成実行履歴としてCPS102に保存するためのリクエストを送信する実行履歴管理部404。CPS102にアクセスして業務データを取得し、その業務データとフォームを使用してオーバーレイ処理を行い、文書データを生成する文書生成部405。なお、文書生成部405がサービス提供を行うサービス提供部である。文書生成サーバ103はこれら各構成要素の協調により、後述する処理を実行する。
表1−Aおよび表1−Bは、CPS102が保持する情報のテーブル構造例を示す表である。表1−Aは文書生成サービス103への文書生成リクエスト時に使用する認証情報T100であり、文書生成サーバ103のテナントを識別するテナントIDおよび、認証キーからなる。表1−Bは実行履歴情報T110であり、文書生成処理のジョブ実行結果情報が格納され、以下からなる。ジョブを一意に識別するジョブIDおよびジョブを判別するためのジョブ名、ジョブの実行履歴が更新された日時である実行日時、ジョブの処理状態であるステータス、ジョブの処理状態の詳細情報であるメッセージからなる。
表2−Aおよび表2−Bは、文書生成サービス103が保持する情報のテーブル構造例を示す図である。表2−Aは、CPS102からの文書生成リクエストを認証するために使用する文書生成認証情報T200であり、テナントIDおよび認証キーからなる。表2−Bは、文書生成サービス103からCPS102への実行履歴書き込みの認証および業務データの取得の認証に使用されるアクセストークン情報T210であり、以下に記載の情報で構成される。文書生成サービス103のテナントを識別するテナントID。CPS102の組織を一意に識別するための組織ID。CPS102へのアクセス先組織が本番環境かサンドボックス環境かによってURLを決定するための組織種別。CPS102にアクセスする際に認証情報として使用するアクセストークンおよびアクセストークンを更新するためのリフレッシュトークン。
図5は、クライアント101から、文書生成サービス103にアクセスして表示した、認証認可設定画面500の例である。なお、図5は、ユーザが文書生成サービス103のユーザとしてログイン済の状態である。認証認可設定画面500は、CPS102からの文書生成リクエストの認証に必要なテナントID501および認証キー502、そして文書生成サービス103がCPS102へアクセスするためのアクセストークン一覧503を表示する。さらに認証認可設定画面500は、CPS102からアクセストークンを取得するための組織種別チェックボックス504および登録ボタン505を備える。組織種別チェックボックス504および登録ボタン505押下時の処理は後述する。
図6は、クライアント101から、CPS102にアクセスして表示した、認証情報登録画面600の例である。なお、図6は、ユーザがCPS102のユーザとしてログイン済の状態である。認証情報登録画面600は、前述の認証認可設定画面500から取得したテナントID、認証キーを入力するテナントID601、認証キー602および、入力した値をデータ管理部303に保存するリクエストを発行するOKボタン603が表示されている。ユーザはまず認証認可設定画面500にアクセスし、そこに表示されたテナントID501および認証キー502を控えておく。ここに表示される値は設定管理部403が文書生成認証情報T200から取得した値である。次に認証情報登録画面600にアクセスし、控えておいた値をテナントID601および認証キー602を入力、OKボタン603を押下する。OKボタン603が押下されることで、CPS102の送受信部301に認証情報登録リクエストが送信される。送受信部301が認証情報登録リクエストを受け取ると、CPS102のデータ管理部303は受け取ったテナントIDと認証キーをそれぞれ認証情報T100のテナントID、認証キーとしてレコードに保存する。
図7は、CPS102にアクセスするための認可情報を文書生成サービス103に保存する処理の流れを示している。認可の方法としてOAuthプロトコルが一般的であり図7の処理もOAuthプロトコルに従う認可処理の一例である。
はじめ、S701においてユーザは不図示のログイン画面にて認証情報を入力し、文書生成サービス103は認証処理を行いユーザのログインを許可し、認証情報確認画面500をクライアント101上に表示する。S702において、認証情報確認画面500の登録ボタン505を押下すると、認可開始リクエストが文書生成サービス103に送信される。この時、組織種別チェックボックス504のチェック状態もリクエストに含まれた状態で送信される。
リクエストを受信した送受信部401は、S703でクライアント101を経由してCPS102にスコープをパラメータとして認可リクエストを行う。この際、文書生成サービス103はクライアント101に対しCPS102へアクセスするようリダイレクトの命令を出す。なお、スコープとは認可許可する範囲を示すもので、本実施例ではCPS102のユーザデータ操作を認可の範囲としてスコープ指定している。
S704からS707までの処理は、OAuthプロトコルの一般的な認可処理フローのため、一部説明を割愛する。S704に対するレスポンスとしてクライアント101に返される認可画面は、ユーザが認証情報確認画面にて選択した何れかの実行環境におけるユーザの権限を、文書生成サービス103に委譲することを許可するか否かを問い合わせる画面である。例えば、認証されたユーザが任意の実行環境におけるユーザの権限を文書生成サービス103に委譲することを認可画面を介して許可する指示をした場合、任意の実行環境に対応する認可情報がCPS102により発行される。文書生成サービス103は認可情報を用いて任意の実行環境にアクセスした場合は、認証情報を入力することなく、即ち通常の認証処理が行われることなくアクセスできる。認可情報の発行処理は実行環境毎に行うことになる。なお、本実施例ではCPS102が認証および認可等の認証機能を備えている前提で説明したが、CPS102と連携する別の認証サーバが代理で行っても良い。ここで、S703の結果返されるログイン画面はCPS102のログイン画面であって、ユーザは生成したいアクセストークンのユーザでログインする。
S707にて文書生成サービス103がアクセストークンおよびリフレッシュトークンを受信すると、送受信部はこのアクセストークンをパラメータとして、組織ID取得リクエストをCPS102に送信する。この時、S702のリクエストパラメータで受け取っていた組織種別チェックボックス504の状態によってCPS102へのアクセスURLを切り替える。組織種別チェックボックス504がONだった場合、つまりサンドボックス環境のアクセストークンを取得していた場合はサンドボックス環境用のアクセスURLを選択し、OFFだった場合は本番環境用のアクセスURLを選択してCPS102にアクセスする。
S708にて組織ID取得リクエストを受信したCPS102の送受信部301は、データ管理部303からアクセストークンに紐づくユーザの組織IDを文書生成サービス103へ返す。S709にて、設定管理部403は表2−Bに記載のアクセストークン情報として、CPS102から取得したアクセストークン、リフレッシュトークン、組織ID、本番環境かサンドボックス環境かを識別する組織種別、テナントIDを保存し管理する。なお、設定管理部403は、夫々の情報、具体的にはアクセストークン、リフレッシュトークン、組織ID、および組織種別の夫々が関連付くように保存・管理する。そして送受信部401はアクセストークン、リフレッシュトークン保存完了のメッセージを生成し、クライアント101に返す。
図8は、本発明の実施例における文書生成システムが行う文書生成処理の流れを示している。本実施例では、CPS102のデータをフォームデータに挿入し帳票データを生成し、その帳票データを定期時刻にまとめてバッチプリントする形態を想定している。本フローは、CPS102の文書生成要求部304によって文書生成処理が開始されることによって始まる。文書生成要求部304による文書生成処理は、CPS102による定期実行(不図示)など、どのような方法で開始されてもよい。これは、本番環境であってもサンドボックス環境であっても同じである。
CPS102の文書生成要求部304は、S801においてデータ管理部303よって認証情報T100のテナントID、認証キー、および自身の組織IDを取得し、これをパラメータとして文書生成リクエストを送信する。この際に送信するリクエストは同一種のリクエストであり、本番環境とサンドボックス環境の夫々から送信されるリクエストが異なるのは組織IDのみである。この時、認証キーをリクエストに含めるだけでなくダイジェスト認証のように文書生成サービス103からチャレンジを受け取り、チャレンジとともに認証キーから生成したダイジェスト値をリクエストに含めるなど、どのような方法でもよい。
S802で文書生成サービス103は文書生成リクエストを受信すると、認証処理部402は、文書生成認証情報T200に保持するテナントID、認証キーを用いてリクエストに含まれる認証情報の検証を行う。この時、ダイジェスト認証のようにCPS102へチャレンジを送信し、それに対しCPS102から受信したダイジェスト値で認証を行うなど、どのような方法でもよい。
S803で、文書生成部405は設定管理部403を通じて文書生成認証情報T200から、リクエストに含まれるテナントID、組織IDと一致するレコードのアクセストークン、および組織種別を取得する。S804で、文書生成部405はアクセストークンおよび組織種別が取得できたかどうかを確認し、取得できなかった場合はリクエストの検証が不正であると判断された、このS804で文書生成処理は中断される。アクセストークンおよび組織種別が取得できた場合、S805で送受信部401はリクエストの検証結果をレスポンスとしてCPS102に送信する。
S806でレスポンスとして送受信部301がリクエストの検証結果を受信した時点でCPS102と文書生成サービス103のコネクションは切断される。S807で文書生成部405はCPS102が公開するWebサービスAPIのアクセス先URLを組織種別によって決定する。なお、組織種別ではなく、組織を識別するための組織IDから特定しても良い。例えば、組織種別が本番環境の場合は「https://www.cps.com」とし、サンドボックス環境の場合は「https://test.cps.com」にアクセスする。これは、組織種別、または組織ID毎に事前に用意されたURLである。なお、本実施例ではURL形式のアドレスとしたが、直接APIを呼び出す形態であっても良い。以降、文書生成サービス103からCPS102へのアクセスは、前記S807で決定したURLに対して、パラメータにS803で取得したアクセストークンを認証情報として含めることで行われる。
S808で実行履歴管理部404は、文書生成処理が開始された旨の実行履歴を作成するため、実行履歴情報T110のレコードの実行履歴作成要求をCPS102へ送信する。実行履歴作成要求はパラメータとして、ジョブ名、ステータス、メッセージを含める。S809でまず、送受信部301が実行履歴作成要求を受け付けると、認証処理部302はリクエストが送信されたURLが本番環境向けか、サンドボックス環境向けかを判断し、そのうえでアクセストークンによる認証を行う。
このとき、正しいアクセストークンであっても、本番環境とサンドボックス環境のどちらのユーザのアクセストークンかどうかとURLが一致しない場合は認証に失敗する。以降、CPS102は文書生成サービス103からリクエストを受け付けると、前記の認証処理を行う。S809で認証に成功するとアクセストークンに紐づくユーザで実行履歴作成要求を受け付け、データ管理部303はリクエストパラメータの内容に従って実行履歴情報T110のレコードを新規作成する。レコードは作成の際、一意のジョブIDを生成しレコードのジョブIDとして保存し、レスポンスとして文書生成サービス103へジョブIDを送信する。
S810にて、文書生成部405は業務データの取得要求(クエリ)を行う。前記S807で決定したURLに対して、パラメータとしてS803で取得したアクセストークンを指定する。S811でCPS102のデータ管理部303は業務データ取得要求を受け、文書生成サービス103へ業務データを送信する。S812で、文書生成サービス103の文書生成部405は、不図示のフォーム管理モジュールが管理するフォームを取得して、前記取得した業務データと前記取得したフォームから文書データを生成する。S812の文書生成処理は公知のため説明を割愛する。
S813で、実行履歴管理部404は文書生成処理結果を実行履歴更新要求としてCPS102に送信する。前記S807で決定したURLに対し、パラメータにはS803で取得したアクセストークン、S809で取得したジョブID、ステータスとして文書生成処理結果、メッセージとして詳細メッセージを含める。S814でCPS102の送受信部301は実行履歴更新要求を受け、データ管理部303を通じて実行履歴情報T110のジョブIDと要求に含まれるジョブIDが一致するレコードに、ステータス、メッセージを書き込む。以上により、文書生成システムが行う文書生成処理が実行される。
実施例1では、CPS102の組織IDとテナントIDが一致するアクセストークンを使用して文書生成処理を行うことで、文書生成リクエストの送信元組織を判別していた。本実施例では、CPS102の本番環境およびサンドボックス環境で組織IDが同一の場合や、組織を一意に区別するための情報が存在しない場合の文書生成方法について説明する。
以下、実施例1で記載済みの内容については説明を省略する。表3は実施例2における文書生成サービス103が保持する文書生成サービス103からCPS102への実行履歴書き込みの認証および業務データの取得の認証に使用されるアクセストークン情報T300であり、以下からなる。文書生成サービス103のテナントを識別するテナントID。CPS102へのアクセス先組織が本番環境かサンドボックス環境かによってURLを決定するための組織種別。CPS102にアクセスする際に認証情報として使用するアクセストークンおよびアクセストークンを更新するためのリフレッシュトークン。
図9は本発明の実施例2における文書生成システムが行う文書生成処理の流れを示している。本フローは、CPS102の文書生成要求部304によって文書生成処理が開始されることによって始まる。文書生成要求部304による文書生成処理は、CPS102による定期実行(不図示)など、どのような方法で開始されてもよい。
S901においてCPS102の文書生成要求部304は、データ管理部303を通じて文書生成処理の実行履歴を保存するためのレコードである実行履歴情報T300のレコードを新規作成する。レコード作成の際、データ管理部303は一意のジョブIDを生成する。S902にて、文書生成要求部304はデータ管理部303を通じて認証情報T100のテナントID、認証キー、およびS901で生成したジョブIDを取得し、これをパラメータとして文書生成リクエストを送信する。この時、認証キーをリクエストに含めるだけでなくダイジェスト認証のように文書生成サービス103からチャレンジを受け取り、チャレンジとともに認証キーから生成したダイジェスト値をリクエストに含めるなど、どのような方法でもよい。
S903で文書生成サービス103は文書生成リクエストを受信すると、認証処理部402は、文書生成認証情報T200に保持するテナントID、認証キーを用いてリクエストに含まれる認証情報の検証を行う。この時、ダイジェスト認証のようにCPS102へチャレンジを送信し、それに対しCPS102から受信したダイジェスト値で認証を行うなど、どのような方法でもよい。S904で文書生成部405は、設定管理部403を通じて文書生成認証情報T300から、リクエストに含まれるテナントIDが一致するレコードの数を取得する。レコード数が0、つまりテナントIDに紐づくアクセストークンおよび組織種別が存在しない場合はこのS904で文書生成処理を中断する。レコード数が1、つまり唯一1つのアクセストークンおよび組織種別が存在する場合は、文書生成部405はこのアクセストークンおよび組織種別を取得しS919を実行する。
S919で文書生成部405はCPS102が公開するWebサービスAPIのアクセス先URLを組織種別によって決定する。詳細はS807と同様のため省略する。そして後述するS910に処理を移行する。レコード数が複数存在する場合は、S905の処理に移行する。S905で文書生成部405は、S904で取得したレコードの1件からアクセストークンおよび組織種別を取得する。このときすべてのレコードについて取得が終わっていた場合、S905で文書生成処理を中断する。S905でアクセストークンおよび組織種別が取得できた場合、S906の処理に移行する。S906はS807およびS919と同様のため省略する。
以降、文書生成サービス103からCPS102へのアクセスは、前記S906またはS919で決定したURLに対して、パラメータにS904で取得したアクセストークンを認証情報として含めることで行われる。S907で文書生成サービス103の実行履歴管理部404は、前記S903で取得したジョブIDを検索キーとしてCPS102に対してジョブIDが一致する実行履歴の取得リクエストを送信する。S908でまず、送受信部301が実行履歴取得リクエストを受け付けると、認証処理部302はリクエストが送信されたURLが本番環境向けか、サンドボックス環境向けかを判断し、そのうえでアクセストークンによる認証を行う。このとき、正しいアクセストークンであっても、本番環境とサンドボックス環境のどちらのユーザのアクセストークンかどうかとURLが一致しない場合は認証に失敗する。以降、CPS102は文書生成サービス103からリクエストを受け付けると、前記の認証処理を行う。
実行履歴の取得リクエストを受信した送受信部301は、データ管理部303を通じて実行履歴情報T300からジョブIDが一致する実行履歴情報を取得する。ジョブIDが一致する実行履歴が存在すればそのレコード情報を、存在しない場合はその旨を文書生成サービス103へレスポンスとして送信する。S909において、S908でジョブIDが一致する実行履歴が取得できた場合は、文書生成リクエストを送信したCPS102の組織のアクセストークンであるとして、文書生成部405はS910を実行する。ジョブIDが一致する実行履歴が取得できなかった場合、文書生成リクエストを送信したCPS102の組織のアクセストークンでないと判断してS905に遷移する。
S910、S911はそれぞれS805、S806と同様のため記載を省略する。S912で実行履歴管理部404は、文書生成処理が開始された旨の実行履歴を書き込むため、実行履歴情報T110のレコードの実行履歴更新要求をCPS102へ送信する。実行履歴更新要求はパラメータとして、ジョブID、ジョブ名、ステータス、メッセージを含める。S913で送受信部301が実行履歴更新要求を受け付けると、アクセストークンに紐づくユーザで実行履歴更新要求を受け付け、データ管理部303はリクエストパラメータの内容に従って実行履歴情報T110のレコードを更新する。以降、S914からS918はS810からS814と同様のため、記載を省略する。以上により、実施例2における文書生成システムが行う文書生成処理が実行される。
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Figure 0006415155
Figure 0006415155
Figure 0006415155
101 クライアント
102 クラウドプラットフォームサービス
103 文書生成サービス
303 データ管理部
305 サンドボックス管理部
404 実行履歴管理部

Claims (11)

  1. 複数の実行環境を有するサーバと通信可能なサーバシステムであって、
    認証情報を入力することなく特定の実行環境からデータの取得を可能にする前記複数の実行環境毎に発行された認可情報を、夫々の認可情報が対応する実行環境と関連付くよう、前記複数の実行環境の夫々に対して一意に割り当てられた識別情報と関連付けて管理する管理手段と、
    前記サーバにおける任意の実行環境からデータ処理のリクエストとともに前記任意の実行環境に対して一意に割り当てられた識別情報を受信する受信手段と、
    前記受信手段により受信された識別情報を基に、前記管理手段により管理された認可情報の中から前記受信された前記識別情報に関連付く認可情報を特定する特定手段と、
    前記特定手段により特定された認可情報を用いて前記リクエストを送信した前記任意の実行環境にアクセスし、認証情報を入力することなく前記任意の実行環境からデータを取得し、取得された前記データに対し処理を施すサービス提供手段と、を有し、
    前記管理手段は、前記サーバシステムが提供する前記サーバとの連携を開始する指示を受け付けるための認証情報確認画面にて、組織種別として前記サーバが有する複数の実行環境の内の1つであるサンドボックス環境が指定されたことに応じて、発行された認可情報を前記サーバのサンドボックス環境と関連付け、前記サンドボックス環境が指定されなかったことに応じて、発行された認可情報を前記サーバが有する複数の実行環境の内の1つである本番環境と関連付けることを特徴とするサーバシステム。
  2. 前記管理手段は、実行環境にアクセスするため前記複数の実行環境毎に用意されたアドレスおよび/またはAPIを、前記認可情報と同様、前記複数の実行環境の夫々対して一意に割り当てられた識別情報と関連付けて管理し、
    前記特定手段は、前記受信手段により受信された識別情報を基に、前記管理手段により管理されたアドレスおよび/またはAPIの中から前記受信された前記識別情報に関連付くアドレスおよび/またはAPIを特定し、
    前記サービス提供手段は、前記特定手段により特定されたアドレスおよび/またはAPIと認可情報を用いて前記リクエストを送信した前記任意の実行環境にアクセスすることを特徴とする請求項1に記載のサーバシステム。
  3. 前記サーバは、ログイン画面を介してユーザに入力された認証情報を基に認証を行い、認証された前記ユーザが認可画面を介し、前記サーバシステムに前記任意の実行環境における前記ユーザの権限を委譲することを許可した場合に前記認可情報を発行する認証機能と連携するサーバであって、
    前記複数の実行環境の内、何れかの実行環境に対応する前記認可情報を発行する指示を受け付けるための前記認証情報確認画面をユーザが操作するクライアントに提供する提供手段を有する請求項1または2に記載のサーバシステム。
  4. 前記提供手段により提供された認証情報確認画面を介し、前記任意の実行環境に対応する前記認可情報を発行する指示を受け付けたことに応じて、前記クライアントに対し前記認証機能に対して前記任意の実行環境に対応する前記認可情報を発行するための命令を送信することを特徴とする請求項3に記載のサーバシステム。
  5. 前記リクエストは、前記サーバ内にて管理されるデータをバッチプリントするためのリクエストであり、前記任意の実行環境により定期時刻に送信され、
    前記サービス提供手段は、前記データをフォームに挿入し帳票データを生成する処理を施すことを特徴とする請求項1乃至4の何れか1項に記載のサーバシステム。
  6. 複数の実行環境を有するサーバと通信可能なサーバシステムを制御する方法であって、管理手段は、認証情報を入力することなく特定の実行環境からデータの取得を可能にする前記複数の実行環境毎に発行された認可情報を、夫々の認可情報が対応する実行環境と関連付くよう、前記複数の実行環境の夫々に対して一意に割り当てられた識別情報と関連付けて管理し、
    受信手段は、前記サーバにおける任意の実行環境からデータ処理のリクエストとともに前記任意の実行環境に対して一意に割り当てられた識別情報を受信し、
    特定手段は、前記受信手段により受信された識別情報を基に、前記管理手段により管理された認可情報の中から前記受信された前記識別情報に関連付く認可情報を特定し、
    サービス提供手段は、前記特定手段により特定された認可情報を用いて前記リクエストを送信した前記任意の実行環境にアクセスし、認証情報を入力することなく前記任意の実行環境からデータを取得し、取得された前記データに対し処理を施し、
    前記管理手段は、前記サーバシステムが提供する前記サーバとの連携を開始する指示を受け付けるための認証情報確認画面にて、組織種別として前記サーバが有する複数の実行環境の内の1つであるサンドボックス環境が指定されたことに応じて、発行された認可情報を前記サーバのサンドボックス環境と関連付け、前記サンドボックス環境が指定されなかったことに応じて、発行された認可情報を前記サーバが有する複数の実行環境の内の1つである本番環境と関連付けることを特徴とする方法。
  7. 前記管理手段は、実行環境にアクセスするため前記複数の実行環境毎に用意されたアドレスおよび/またはAPIを、前記認可情報と同様、前記複数の実行環境の夫々対して一意に割り当てられた識別情報と関連付けて管理し、
    前記特定手段は、前記受信手段により受信された識別情報を基に、前記管理手段により管理されたアドレスおよび/またはAPIの中から前記受信された前記識別情報に関連付くアドレスおよび/またはAPIを特定し、
    前記サービス提供手段は、前記特定手段により特定されたアドレスおよび/またはAPIと認可情報を用いて前記リクエストを送信した前記任意の実行環境にアクセスすることを特徴とする請求項6に記載の方法。
  8. 前記サーバは、ログイン画面を介してユーザに入力された認証情報を基に認証を行い、認証された前記ユーザが認可画面を介し、前記サーバシステムに前記任意の実行環境における前記ユーザの権限を委譲することを許可した場合に前記認可情報を発行する認証機能と連携するサーバであって、
    提供手段は、前記複数の実行環境の内、何れかの実行環境に対応する前記認可情報を発行する指示を受け付けるための前記認証情報確認画面をユーザが操作するクライアントに提供することを特徴とする請求項6または7に記載の方法。
  9. 前記提供手段により提供された認証情報確認画面を介し、前記任意の実行環境に対応する前記認可情報を発行する指示を受け付けたことに応じて、前記クライアントに対し前記認証機能に対して前記任意の実行環境に対応する前記認可情報を発行するための命令を送信することを特徴とする請求項8に記載の方法。
  10. 前記リクエストは、前記サーバ内にて管理されるデータをバッチプリントするためのリクエストであり、前記任意の実行環境により定期時刻に送信され、
    前記サービス提供手段は、前記データをフォームに挿入し帳票データを生成する処理を施すことを特徴とする請求項6乃至9の何れか1項に記載の方法。
  11. 請求項6乃至10の何れか1項に記載の方法をコンピュータに実行させるためのプログラム。
JP2014149939A 2014-07-23 2014-07-23 サーバシステム、方法、およびそのプログラム Expired - Fee Related JP6415155B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014149939A JP6415155B2 (ja) 2014-07-23 2014-07-23 サーバシステム、方法、およびそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014149939A JP6415155B2 (ja) 2014-07-23 2014-07-23 サーバシステム、方法、およびそのプログラム

Publications (2)

Publication Number Publication Date
JP2016024721A JP2016024721A (ja) 2016-02-08
JP6415155B2 true JP6415155B2 (ja) 2018-10-31

Family

ID=55271405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014149939A Expired - Fee Related JP6415155B2 (ja) 2014-07-23 2014-07-23 サーバシステム、方法、およびそのプログラム

Country Status (1)

Country Link
JP (1) JP6415155B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112422340B (zh) * 2020-11-18 2023-05-23 北京魔带互联科技有限公司 一种管理云服务集群的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004153472A (ja) * 2002-10-29 2004-05-27 Fuji Xerox Co Ltd ジョブ処理制御装置及びジョブ処理制御方法
JP2005190189A (ja) * 2003-12-25 2005-07-14 Canon Sales Co Inc 帳票作成処理システム、帳票作成管理装置、帳票作成装置、帳票作成方法及びそのプログラム
JP4737723B2 (ja) * 2006-08-31 2011-08-03 富士ゼロックス株式会社 連携処理装置
CN101296243B (zh) * 2008-06-26 2013-02-20 阿里巴巴集团控股有限公司 一种服务集成平台系统及提供互联网服务的方法
JP5293580B2 (ja) * 2009-03-19 2013-09-18 日本電気株式会社 ウェブサービスシステム、ウェブサービス方法及びプログラム
US8973118B2 (en) * 2011-12-14 2015-03-03 Cellco Partnership Token based security protocol for managing access to web services
JP6056384B2 (ja) * 2012-10-31 2017-01-11 株式会社リコー システム及びサービス提供装置

Also Published As

Publication number Publication date
JP2016024721A (ja) 2016-02-08

Similar Documents

Publication Publication Date Title
US9230078B2 (en) Authentication system, control method thereof, service provision device, and storage medium
JP6467869B2 (ja) 情報処理システム及び情報処理方法
US20170041504A1 (en) Service providing system, information processing apparatus, program, and method for generating service usage information
US10291620B2 (en) Information processing apparatus, terminal apparatus, program, and information processing system for collaborative use of authentication information between shared services
JP2015046153A (ja) サービス提供システム、データ提供方法及びプログラム
JP2003050781A (ja) 個人認証装置、バージョン管理装置、個人認証方法、バージョン管理方法、個人認証方法をコンピュータに実行させるプログラム、およびバージョン管理方法をコンピュータに実行させるプログラム
CN110765137B (zh) 电子证照处理方法、装置、设备、平台和介质
JP6927282B2 (ja) 情報処理装置、端末装置、プログラム及び情報処理システム
JP6183035B2 (ja) サービス提供システム、サービス提供方法及びプログラム
JP7518654B2 (ja) 情報処理装置、その制御方法、設置管理サーバ、及びシステム
US10200455B2 (en) Information processing system and method
JP2017102813A (ja) 情報処理システム、情報処理装置及びプログラム
JP2014085995A (ja) ライセンス管理装置、ライセンス管理システム、及びライセンス管理方法
US10628096B2 (en) Device data management system for managing device data usable as setting values
JP6415155B2 (ja) サーバシステム、方法、およびそのプログラム
JP2015026231A (ja) サービス提供システム、画像提供方法及びプログラム
JP6447766B2 (ja) サービス提供システム、データ提供方法及びプログラム
JP2020119147A (ja) システム、テナントの移動方法、情報処理装置およびその制御方法、認可サーバーおよびその制御方法、並びにプログラム
JP2015153117A (ja) 文書生成システム
US20220232005A1 (en) Information processing apparatus, method, and computer readable medium
JP5636394B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2014186707A (ja) 文書生成システム
EP3142320B1 (en) Remote modification of a document database by a mobile telephone device
WO2019221732A1 (en) Application management service including package file
JP7247307B2 (ja) デバイスデータ管理システム、制御方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180411

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181002

R151 Written notification of patent or utility model registration

Ref document number: 6415155

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees