説明

情報処理システム、情報処理方法、プログラム、及び、記録媒体

【課題】容易に複数のアプリケーションにおいてシームレスな認証を可能とすること。
【解決手段】アプリサーバ1は、画面要求にSsIDがない場合、ワークフローサーバのURL(戻りURL含む)にリダイレクトさせる。ワークフローサーバは、要求に含まれる戻りURLをログイン画面に埋め込みブラウザへ送る。またログイン処理が成功するとSsIDを生成してワークフローDBに登録する。またブラウザをログイン要求に含まれていた戻りURL(SsID含む)にリダイレクトさせる。アプリサーバ1は画面要求にSsIDがある場合、SsIDの有効性をワークフローサーバに確認する。有効性はワークフローDBに基づいて確認される。有効な場合、アプリサーバ1はSsIDを埋め込んだ画面をブラウザへ送る。またアプリサーバ2への画面遷移要求を受けた場合、ブラウザをアプリケーションサーバ2のURL(SsID含む)にリダイレクトさせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントと、ウェブアプリケーションが動作する複数のウェブアプリケーションサーバと、情報処理サーバとを含む情報処理システムに関し、とくに複数のウェブアプリケーションにまたがるユーザ認証制御に関する。
【背景技術】
【0002】
基幹業務におけるワークフローアプリケーションを作成する場合、業務アプリケーションとワークフローエンジンを組み合わせて作成する。また、基幹業務におけるワークフローアプリケーションは、いくつかの異なる業務にまたがって処理するため、複数のシステムが関連する。
【0003】
特許文献1には、複数のシステムが関連している環境において、処理速度の低下等を防止する技術が記載されている。
【0004】
なお、特許文献1では、認証に関しては何ら開示されていないが、実際のシステムでは認証機能を持っているのが一般的である。
【特許文献1】特開2007−52697号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記複数のシステムが関連している環境において、各アプリケーションがそれぞれ認証機能を持っている場合、異なるアプリケーションへ遷移した際に、その都度、ログイン処理が必要となり、ユーザ便宜を悪くしていた。また、ユーザの管理するIDやパスワードの数も増え、非常に煩雑であった。
【0006】
このような複数のシステムにまたがるアプリケーションでは、エンドユーザから見た場合、1つのシステムとしてシームレスにつながっていることが理想的である。
【0007】
このようなシステムを構築するためには、異なるアプリケーションに遷移した場合でも、その都度、ログイン画面を表示することなく、異なるアプリケーション間で、ユーザ情報が引き継がれる必要がある。即ち、異なるアプリケーション間で、ログイン情報やセッション情報を各システム間で受け渡しする必要がある。
【0008】
このようなシステムの構築方法として、LDAP(Lightweight Directory Access Protocol)等を利用したシングル・サインオン(Single Sign-On)のような認証統括システムを利用したものがある。
【0009】
しかし、シングル・サインオンを実現するためには、それぞれのアプリケーションで、(1)ユーザの認証情報が統一されていなければならない、(2)認証インタフェースが統合されていなければならない、(3)アクセス制御が統合されていなければならない等の要件をクリアする必要がある。そのため、シングル・サインオン環境を導入するための構築作業が煩雑であり、非常に時間がかかってしまう等の問題点があった。
【0010】
本発明は、上記の問題点を解決するためになされたもので、小規模な情報処理システムにおいて、LDAP等のシングル・サインオンの技術を用いることなく、容易に複数のアプリケーションにおいてシームレスな認証を可能とするシステムを容易に構築可能な仕組を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、ウェブアプリケーションが動作する複数のウェブアプリケーションサーバと、情報処理サーバとを含む情報処理システムであって、前記ウェブアプリケーションサーバは、ウェブクライアントからアプリケーション画面情報の要求を受け付けた場合、該要求に、前記情報処理サーバへのログイン状況を示す識別子が含まれているかを判定する判定手段と、前記判定手段により前記識別子が含まれないと判定された場合、前記ウェブクライアントから前記情報処理サーバへ前記ログイン画面情報を要求させるための、該情報処理サーバのロケーション情報に、当該ウェブアプリケーションサーバのロケーション情報をパラメータとして付加して、前記ウェブクライアントに通知する第1の通知手段と、前記判定手段により前記識別子が含まれると判定された場合、該識別子の有効性を前記情報処理サーバに問い合わせる問い合わせ手段と、前記問い合わせ手段による問い合わせの結果、前記識別子が有効である場合、前記識別子を埋め込んだウェブアプリケーション画面情報を、前記ウェブクライアントへ送信する第1の画面情報送信手段と、前記ウェブクライアントから他のウェブアプリケーションサーバへ画面を遷移する要求を受け付けた場合、前記ウェブクライアントから前記他のウェブアプリケーションサーバへ前記他のウェブアプリケーション画面情報を要求させるための、該他のウェブアプリケーションサーバのロケーション情報に、前記要求内の前記ウェブアプリケーション画面情報に含まれる識別情報を、パラメータとして付加して、前記ウェブクライアントに通知する第2の通知手段とを有し、前記情報処理サーバは、前記ウェブクライアントから前記ログイン画面情報の要求を受け付けた場合、前記要求に含まれる前記ウェブアプリケーションサーバのロケーション情報を、前記ログイン画面情報に埋め込んで、前記ウェブクライアントへ送信する第2の画面情報送信手段と、前記ウェブクライアントから前記ログイン画面情報を含むログイン要求を受け付けた場合、ログイン処理を行うログイン処理手段と、前記ログイン処理手段によるログイン処理が成功した場合、前記識別子を生成して保持手段に保持させる識別子生成手段と、前記ウェブクライアントから前記ウェブアプリケーションサーバへ前記アプリケーション画面情報を要求させるための、前記ログイン要求内のログイン画面情報に含まれていた前記ウェブアプリケーションサーバのロケーション情報に、前記識別子生成手段により生成された識別子をパラメータとして付加して、前記ウェブクライアントに通知する第3の通知手段と、前記問い合わせ手段により問い合わされた識別子が有効であるか否かを、該識別子が前記保持手段に保持されているか否かで判定し、該判定結果を返信する識別子有効性判定手段とを有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、小規模な情報処理システムにおいて、LDAP等のシングル・サインオンの技術を用いることなく、容易に複数のアプリケーションにおいてシームレスな認証を可能とすることができる。
【0013】
したがって、複数の業務アプリケーションサーバとワークフローサーバとの間でのユーザ認証情報やセッション情報の受け渡しをするアプリケーションを開発し易いアプリケーション構築方法を提供することができる等の効果を奏する。
【発明を実施するための最良の形態】
【0014】
図1は、本発明の一実施形態を示す情報処理システムの一例を示すシステム構成図である。本例では、基幹業務におけるワークフローアプリケーションの構成を示す。
【0015】
図1において、001,002はアプリケーションサーバ(ウェブアプリケーションサーバ)である。アプリケーションサーバ1(001),002は、業務処理(例えば、受注システム,出荷システム等)の業務アプリケーション(ウェブアプリケーション)を実行し、アプリケーションDB005に、その情報を保管する。
【0016】
ワークフローサーバ003は、ワークフロー経路情報に従って、ワークフロー操作(承認、否認、差戻し等)処理を行い、ワークフローDB004に、その情報を保管する。
【0017】
クライアントブラウザ006は、クライアント端末でウェブクライアントとして動作するウェブブラウザを示す。クライアントブラウザ006は、ユーザの指示に従って、ネットワーク007を介してアプリケーションサーバ1(001)、アプリケーションサーバ2(002)、ワークフローサーバ003に通信し、アプリケーション処理を行う。
【0018】
なお、図中、001〜006は、それぞれ異なる情報処理装置に実装されてもよいし、いずれか又は全てが同一の情報処理装置に実装される構成であってもよい。
【0019】
図2は、図1に示したアプリケーションサーバ1(001)、アプリケーションサーバ2(002)、ワークフローサーバ003、クライアントブラウザ006に適用可能な情報処理装置のハードウェア構成の一例を示すブロック図である。
【0020】
図2において、101はCPUであり、ROM103或いは外部記憶装置(ハードディスク(HD)等)104に記憶されている制御プログラムに基づいて、システムバスに接続されている各種デバイスとのアクセスを総括的に制御する。
【0021】
102はRAMで、CPU101の主メモリ、ワークエリア等として機能する。ROM103或いはHD104には、CPU101の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステム(OS)プログラム、後述するフローチャートに示す処理をCPUに実行させるために必要な各種プログラム等が記憶されている。そして、CPU101は、必要なプログラム等をRAM102にロードして実行することにより、各種機能を実現するものである。
【0022】
また、105は、キーボードやマウス等の入力装置である。106は、LCDやCRT等の表示装置である。107はネットワークインタフェースカード(NIC)であり、LAN,WAN等のネットワーク007を介して、他の装置と通信可能に構成されている。
【0023】
以下、図3のシーケンスチャートを参照して、クライアントブラウザ006からアプリケーションサーバ1(001)にログインする手順について説明する。
【0024】
図3は、クライアントブラウザ006からアプリケーションサーバ1(001)にログインする手順の一例を示すシーケンスチャートである。
【0025】
図3において、まず、S201〜S203は、クライアントブラウザ006から初めてアプリケーションサーバ1(001)の処理画面を要求したときの動作である。
【0026】
S201では、クライアントブラウザ006からアプリケーションサーバ1(001)に、後述する図12に示すログイン画面を要求する。
【0027】
202では、アプリケーションサーバ1(001)は、図4に示す処理を行い、ワークフローサーバのログイン画面(後述する図7)のURL(ロケーション情報)をクライアントブラウザ006にリダイレクトする(S203)。なお、リダイレクトとは、あるURLから他のURLに転送させることをいう。図3のS203では、アプリケーションサーバ1(001)は、クライアントブラウザ006からワークフローサーバ003へ前記ログイン画面情報の要求をさせるための、ワークフローサーバ003のURLに、当該アプリケーションサーバ1(001)のURLをパラメータとして付加して、クライアントブラウザ006に通知する処理を行う。
【0028】
ここで、図4を用いて、S202,S203の処理について詳細に説明する。
【0029】
図4は、アプリケーションサーバ1(001)の動作の一例を示すフローチャートである。なお、このフローチャートの各ステップ(S301〜S310)は、アプリケーションサーバ1(001)を実装する情報処理装置のCPU101が、外部記憶装置104に記憶されるプログラムをRAM102にロードして実行することにより実現されるものであり、以下、アプリケーションサーバ1(001)が実行すると記載する。
【0030】
まず、クライアントブラウザ006からのログイン画面の表示要求(図3のS201)を受信すると、アプリケーションサーバ1(001)は、S301に処理を進める。
【0031】
S301において、アプリケーションサーバ1(001)は、セッションの状態を判定する。図3のS202の場合、クライアントブラウザ006からの画面表示要求(図3のS201)が最初の要求のため、セッションは存在しない。つまり、セッション上のログイン済みフラグは存在していないため、アプリケーションサーバ1(001)は、S301を偽(N)と判定し、S302に処理を進める。
【0032】
S302において、アプリケーションサーバ1(001)は、パラメータにパラメータ名SsIDに対応する値が存在するか判定する。最初の要求では、クライアントブラウザ006はパラメータを指定していない。そのため、アプリケーションサーバ1(001)は、S302を偽(N)と判定し、S303に処理を進める。なお、SsIDとは、ワークフローサーバ003へのログイン状況を確認するために使用される識別子である。
【0033】
S303において、アプリケーションサーバ1(001)は、アプリケーションサーバ1(001)の外部記憶装置104上にある設定ファイル「workflow.conf」(図5)を読み取りRAM102に格納する。
【0034】
図5は、アプリケーションサーバ1(001)の外部記憶装置104上に記憶される設定ファイル「workflow.conf」の一例を示す図である。
【0035】
図5に示すように、「workflow.conf」は、全てのアプリケーションサーバとワークフローサーバに予め準備されるものであり、共通の情報(URL情報)が記載されるものである。
【0036】
次に、S304において、アプリケーションサーバ1(001)は、S303で読み込んだ情報からワークフローサーバ003のURL(例えば、図5の901)を取得し、該取得したURLに、現在のリクエストのURLを、戻りURLパラメータとして付加する。ここでは、アプリケーションサーバ1(001)のURLが戻りURLパラメータとして付加される。
【0037】
次に、S305において、アプリケーションサーバ1(001)は、S304で作成したURL(現在のリクエストのURLを戻りURLパラメータとして付加したワークフローサーバのURL)をクライアントブラウザ006にリダイレクトする(図3の203)。
【0038】
以上、図3のS202,S203の動作を詳細に説明した。
【0039】
次に、S204〜S206は、ワークフローサーバ003が、ログインページを表示するまでの動作を示す。
【0040】
S204では、クライアントブラウザ006は、アプリケーションサーバ1(001)のレスポンスに従ってリダイレクト先、つまり、ワークフローサーバ003のURLにアクセスする。
【0041】
S205では、ワークフローサーバ003は、図6に示す処理を行い、S206において、ログイン画面(図7)をクライアントブラウザ006に送信し、クライアントブラウザ006にログイン画面(図7)を表示させる。
【0042】
ここで、図6を用いて、S205,S206の処理について詳細に説明する。
【0043】
図6は、ワークフローサーバ003の動作の一例を示すフローチャートである。なお、このフローチャートの各ステップ(S401〜S407)は、ワークフローサーバ003を実装する情報処理装置のCPU101が、外部記憶装置104に記憶されるプログラムをRAM102にロードして実行することにより実現されるものであり、以下、ワークフローサーバ003が実行すると記載する。
【0044】
まず、クライアントブラウザ006からのリクエストを受信すると(図3のS204)、ワークフローサーバ003は、S401に処理を進める。
【0045】
S401において、ワークフローアプリケーション004は、ワークフローDB004のユーザログイン情報上にセッションIDが存在するか判定する。図3のS204の場合、クライアントブラウザ006からのリクエスト(図3のS204)が最初のアクセスなので、ワークフローDB004のユーザログイン情報上にセッションIDは存在しない。つまり、ワークフローサーバ003は、S401を偽(N)と判定し、S402に処理を進める。
【0046】
S402では、ワークフローサーバ003は、現在のリクエストがログインページのログインボタンが押されたものか判定する。図3のS204の場合、該当しないため、ワークフローサーバ003は、S402を偽(N)と判定し、S403に処理を進める。
【0047】
S403では、ワークフローサーバ003は、図4のS304においてパラメータとしてリクエストに付加された戻りURL情報を取得し、これを保持するために、ログイン画面(図7)の項目にセットする。ログイン画面の項目にセットするとは、例えば、このログイン画面を構成するHTMLなどの構造化言語内の非表示項目に記述することで実現する。
【0048】
次に、S404において、ワークフローサーバ003は、ログイン画面(図7)をクライアントブラウザ006にレスポンスする(図3のS206)。
【0049】
以上、図3のS205,S206の動作を詳細に説明した。
【0050】
図7は、クライアントブラウザ006に表示されるログイン画面の一例を示す図である。
【0051】
ユーザは、クライアントブラウザ006から、701にユーザ名(ユーザID),702にパスワードを入力し、ログインボタン703を押下指示して、ログイン操作を行う。
【0052】
次に、図3のS207〜S210では、ログイン画面(図7)のログインボタン703がユーザによって押下されワークフローサーバでログイン処理する動作を示す。
【0053】
S207において、ユーザは、クライアントブラウザ006にユーザ名、パスワードを入力してログインボタン703を押下する。
【0054】
この操作を検知したクライアントブラウザ006は、S208において、入力されたユーザ名、パスワード、図6のS403でログイン画面(図7)にセットされた戻りURLを、ワークフローサーバ003に送信する。ここでは、アプリケーションサーバ1(001)のURLが、戻りURLとして送信される。
【0055】
次に、S209において、ワークフローサーバ003は、図6の処理を行い、クライアントブラウザ006から受信したユーザ名、パスワードを元にログイン確認処理を行い、ログイン処理をする。
【0056】
そして、S210において、ワークフローサーバ003は、アプリケーション画面のURLをリダイレクトする。詳細には、S210では、ワークフローサーバ003は、クライアントブラウザ006からアプリケーションサーバ1(001)へ前記アプリケーション画面情報の要求させるための、前記ログイン要求内のログイン画面情報に含まれていた前記アプリケーションサーバ1(001)のURLに、前記識別子をパラメータとして付加して、クライアントブラウザ006に通知する処理を行う。
【0057】
ここで、図6を用いて、S209,S210の処理について詳細に説明する。
【0058】
まず、クライアントブラウザ006からユーザ名,パスワード,戻りURLを受信すると(図3のS208)、ワークフローサーバ003は、図6のS401に処理を進める。
【0059】
S401において、ワークフローアプリケーション004は、ワークフローDB004のユーザログイン情報上にセッションIDが存在するか判定する。図3のS208の場合、S204に次ぐ2度目のアクセスであるが、まだセッションIDはセットされておらず、S204の場合と同様に、ワークフローDB004のユーザログイン情報上にセッションIDは存在しない。つまり、ワークフローサーバ003は、S401を偽(N)と判定し、S402に処理を進める。
【0060】
S402では、ワークフローサーバ003は、現在のリクエストがログインページのログインボタンが押されたものか判定する。図3のS208の場合、ログインボタンが押下されたものであるため、ワークフローサーバ003は、S402を真(Y)と判定し、S405に処理を進める。
【0061】
S405では、ワークフローサーバ003は、受信したユーザ名,パスワードが有効であるかチェックする。ワークフローサーバ003は、上記受信したユーザ名,パスワードと、ワークフローDB004のユーザログイン情報との比較を行うことで有効性のチェックが可能であるが、ここではその方式は特に問わないため省略する。
【0062】
そして、ユーザ名,パスワードが有効でない場合(ログインエラーの場合)には、ワークフローサーバ003は、S405を真(Y)と判定し、S403,S404において、エラーメッセージ情報とともに、再びログインページをクライアントブラウザ006に表示させる。そして、本フローチャートの処理を終了する。
【0063】
一方、S405において、ユーザ名,パスワードが有効である場合(ログインが成功した場合)には、ワークフローサーバ003は、S405を偽(N)と判定し、S406に処理を進める。
【0064】
S406では、ワークフローサーバ003は、SsIDを生成し、ワークフローDB004のユーザログイン情報に登録する。なお、SsIDは、アプリケーションサーバ、ワークフローサーバでユニークに識別できるものであればよい。ここでは、SsIDはセッションIDと同等のものを使用する。なお、SsIDを、タイムアウトにより削除する運用も可能である。
【0065】
次に、S407において、ワークフローサーバ003は、戻りURL(図6のS403でログイン画面(図7)にセットされた戻りURL)のパラメータにS406で生成したSsIDを付加し(図8)、該戻りURLをリダイレクト先としてクライアントブラウザ006にレスポンスする(図3のS210)。
【0066】
以上、図3のS209,S210の動作を詳細に説明した。
【0067】
図8は、図6のS407でパラメータとしてSsIDを付加した戻りURLの一例を示す図である。
【0068】
次に、図3のS211〜S216では、ログイン処理後、アプリケーション画面を表示するまでの処理を示す。
【0069】
S211では、クライアントブラウザ006は、ワークフローサーバ003のレスポンスに従ってリダイレクト先、つまり、アプリケーションサーバ1(001)のURLにアクセスする。
【0070】
S212では、アプリケーションサーバ1(001)は、図4の処理を行い、S213において、ワークフローサーバ003に対してログイン確認を行う。
【0071】
S214において、ワークフローサーバ003は、図9に示すログイン確認処理を行い、S215において、ログイン確認結果をアプリケーションサーバ1(001)に返信する。
【0072】
S216では、アプリケーションサーバ1(001)は、ログイン結果がOKであったら、アプリケーション画面(後述する図11)をクライアントブラウザ006に送信し、クライアントブラウザ006にアプリケーション画面(図11)を表示させる。
【0073】
ここで、図4,図9を用いて、S212〜S216の処理について詳細に説明する。
【0074】
まず、クライアントブラウザ006からのリクエスト(図3のS211)を受信すると、アプリケーションサーバ1(001)は、図4のS301に処理を進める。
【0075】
S301において、アプリケーションサーバ1(001)は、セッションの状態を判定する。図3のS202の場合、S201に次ぐ2回目のアクセスのためセッション自身は存在するが、まだログイン済みフラグはセットされておらず、S201の場合と同様に、アプリケーションサーバ1(001)は、S301を偽(N)と判定し、S302に処理を進める。
【0076】
S302において、アプリケーションサーバ1(001)は、パラメータにパラメータ名SsIDに対応する値が存在するか判定する。図6のS407においてSsIDがパラメータに指定されているので、アプリケーションサーバ1(001)は、S302を真(Y)と判定し、S306に処理を進める。
【0077】
S306において、アプリケーションサーバ1(001)は、S302で取得したSsIDを、ワークフローサーバ003に対して有効であるか問い合わせをする(図3のS213〜215、図9のS501〜S503)。
【0078】
図3のS213〜S215は、ワークフローサーバ003において、SsIDがワークフローDB004のログイン情報に登録されているかどうかを判定する処理である。
【0079】
図3のS213において、アプリケーションサーバ1(001)は、パラメータにSsIDを指定して、図9に示すようなWeb Serviceを呼び出す。
【0080】
図3のS214は、S213の呼び出しに対応するワークフローサーバ側の処理であり、その詳細な処理を図9に示す。
【0081】
図9は、ワークフローサーバ003のログイン確認動作の一例を示すフローチャートである。なお、このフローチャートの各ステップ(S501〜S503)は、ワークフローサーバ003を実装する情報処理装置のCPU101が、外部記憶装置104に記憶されるプログラムをRAM102にロードして実行することにより実現されるものであり、以下、ワークフローサーバ003が実行すると記載する。
【0082】
図9のS501〜S503は、アプリケーションサーバ1(001)が、パラメータSsIDを含むリクエスト(ログイン確認要求)を受信し、SsIDが有効であるかどうかを判定し、結果を返す動作の詳細である。
【0083】
まず、アプリケーションサーバ1(001)からのパラメータSsIDを含むリクエスト(ログイン確認要求)を受信すると(図3のS213)、ワークフローサーバ003は、S501に処理を進める。
【0084】
S501では、ワークフローサーバ003は、パラメータで与えられたSsIDがワークフローDB004内のログイン情報に存在する(登録済み)か判定する。
【0085】
そして、パラメータで与えられたSsIDがワークフローDB004内のログイン情報に存在する(登録済み)と判定した場合には、ワークフローサーバ003は、S502に処理を進める。
【0086】
S502では、ワークフローサーバ003は、アプリケーションサーバ1(001)からのパラメータで与えられたSsIDは有効であるとして、アプリケーションサーバ1(001)に登録済みである旨をレスポンスする(図3のS215)。
【0087】
一方、S501において、パラメータで与えられたSsIDがワークフローDB004内のログイン情報に存在しない(未登録)と判定した場合には、ワークフローサーバ003は、S503に処理を進める。
【0088】
S503では、ワークフローサーバ003は、アプリケーションサーバ1(001)からのパラメータで与えられたSsIDは有効でないとして、アプリケーションサーバ1(001)に未登録である旨をレスポンスする(図3のS215)。
【0089】
アプリケーションサーバ1(001)は、ワークフローサーバ003からSsIDの有効性の問い合わせ結果を受信すると、図4のS307に処理を進める。
【0090】
S307では、アプリケーションサーバ1(001)は、図3のS215でワークフローサーバから受取ったSsIDの有効性結果を判定する。
【0091】
そして、未登録である旨の結果を受信した場合には、アプリケーションサーバ1(001)は、S307を偽(N)と判定し、S303〜S305において、再度ログイン処理を促すための処理を実行する。
【0092】
一方、登録済みであれる旨の結果を受信した場合には、アプリケーションサーバ1(001)は、S307を真(Y)と判定し、S308に処理に処理を進める。
【0093】
S308では、アプリケーションサーバ1(001)は、セッション上のログイン済みフラグをセットする。なお、このフラグはS301の判定に使われるものである。
【0094】
次に、S309において、アプリケーションサーバ1(001)は、アプリケーション処理を実行する。この場合、ログイン後のアプリケーション初期画面(図11)を生成する処理を行う。
【0095】
次に、S310において、アプリケーションサーバ1(001)は、アプリケーション画面(図11)の項目にSsID(図10)を出力する。
【0096】
図10は、図4のS310でアプリケーション画面の項目に出力されるSsIDの一例を示す図であり、アプリケーション画面を構成するHTMLのソースの一部を示すものであり、SsIDは画面には表示されないタグに記載されている。
【0097】
図10に示す例では、SsIDが、JAVA(登録商標)のオブジェクトをシリアライズした形式に変換されて埋め込まれている。なお、SsIDを変換せず、図8に示したような形式で埋め込んでもよい。
【0098】
このように画面に埋め込まれたSsIDは、表示したアプリケーション画面からボタンなどが押下されたときに、再度、クライアントブラウザ006からリクエストパラメータとしてSsIDを送信するためにおこなうものである。
【0099】
図3のS216において、アプリケーションサーバ1(001)は、図4のS309〜S310によってアプリケーションサーバ1(001)で処理した画面を、クライアントブラウザ006に送信し、表示させる。
【0100】
図11は、クライアントブラウザ006に表示されるアプリケーションサーバ1(001)のアプリケーション画面の一例を示す図である。なお、このアプリケーション画面には、図10に示したようにSsIDが埋め込まれている。ただし、埋め込まれSsIDは画面には表示されない。
【0101】
次に、図12のシーケンスチャートを参照して、アプリケーションサーバ1(001)からアプリケーションサーバ2(002)への画面遷移時におけるログイン情報の受け渡し処理の流れを説明する。
【0102】
図12は、アプリケーションサーバ1(001)からアプリケーションサーバ2(002)への画面遷移時におけるログイン情報の受け渡し処理の流れの一例を示すシーケンスチャートである。
【0103】
図12において、まず、S601〜S603は、遷移元のアプリケーションサーバ1(001)の処理の流れである。
【0104】
ユーザが画面(図11)の画面遷移ボタン(例えば、受注起案1301)等を押下すると、この操作を検知したクライアントブラウザ006は、S601において、画面情報を含むリクエストをアプリケーションサーバ1(001)に送信する。なお、画面情報には、図4のS310で画面に出力したSsIDが含まれている。
【0105】
次に、S602において、アプリケーションサーバ1(001)は、図13に示す処理を行い、リクエストから押下されたボタン等に対応する遷移先アプリケーションのURLを取得し、S603において、該クライアントにURLをクライアントブラウザ006にリダイレクトする。
【0106】
詳細には、S603において、アプリケーションサーバ1(001)は、クライアントブラウザ006からアプリケーションサーバ2(002)へ画面を遷移する要求を受け付けた場合、クライアントブラウザ006からアプリケーションサーバ2(002)へ該アプリケーションサーバ2(002)のウェブアプリケーション画面情報を要求させるための、該アプリケーションサーバ2(002)のURLに、前記要求内のアプリケーション画面情報に含まれる識別情報を、パラメータとして付加して、クライアントブラウザ006に通知する処理を行う。
【0107】
ここで、図13を用いて、S602,S603の動作について詳細に説明する。
【0108】
図13は、アプリケーションサーバ1(001)の動作の一例を示すフローチャートである。なお、このフローチャートの各ステップ(S701〜S704)は、アプリケーションサーバ1(001)を実装する情報処理装置のCPU101が、外部記憶装置104に記憶されるプログラムをRAM102にロードして実行することにより実現されるものであり、以下、アプリケーションサーバ1(001)が実行すると記載する。
【0109】
まず、クライアントブラウザ006からのリクエスト(図12のS601)を受信すると、アプリケーションサーバ1(001)は、S701に処理を進める。
【0110】
S701では、アプリケーションサーバ1(001)は、アプリケーションサーバ1(001)の外部記憶装置104上にある設定ファイル「workflow.conf」(図5)を読み取りRAM102に格納する。
【0111】
次に、S702において、アプリケーションサーバ1(001)は、リクエストからクライアントブラウザ006上で押下されたボタン名(アクション)に対応する遷移先アプリケーションIDを決定する。この対応は、プログラムあるいはファイルまたはDB上にある対応情報から決定する。さらに、アプリケーションサーバ1(001)は、S701で読み込んだ設定ファイル「workflow.conf」(図5)から、論理アプリIDに対応するURL(例えば、図5の902)を取得し、そのパラメータにSsIDを付加し、これを「次URL」としてRAM102に保持する。図12のS602では、アプリケーションサーバ2(002)のURLを取得し、クライアントブラウザ006から送信された画面情報に含まれるSsIDをパラメータに付加する。
【0112】
次に、S703において、アプリケーションサーバ1(001)は、遷移元のセッション情報は不要であるため、アプリケーションサーバ1(001)のセッションを破棄(無効化)することで開放する。
【0113】
次に、S704において、アプリケーションサーバ1(001)は、S702で保持した「次URL」をクライアントブラウザ006にリダイレクトする。
【0114】
以上で、図7のS601〜S603の動作を詳細に説明した。
【0115】
次に、S604〜S609は、アプリケーションサーバ2(002)への遷移処理と、ワークフローサーバのログインチェック処理の流れである。
【0116】
S604において、クライアントブラウザ006は、アプリケーションサーバ1(001)から与えられたリダイレクト先「次URL」であるアプリケーションサーバ2(002)にリクエストを送る。
【0117】
S605では、アプリケーションサーバ2(002)は、図4の処理を行い、S606において、リクエストのパラメータのSsIDの有効性の確認をワークフローサーバ003に要求し、ログイン確認を行う。なお、上記のSsIDが有効であればログイン済みとする。
【0118】
S607において、ワークフローサーバ003は、ログイン確認処理を行い、S608において、ログイン確認結果をアプリケーションサーバ2(002)に返信する。
【0119】
S609では、アプリケーションサーバ2(002)は、ログイン結果がOKであったら、アプリケーション画面(後述する図14)をクライアントブラウザ006に送信し、クライアントブラウザ006にアプリケーション画面(図14)を表示させる。
【0120】
図14は、クライアントブラウザ006に表示されるアプリケーションサーバ2(002)のアプリケーション画面の一例を示す図である。
【0121】
以上説明したように、本実施形態によれば、小規模な情報処理システムにおいて、LDAP等のシングル・サインオンの技術を用いることなく、容易に複数のアプリケーションにおいてシームレスな認証を可能とするシステムを容易に構築することができる。
【0122】
即ち、シングル・サインオンのように、それぞれのアプリケーションで、(1)ユーザの認証情報が統一されていなければならない、(2)認証インタフェースが統合されていなければならない、(3)アクセス制御が統合されていなければならない等の要件をクリアする必要がなく、容易な構築作業で短時間に当該システムを導入することが可能となる。
【0123】
したがって、複数の業務アプリケーションサーバとワークフローサーバとの間でのユーザ認証情報やセッション情報の受け渡しをするアプリケーション等を容易に開発することができる。
【0124】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0125】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0126】
以下、図15に示すメモリマップを参照して本発明に係る情報処理システムを構成する各情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0127】
図15は、本発明に係る情報処理システムを構成する各情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0128】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0129】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0130】
本実施形態における図3,図4,図6,図9,図12,図13に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0131】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0132】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0133】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0134】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0135】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0136】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0137】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0138】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【0139】
【図1】本発明の一実施形態を示す情報処理システムの一例を示すシステム構成図である。
【図2】図1に示したアプリケーションサーバ1、アプリケーションサーバ2、ワークフローサーバ003、クライアントブラウザ006に適用可能な情報処理装置のハードウェア構成の一例を示すブロック図である。
【図3】クライアントブラウザ006からアプリケーションサーバ1(001)にログインする手順の一例を示すシーケンスチャートである。
【図4】アプリケーションサーバ1の動作の一例を示すフローチャートである。
【図5】アプリケーションサーバ1の外部記憶装置104上に記憶される設定ファイル「workflow.conf」の一例を示す図である。
【図6】ワークフローサーバ003の動作の一例を示すフローチャートである。
【図7】クライアントブラウザ006に表示されるログイン画面の一例を示す図である。
【図8】図6のS407でパラメータとしてSsIDを付加した戻りURLの一例を示す図である。
【図9】ワークフローサーバ003のログイン確認動作の一例を示すフローチャートである。
【図10】図4のS310でアプリケーション画面の項目に出力されるSsIDの一例を示す図である。
【図11】クライアントブラウザ006に表示されるアプリケーションサーバ1(001)のアプリケーション画面の一例を示す図である。
【図12】アプリケーションサーバ1からアプリケーションサーバ2への画面遷移時におけるログイン情報の受け渡し処理の流れをの一例を示すシーケンスチャートである。
【図13】アプリケーションサーバ1の動作の一例を示すフローチャートである。
【図14】クライアントブラウザ006に表示されるアプリケーションサーバ2(002)のアプリケーション画面の一例を示す図である。
【図15】本発明に係る情報処理システムを構成する各情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0140】
001 アプリケーションサーバ1
002 アプリケーションサーバ2
003 ワークフローサーバ
004 ワークフローDB
005 アプリケーションDB
006 クライアントブラウザ
007 ネットワーク

【特許請求の範囲】
【請求項1】
ウェブアプリケーションが動作する複数のウェブアプリケーションサーバと、情報処理サーバとを含む情報処理システムであって、
前記ウェブアプリケーションサーバは、
ウェブクライアントからアプリケーション画面情報の要求を受け付けた場合、該要求に、前記情報処理サーバへのログイン状況を示す識別子が含まれているかを判定する判定手段と、
前記判定手段により前記識別子が含まれないと判定された場合、前記ウェブクライアントから前記情報処理サーバへ前記ログイン画面情報を要求させるための、該情報処理サーバのロケーション情報に、当該ウェブアプリケーションサーバのロケーション情報をパラメータとして付加して、前記ウェブクライアントに通知する第1の通知手段と、
前記判定手段により前記識別子が含まれると判定された場合、該識別子の有効性を前記情報処理サーバに問い合わせる問い合わせ手段と、
前記問い合わせ手段による問い合わせの結果、前記識別子が有効である場合、前記識別子を埋め込んだウェブアプリケーション画面情報を、前記ウェブクライアントへ送信する第1の画面情報送信手段と、
前記ウェブクライアントから他のウェブアプリケーションサーバへ画面を遷移する要求を受け付けた場合、前記ウェブクライアントから前記他のウェブアプリケーションサーバへ前記他のウェブアプリケーション画面情報を要求させるための、該他のウェブアプリケーションサーバのロケーション情報に、前記要求内の前記ウェブアプリケーション画面情報に含まれる識別情報を、パラメータとして付加して、前記ウェブクライアントに通知する第2の通知手段とを有し、
前記情報処理サーバは、
前記ウェブクライアントから前記ログイン画面情報の要求を受け付けた場合、前記要求に含まれる前記ウェブアプリケーションサーバのロケーション情報を、前記ログイン画面情報に埋め込んで、前記ウェブクライアントへ送信する第2の画面情報送信手段と、
前記ウェブクライアントから前記ログイン画面情報を含むログイン要求を受け付けた場合、ログイン処理を行うログイン処理手段と、
前記ログイン処理手段によるログイン処理が成功した場合、前記識別子を生成して保持手段に保持させる識別子生成手段と、
前記ウェブクライアントから前記ウェブアプリケーションサーバへ前記アプリケーション画面情報を要求させるための、前記ログイン要求内のログイン画面情報に含まれていた前記ウェブアプリケーションサーバのロケーション情報に、前記識別子生成手段により生成された識別子をパラメータとして付加して、前記ウェブクライアントに通知する第3の通知手段と、
前記問い合わせ手段により問い合わされた識別子が有効であるか否かを、該識別子が前記保持手段に保持されているか否かで判定し、該判定結果を返信する識別子有効性判定手段とを有することを特徴とする情報処理システム。
【請求項2】
前記ウェブアプリケーションサーバは、前記問い合わせ手段による問い合わせの結果、前記識別子が有効である場合、セッションの状態をログイン済みとし、また、前記第2の通知手段による通知処理後に前記セッションを開放するセッション管理手段を有し、
前記セッション管理手段は、前記ウェブクライアントからアプリケーション画面情報の要求を受け付けた場合、該要求に対応するセッションの状態がログイン済みでない場合、前記判定手段に判定処理を実行させ、一方、ログイン済みである場合、第1の画面情報送信手段に画面送信処理を実行させる、ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記ウェブアプリケーションサーバと前記情報処理サーバは、前記各ロケーション情報を含む同一のファイルをそれぞれ保持することを特徴とする請求項1又は2に記載の情報処理システム。
【請求項4】
前記各画面情報は、構造化言語で記述されることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
【請求項5】
ウェブアプリケーションが動作する複数のウェブアプリケーションサーバと、情報処理サーバとを含む情報処理システムにおける情報処理方法であって、
前記ウェブアプリケーションサーバに、
判定手段が、ウェブクライアントからアプリケーション画面情報の要求を受け付けた場合、該要求に、前記情報処理サーバへのログイン状況を示す識別子が含まれているかを判定する判定ステップと、
第1の通知手段が、前記判定ステップにより前記識別子が含まれないと判定された場合、前記ウェブクライアントから前記情報処理サーバへ前記ログイン画面情報を要求させるための、該情報処理サーバのロケーション情報に、当該ウェブアプリケーションサーバのロケーション情報をパラメータとして付加して、前記ウェブクライアントに通知する第1の通知ステップと、
問い合わせ手段が、前記判定ステップにより前記識別子が含まれると判定された場合、該識別子の有効性を前記情報処理サーバに問い合わせる問い合わせステップと、
第1の画面情報送信手段が、前記問い合わせステップによる問い合わせの結果、前記識別子が有効である場合、前記識別子を埋め込んだウェブアプリケーション画面情報を、前記ウェブクライアントへ送信する第1の画面情報送信ステップと、
第2の通知手段が、前記ウェブクライアントから他のウェブアプリケーションサーバへ画面を遷移する要求を受け付けた場合、前記ウェブクライアントから前記他のウェブアプリケーションサーバへ前記他のウェブアプリケーション画面情報を要求させるための、該他のウェブアプリケーションサーバのロケーション情報に、前記要求内の前記ウェブアプリケーション画面情報に含まれる識別情報を、パラメータとして付加して、前記ウェブクライアントに通知する第2の通知ステップとを実行させ、
前記情報処理サーバに、
第2の画面情報送信手段が、前記ウェブクライアントから前記ログイン画面情報の要求を受け付けた場合、前記要求に含まれる前記ウェブアプリケーションサーバのロケーション情報を、前記ログイン画面情報に埋め込んで、前記ウェブクライアントへ送信する第2の画面情報送信ステップと、
ログイン処理手段が、前記ウェブクライアントから前記ログイン画面情報を含むログイン要求を受け付けた場合、ログイン処理を行うログイン処理ステップと、
識別子生成手段が、前記ログイン処理手段によるログイン処理が成功した場合、前記識別子を生成して保持手段に保持させる識別子生成ステップと、
第3の通知手段が、前記ウェブクライアントから前記ウェブアプリケーションサーバへ前記アプリケーション画面情報を要求させるための、前記ログイン要求内のログイン画面情報に含まれていた前記ウェブアプリケーションサーバのロケーション情報に、前記識別子生成手段により生成された識別子をパラメータとして付加して、前記ウェブクライアントに通知する第3の通知ステップと、
識別子有効性判定手段が、前記問い合わせステップにより問い合わされた識別子が有効であるか否かを、該識別子が前記保持手段に保持されているか否かで判定し、該判定結果を返信する識別子有効性判定手段とを実行させることを特徴とする情報処理方法。
【請求項6】
請求項5に記載された情報処理方法を、ウェブアプリケーションが動作する複数のウェブアプリケーションサーバと情報処理サーバとを含む情報処理システムにおいて実行させるためのプログラム。
【請求項7】
請求項5に記載された情報処理方法を、ウェブアプリケーションが動作する複数のウェブアプリケーションサーバと情報処理サーバとを含む情報処理システムにおいて実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2009−271817(P2009−271817A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−123113(P2008−123113)
【出願日】平成20年5月9日(2008.5.9)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)
【Fターム(参考)】