JP6620558B2 - 情報処理装置及び情報処理プログラム - Google Patents

情報処理装置及び情報処理プログラム Download PDF

Info

Publication number
JP6620558B2
JP6620558B2 JP2016000221A JP2016000221A JP6620558B2 JP 6620558 B2 JP6620558 B2 JP 6620558B2 JP 2016000221 A JP2016000221 A JP 2016000221A JP 2016000221 A JP2016000221 A JP 2016000221A JP 6620558 B2 JP6620558 B2 JP 6620558B2
Authority
JP
Japan
Prior art keywords
information
request
load balancer
client
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016000221A
Other languages
English (en)
Other versions
JP2017122957A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2016000221A priority Critical patent/JP6620558B2/ja
Priority to US15/208,885 priority patent/US10154085B2/en
Publication of JP2017122957A publication Critical patent/JP2017122957A/ja
Application granted granted Critical
Publication of JP6620558B2 publication Critical patent/JP6620558B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、情報処理装置及び情報処理プログラムに関する。
特許文献1には、持続的に同一の宛先へのHTTP接続を導く目的で、HTTP接続のデータストリーム内のクッキー(Cookie)を挿入し、検査するための方法及びシステムとして、要求されたリソースにアクセスするために同じサーバ(宛先)に同じクライアントからの後続のHTTP接続を指示することが開示されている。つまり、同一クライアントからのリクエストをロードバランサの背後にある複数のアプリケーションサーバのうち、毎回同じサーバに転送するように、アプリケーションサーバを識別するための情報をクッキーに記載する方法が提案されている。
米国特許第6473802号明細書
REST APIでは、論理的にはサーバ側は状態を持たないことが前提となっており、状態管理を目的としたクッキー(Cookie)をクライアント側が使用することがない。
一方、論理的にはサーバ側に状態を持たない場合でも、同じクライアントからのリクエストを同じサーバ(実サーバ)に到達させることにより、キャッシュの有効利用等の面で性能上有利になることが多い。
しかし、特許文献1に記載の技術では、REST APIに対応することができない。つまり、特許文献1に記載の技術では、クッキーをクライアント側が使用することとなるので、REST APIに準じていないことになる。
本発明は、クライアントにクッキーを使用させることなく、同じクライアントからの要求を同じサーバに処理させることを可能にした情報処理装置及び情報処理プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項の発明は、認可サーバから第1の情報を受け付ける受付手段と、ロードバランサ手段に要求を送信する送信手段と、前記ロードバランサ手段から前記要求に対する応答に付与された第2の情報を受け付ける第2の受付手段と、前記第2の情報を前記認可サーバに送信する第2の送信手段を有し、前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、情報処理装置である。
請求項の発明は、クライアントから受け付けた要求に付与された第1の情報から前記第2の情報を抽出し、該要求に付与する付与手段と、前記要求と前記第1の情報と前記第2の情報をロードバランサ手段に送信する第3の送信手段をさらに有する請求項に記載の情報処理装置である。
請求項の発明は、認可サーバからユーザーに関する情報を受け付ける受付手段と、要求を行ったユーザーに関する情報と、該要求に対してロードバランサ手段から受け付けた応答に付与された第2の情報を対応付けて記憶装置に記憶させる制御を行う記憶制御手段と、前記受付手段によって受け付けられたユーザーに関する情報に類似するユーザーに関する情報を前記記憶装置から検索し、該検索されたユーザーに関する情報に対応する第2の情報を前記認可サーバに送信する送信手段を有し、前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、情報処理装置である。
請求項の発明は、前記ユーザーに関する情報として、該ユーザーを識別するための識別情報、該ユーザーが属しているグループを識別するための識別情報、該ユーザーの役割を示す情報、該ユーザーがアクセス可能なリソースを示す情報のいずれか1つ、又はこれらの組み合わせを利用する、請求項に記載の情報処理装置である。
請求項の発明は、前記第1の情報として、クライアントが認可サーバから取得するアクセストークンを利用し、前記第2の情報として、前記ロードバランサ手段が発行したクッキーを利用し、前記認可サーバは、アクセストークンを生成し、本情報処理装置に送信する、請求項1又は2に記載の情報処理装置である。
請求項の発明は、コンピュータを、認可サーバから第1の情報を受け付ける受付手段と、ロードバランサ手段に要求を送信する送信手段と、前記ロードバランサ手段から前記要求に対する応答に付与された第2の情報を受け付ける第2の受付手段と、前記第2の情報を前記認可サーバに送信する第2の送信手段として機能させ、前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、情報処理プログラムである。
請求項の発明は、コンピュータを、認可サーバからユーザーに関する情報を受け付ける受付手段と、要求を行ったユーザーに関する情報と、該要求に対してロードバランサ手段から受け付けた応答に付与された第2の情報を対応付けて記憶装置に記憶させる制御を行う記憶制御手段と、前記受付手段によって受け付けられたユーザーに関する情報に類似するユーザーに関する情報を前記記憶装置から検索し、該検索されたユーザーに関する情報に対応する第2の情報を前記認可サーバに送信する送信手段として機能させ、前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、情報処理プログラムである。
請求項の情報処理装置によれば、クライアントにクッキーを使用させることなく、同じクライアントからの要求を同じサーバに処理させることができる。
請求項の情報処理装置によれば、クライアントから受け付けた要求に付与された第1の情報から第2の情報を抽出し、要求と第1の情報と第2の情報をロードバランサ手段に送信することができる。
請求項の情報処理装置によれば、クライアントにクッキーを使用させることなく、同じクライアントからの要求を同じサーバに処理させることができる。
請求項の情報処理装置によれば、ユーザーに関する情報として、ユーザーを識別するための識別情報、そのユーザーが属しているグループを識別するための識別情報、そのユーザーの役割を示す情報、そのユーザーがアクセス可能なリソースを示す情報のいずれか1つ、又はこれらの組み合わせを利用することができる。
請求項の情報処理装置によれば、第1の情報として、クライアントが取得したアクセストークンを利用し、第2の情報として、ロードバランサ手段が発行したクッキーを利用することができる。
請求項の情報処理プログラムによれば、クライアントにクッキーを使用させることなく、同じクライアントからの要求を同じサーバに処理させることができる。
請求項の情報処理プログラムによれば、クライアントにクッキーを使用させることなく、同じクライアントからの要求を同じサーバに処理させることができる。
第1の実施の形態の構成例についての概念的なモジュール構成図である。 第1の実施の形態の構成例についての概念的なモジュール構成図である。 本実施の形態を利用したシステム構成例を示す説明図である。 第1の実施の形態による処理例を示すフローチャートである。 第1の実施の形態による処理例を示すフローチャートである。 クッキーデータのデータ構造例を示す説明図である。 関連テーブルのデータ構造例を示す説明図である。 関連テーブルのデータ構造例を示す説明図である。 第2の実施の形態の構成例についての概念的なモジュール構成図である。 第2の実施の形態の構成例についての概念的なモジュール構成図である。 第2の実施の形態による処理例を示すフローチャートである。 第2の実施の形態による処理例を示すフローチャートである。 アクセストークンデータのデータ構造例を示す説明図である。 第3の実施の形態の構成例についての概念的なモジュール構成図である。 第3の実施の形態の構成例についての概念的なモジュール構成図である。 第3の実施の形態による処理例を示すフローチャートである。 本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
<第1の実施の形態>
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
第1の実施の形態である情報処理システムは、クライアント110からの要求(リクエスト)に応じて、アプリケーションサーバ145が処理を行うものであって、図1の例に示すように、クライアント110、認可サーバ120、中継装置130、ロードバランサ140、アプリケーションサーバ1:145A、アプリケーションサーバ2:145B、アプリケーションサーバ3:145Cを有している。なお、図1では、3つのアプリケーションサーバ145を例示しているが、複数のアプリケーションサーバ145を使用すればよい。クライアント110と認可サーバ120、クライアント110と中継装置130、中継装置130とロードバランサ140、ロードバランサ140と各アプリケーションサーバ145は、通信回線を介して接続されている。
なお、請求項に記載の「第1の情報」として、例えば、アクセストークン又はこのアクセストークンと同等の機能(ここでは、同じクライアントであることを保証できる機能)を有する情報であればよい。以下、アクセストークンを例示して説明する。また、「第2の情報」として、例えば、クッキー又はこのクッキーと同等の機能(ここでは、アプリケーションサーバを指定できる機能)を有する情報であればよい。以下、クッキーを例示して説明する。「ロードバランサ手段」として、例えば、図1、9、14に示すロードバランサ140、図2に示すロードバランス処理モジュール235、図10に示すロードバランス処理モジュール1035、図15に示すロードバランス処理モジュール1532が該当する。
クライアント110とロードバランサ140の間に中継装置130を置き、その中継装置130内でアクセストークンからロードバランサ140が解釈するクッキーを生成し、中継装置130からロードバランサ140への要求を転送する際に付与する。これによって、REST APIにしたがって(つまり、クライアント110はクッキーを利用することなく、アプリケーションサーバ145もクッキーを利用することなく)、クライアント110からの複数回の要求を同じアプリケーションサーバ145に処理させることができるようになる。なお、同じアプリケーションサーバ145に処理させるのは、例えば、そのユーザーにとって、毎回異なるアプリケーションサーバ145が処理を行うよりも効率的な処理を実施することができ、また、ユーザーに関する処理である場合、前回のそのユーザーに関する処理結果を用いることができることがあるからである。
クライアント110は、認可サーバ120、中継装置130と接続されている。クライアント110は、通信機能を有しており、ユーザーが用いる情報処理装置である。例えば、PC(Personal Computer、ノートPC等であってもよい)、携帯端末(スマートフォンを含む携帯電話等)、ウェアラブル端末(リストバンド型(腕輪型)、腕時計型、頭に装着するメガネ型)等が該当する。クライアント110は、認可サーバ120からアクセストークンを取得し、そのアクセストークンを付与した要求を中継装置130に送信する。
具体的には、クライアント110は、アプリケーションサーバ145を利用するクライアントであって、中継装置130及びロードバランサ140を経由してAPI(Application Programming Interface)呼び出しを実行する。なお、API呼び出しに先立ち、認可サーバ120からアクセストークンを取得する。
認可サーバ120は、クライアント110と接続されている。認可サーバ120は、通信機能を有しており、クライアント110からの要求にしたがってアクセストークンを生成し、クライアント110に送信する。ここでアクセストークンとは、クライアント110(又はクライアント110を利用するユーザー)が、アプリケーションサーバ145を利用することができることを証明する情報である。例えば、認証済みユーザーを識別するための文字列等が該当する。アクセストークンを生成するために、クライアント110から、ユーザーによってログイン操作(ユーザー名とパスワード(指紋認証等の生体認証を含めてもよい)の受付)が行われる。なお、一般的に、アクセストークンには有効期限が設定されている。
具体的には、認可サーバ120は、API呼び出しの権限を表すアクセストークンを生成する。第1の実施の形態では、認可の仕組みには依存しないが、例としてはOAuth2(https://tools.ietf.org/html/rfc6749)を用いてもよい。なお、認可サーバ120が発行するアクセストークンはクライアント110から透過的な(意味を持たない)ものなので任意の文字列が使われるが、一般にはJWT(https://tools.ietf.org/html/rfc7519)が用いられる。
中継装置130は、記録装置135を有しており、クライアント110、ロードバランサ140と接続されている。中継装置130は、通信機能を有しており、クライアント110とロードバランサ140の間に存在し、クライアント110からロードバランサ140又はロードバランサ140からクライアント110にアクセスするためには、中継装置130を経由することになる。
中継装置130は、クライアント110から受け付けた要求に付与されたアクセストークン(第1の情報の一形態)と、その要求に対してロードバランサ140(ロードバランサ手段の一形態)から受け付けた応答に付与されたクッキー(第2の情報の一形態)を対応付けて記録装置135に記憶させる制御を行う。ここで前述したように、第1の情報として、クライアント110が認可サーバ120から取得したアクセストークンを利用し、第2の情報として、ロードバランサ140が発行したクッキーを利用する。
そして、中継装置130は、ロードバランサ140から受け取った応答から、クッキーを削除し、そのクッキーを削除した後の応答をクライアント110に送信する。
また、中継装置130は、クライアント110から受け付けた要求に付与されたアクセストークンを記録装置135から検索して、そのアクセストークンに対応するクッキーを、その要求に付与し、そのクッキーが付与された要求をロードバランサ140に送信するようにしてもよい。
具体的には、中継装置130は、クライアント110からアプリケーションサーバ145へのAPI呼び出し(アクセストークンを含む要求)を中継する。中継する際に、アクセストークンからロードバランサ140が使用するクッキーを付与する。第1の実施の形態では、最初に、ロードバランサ140が生成したクッキーをアクセストークンと紐づけて記録装置135に記憶させ、次回同じアクセストークンでリクエストが来た場合にそのクッキーを付与してロードバランサ140(最終的にはアプリケーションサーバ145)に要求を転送する。
記録装置135は、アクセストークンとクッキーを対応付けて(アクセストークンとクッキーのペアを)記憶する。例えば、関連テーブル700を記憶する。図7は、関連テーブル700のデータ構造例を示す説明図である。関連テーブル700は、アクセストークン欄710、サーバID欄720、ユーザーID欄730、グループID欄740、ロール欄750、最終アクセス時刻欄760、アクセストークン有効期限欄770を有している。アクセストークン欄710は、アクセストークンを記憶している。サーバID欄720は、本実施の形態において、アプリケーションサーバ145を一意に識別するための情報(サーバID:IDentification)を記憶している。ユーザーID欄730は、本実施の形態において、ユーザーを一意に識別するための情報(ユーザーID)を記憶している。グループID欄740は、本実施の形態において、グループを一意に識別するための情報(グループID)を記憶している。ロール欄750は、そのユーザー又はグループが有しているロール(「ユーザーの役割を示す情報」の一形態であって、役割、役柄、任務、クラス等を含む)を記憶している。最終アクセス時刻欄760は、そのユーザーによって行われたアプリケーションサーバ145への最終アクセス時刻(最新アクセス時刻)を記憶している。アクセストークン有効期限欄770は、そのアクセストークンの有効期限を記憶している。
なお、サーバID欄720内の情報は、ロードバランサ140から得た応答に付与されたクッキーから抽出した情報である。したがって、アクセストークンとクッキーが対応付けられている。最終アクセス時刻欄760又はアクセストークン有効期限欄770内の情報は、関連テーブル700内のその行にある関連付けデータの削除を判断するために用いる。例えば、現在の時刻が、最終アクセス時刻欄760内の時刻から予め定められた期間が過ぎている場合は、その行の関連付けデータを削除してもよい。また、現在の時刻が、アクセストークン有効期限欄770内の有効期限を過ぎている場合は、その行の関連付けデータを削除してもよい。
また、記録装置135は、関連テーブル800を記憶していてもよい。図8は、関連テーブル800のデータ構造例を示す説明図である。関連テーブル800は、アクセストークン欄810、Cookie欄820を有している。アクセストークン欄810は、アクセストークンを記憶している。Cookie欄820は、そのアクセストークンに対応するクッキーを記憶している。
ロードバランサ140は、中継装置130、アプリケーションサーバ1:145A、アプリケーションサーバ2:145B、アプリケーションサーバ3:145Cと接続されている。ロードバランサ140は、通信機能を有しており、負荷分散装置であり、クライアント110から送信された要求を、2台以上のアプリケーションサーバ145に振り分けて処理(分散処理)をさせるものである。要求の割り当て方は既存の方法を用いればよい。例えば、各アプリケーションサーバ145に順番に均等に割り当てるラウンドロビン方式等を採用してもよい。ここでのロードバランサ140は、既存のロードバランサを採用してもよい。例えば、特許文献1に記載の技術を用いてもよい。具体的には、同じクライアント110(又はユーザー)からの要求は、同じアプリケーションサーバ145に処理させるために、アプリケーションサーバ145からの処理結果を受け取った場合に、その処理結果にクッキーを付与して、中継装置130を介してクライアント110に送信する。
具体的には、ロードバランサ140は、クライアント110からの要求を後段のアプリケーションサーバ145に分散して転送する。同一クライアント110からの要求を同じアプリケーションサーバ145に転送するために、クッキーに転送先を決定するための情報を埋め込む。例えば、クッキー内に図6に示すクッキーデータ600を埋め込む。クッキーデータ600は、ロードバランサ140が設定するクッキー情報の例を示しており、具体的には、処理させるアプリケーションサーバ145として、「S1」を指定していることを意味している。
各アプリケーションサーバ145は、ロードバランサ140と接続されている。アプリケーションサーバ145は、通信機能を有しており、ロードバランサ140からの要求にしたがって処理を行い、その処理結果をロードバランサ140に返信する。
図2は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。図1の例に示した第1の実施の形態とは、異なるモジュール構成にしたものである。図2の例に示したロードバランサ230は、図1の例に示した中継装置130とロードバランサ140を組み合わせたものであり、両者の機能を有している。そして、ロードバランサ140の機能をロードバランス処理モジュール235が有している。
クライアント110は、認可サーバ120、ロードバランサ230と接続されている。
認可サーバ120は、クライアント110と接続されている。
ロードバランサ230は、ロードバランス処理モジュール235、記録装置135を有しており、クライアント110、アプリケーションサーバ1:145A、アプリケーションサーバ2:145B、アプリケーションサーバ3:145Cと接続されている。
各アプリケーションサーバ145は、ロードバランサ230と接続されている。
図3は、本実施の形態を利用したシステム構成例を示す説明図である。
クライアント110A、クライアント110B、クライアント110C、認可サーバ120、中継装置130、ロードバランサ230は、通信回線390を介してそれぞれ接続されている。通信回線390は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、中継装置130(ロードバランサ140、アプリケーションサーバ1:145A等を含めてもよい)、ロードバランサ230(アプリケーションサーバ4:145D等を含めてもよい)による機能は、クラウドサービスとして実現してもよい。もちろんのことながら、クライアント110、認可サーバ120、中継装置130、ロードバランサ230等の設置は、図3の例に示した個数以外の個数であってもよい。
各クライアント110のブラウザ等が用いられて、各ホームページからサービス(アプリケーションサーバ1:145A等又はアプリケーションサーバ4:145D等が提供するサービス)が提供される。ユーザーの操作にしたがって、アプリケーションサーバ145に対して要求が送信され、アプリケーションサーバ145等によるサービス(要求に対する処理)が提供される。その場合に、アプリケーションサーバ145、クライアント110間では、REST APIにしたがってクッキーの利用はされないが、中継装置130とロードバランサ140(又はロードバランサ230)によって、同じクライアント110からの要求は、同じアプリケーションサーバ145に処理させることができるようになる。
図4は、第1の実施の形態による処理例を示すフローチャートである。クライアント110から初回の要求があった場合の処理例を示すものである。
ステップS402では、クライアント110が認可サーバ120にアクセストークンを要求する。
ステップS404では、認可サーバ120がアクセストークンをクライアント110に返す。
ステップS406では、クライアント110が中継装置130にアクセストークン付きでAPI要求を発行する。
ステップS408では、ロードバランサ140がアプリケーションサーバ145の1つを決定し、要求を転送する。
ステップS410では、アプリケーションサーバ145が要求に対し応答を返す。
ステップS412では、ロードバランサ140が転送先アプリケーションサーバ145を固定するクッキーを応答に付与する。
ステップS414では、中継装置130がアクセストークンとクッキーの情報を紐づけて記録し、クッキー情報を応答から削除する。なお、このときにユーザーIDも合わせて記録してもよい。
ステップS416では、クライアント110が応答を受け取る。ここでの応答は、クッキーが付与されていないデータ(ステップS410での応答と同等)である。
図5は、第1の実施の形態による処理例を示すフローチャートである。クライアント110から2回目以降の要求があった場合の処理例を示すものである。つまり、図4の例に示すフローチャートの処理が実行された後に、クライアント110が発行した要求に対する処理である。
ステップS502では、クライアント110が中継装置130にアクセストークン付きでAPI要求を発行する。なお、ここでのアクセストークンは、図4の例に示すフローチャートの処理によって取得したアクセストークンである。
ステップS504では、中継装置130がアクセストークンに関連付けられたクッキーを要求に付与する。また、アクセストークンに関連付けられたクッキーがない場合は、ユーザーID/グループID/ロールIDで検索して、類似性の高いユーザーの使用したクッキーを使用してもよい。
ステップS506では、ロードバランサ140がクッキーに基づきアプリケーションサーバ145を決定し、要求を転送する。
ステップS508では、アプリケーションサーバ145が要求に対し応答を返す。
ステップS510では、ロードバランサ140が応答をそのまま転送する。
ステップS512では、中継装置130が応答をそのまま転送する。
ステップS514では、クライアント110が応答を受け取る。
なお、図5の例に示すフローチャートの処理は、記録装置135内にアクセストークンとクッキーのペアが記憶されているので、ステップS510、ステップS512では、応答をそのまま転送している。ただし、図4の例に示すフローチャート、図5の例に示すフローチャートで、ロードバランサ140が同じ処理を行わせるため(つまり、図4の例に示すフローチャートの処理、図5の例に示すフローチャートの処理であることを区別させる必要をなくすため)、クッキーを付与してもよい。その場合、ステップS512で、中継装置130が、そのクッキーを削除すればよい。
<第2の実施の形態>
図9は、第2の実施の形態の構成例についての概念的なモジュール構成図である。なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する(以下、同様)。第2の実施の形態は、第1の実施の形態のようにクッキーとアクセストークンのペアを記録する必要がなくなり、必要メモリ量が削減できる。
クライアント110は、認可サーバ920、中継装置930と接続されている。
認可サーバ920は、クライアント110、中継装置930と接続されている。認可サーバ920は、第1の実施の形態の認可サーバ120と同等のアクセストークンの生成処理を行うが、生成したアクセストークンに付与するクッキーを中継装置930に要求する。そして、中継装置930からクッキーを受け取り、アクセストークンにクッキーを埋め込んで、そのアクセストークン(クッキーが付与されたアクセストークン)をクライアント110に渡す。
又は、認可サーバ920は、アクセストークンの生成処理を行い、生成したアクセストークンを中継装置930に渡す。中継装置930が、アクセストークンにクッキーを付与する。そして、中継装置930が、そのアクセストークン(クッキーが付与されたアクセストークン)をクライアント110に渡すようにしてもよい。若しくは、中継装置930が、そのアクセストークン(クッキーが付与されたアクセストークン)を認可サーバ920に渡し、認可サーバ920がそのアクセストークンをクライアント110に渡すようにしてもよい。
中継装置930は、クライアント110、認可サーバ920、ロードバランサ140と接続されている。中継装置930は、認可サーバ920からアクセストークンを受け付ける。ロードバランサ140に、任意の要求を送信する。ここでの要求は、クッキーを生成させるためだけの要求であり、アプリケーションサーバ145に実際の処理を行わせるものでなくてもよい。もちろんのことながら、実際の処理を行わせる要求であってもよい。そして、ロードバランサ140から要求に対する応答に付与されたクッキーを受け付ける。次に、そのクッキーを認可サーバ920に送信する。
また、中継装置930は、クライアント110から受け付けた要求に付与されたアクセストークンからクッキーを抽出し、その要求に付与するようにしてもよい。なお、この中継装置930における「付与する」処理は、アクセストークンから抽出したクッキー情報を、本来のクッキーとして機能するように要求に付与する処理である。
そして、要求とアクセストークンとクッキー(アクセストークンとクッキーが付与された要求)をロードバランサ140に送信するようにしてもよい。
具体的には、中継装置930は、クライアント110からアプリケーションサーバ145へのAPI呼び出し(アクセストークンを含む要求)を中継する。中継する際に、アクセストークンからロードバランサ140が使用するクッキーを付与する。第2の実施の形態では、認可サーバ920と連携し、認可サーバ920が発行するアクセストークンに、ロードバランサ140が生成したクッキー情報を埋め込んでクライアント110にアクセストークンを提供する。なお、クッキー情報を埋め込む処理自体、クライアント110にアクセストークンを送信する処理自体は、中継装置930が行ってもよいし、認可サーバ920が行ってもよい。
ロードバランサ140は、中継装置930、アプリケーションサーバ1:145A、アプリケーションサーバ2:145B、アプリケーションサーバ3:145Cと接続されている。
アプリケーションサーバ145は、ロードバランサ140と接続されている。
図10は、第2の実施の形態の構成例についての概念的なモジュール構成図である。図9の例に示した第2の実施の形態とは、異なるモジュール構成にしたものである。図10の例に示したロードバランサ1030は、図9の例に示した中継装置930とロードバランサ140を組み合わせたものであり、両者の機能を有している。そして、ロードバランサ140の機能をロードバランス処理モジュール1035が有している。
クライアント110は、認可サーバ920、ロードバランサ1030と接続されている。
認可サーバ920は、クライアント110、ロードバランサ1030と接続されている。
ロードバランサ1030は、クライアント110、認可サーバ920、アプリケーションサーバ1:145A、アプリケーションサーバ2:145B、アプリケーションサーバ3:145Cと接続されている。
各アプリケーションサーバ145は、ロードバランサ1030と接続されている。
図11は、第2の実施の形態による処理例を示すフローチャートである。主に、アクセストークンの発行処理例を示すものである。
ステップS1102では、クライアント110が認可サーバ920にアクセストークンを要求する。
ステップS1104では、認可サーバ920は中継装置930にアクセストークンに埋め込む追加情報(クッキー情報)を要求する。
ステップS1106では、中継装置930はロードバランサ140に適当な要求を発行する。ここでの要求は、前述したように、クッキーを生成させるためだけの要求であり、アプリケーションサーバ145に実際の処理を行わせるものでなくてもよい(例えば、単に、返信を行わせるだけの処理等)。もちろんのことながら、実際の処理を行わせる要求であってもよい。
ステップS1108では、ロードバランサ140がアプリケーションサーバ145の1つを決定し、要求を転送する。
ステップS1110では、アプリケーションサーバ145が要求に対し応答を返す。
ステップS1112では、ロードバランサ140が転送先アプリケーションサーバ145を固定するクッキーを応答に付与する。
ステップS1114では、中継装置930がロードバランサ140が生成したクッキーからアクセストークンに埋め込む情報を生成し、認可サーバ920に返す。
ステップS1116では、認可サーバ920がクライアント110にアクセストークンを返す。認可サーバ920は、例えば、アクセストークンデータ1300を生成する。図13は、アクセストークンデータ1300のデータ構造例を示す説明図である。アクセストークンデータ1300の末尾(図13の例では、「.」の右側)にロードバランサ140(ロードバランス処理モジュール1035)が設定したクッキーに含まれるサーバID(アプリケーションサーバ145の識別情報、図13の例では「S1」)を付与したものである。
ステップS1118では、クライアント110がアクセストークン(クッキーが埋め込まれたアクセストークン)を受け取る。
図12は、第2の実施の形態による処理例を示すフローチャートである。主に、APIアクセス処理例を示すものである。このAPIアクセス処理が行われるためには、アクセストークンの生成処理(図11の例に示すフローチャートの処理)が行われている必要がある。
ステップS1202では、クライアント110が中継装置930にアクセストークン付きでAPI要求を発行する。ここでのアクセストークンには、図11の例に示すフローチャートの処理が行われたものであり、クッキー情報が埋め込まれている。
ステップS1204では、中継装置930がアクセストークンに埋め込まれた情報からクッキーを復元し、そのクッキーを要求に付与する。
ステップS1206では、ロードバランサ140がクッキーに基づきアプリケーションサーバ145を決定し、要求を転送する。
ステップS1208では、アプリケーションサーバ145が要求に対し応答を返す。
ステップS1210では、ロードバランサ140が応答をそのまま転送する。
ステップS1212では、中継装置930が応答をそのまま転送する。
ステップS1214では、クライアント110が応答を受け取る。
<第3の実施の形態>
図14は、第3の実施の形態の構成例についての概念的なモジュール構成図である。第1の実施の形態(記録モード)と第2の実施の形態(埋め込みモード)とを組み合わせたものである。
第1の実施の形態では、第2の実施の形態による任意の要求を行う等のような余分の処理が少ないが、アクセストークンとクッキーの関連付けを保持するため、メモリ容量を必要とする。
第2の実施の形態では、アクセストークンへの情報の埋め込みに先立ち、どのアプリケーションサーバ145にリクエストを送るかを決定するために、いったん中継装置930からロードバランサ140へのなんらかのHTTPリクエストを送る必要がある。しかし、アクセストークンとクッキーの関連付けを保持する必要がないため、メモリ容量は不要である。
第3の実施の形態では、第1の実施の形態における記録装置135を利用して、クッキー情報をアクセストークンに埋め込む処理を行っている。
クライアント110は、認可サーバ1420、中継装置1430と接続されている。
認可サーバ1420は、クライアント110、中継装置1430と接続されている。認可サーバ1420は、認可サーバ920と同等の処理を行う。
中継装置1430は、記録装置135を有しており、クライアント110、認可サーバ1420、ロードバランサ140と接続されている。中継装置1430は、認可サーバ1420からユーザーに関する情報を受け付ける。
そして、要求を行ったユーザーに関する情報と、その要求に対してロードバランサ140から受け付けた応答に付与されたクッキーを対応付けて記録装置135に記憶させる制御を行う。例えば、記録装置135は、関連テーブル700を記憶する。
受け付けたユーザーに関する情報に類似するユーザーに関する情報を記録装置135から検索し、その検索されたユーザーに関する情報に対応するクッキーを認可サーバ1420に送信する。
ここでユーザーに関する情報として、そのユーザーを識別するための識別情報、そのユーザーが属しているグループを識別するための識別情報、そのユーザーの役割を示す情報、そのユーザーがアクセス可能なリソースを示す情報のいずれか1つ、又はこれらの組み合わせを利用するようにしてもよい。
例えば、第3の実施の形態の中継装置1430では、アクセストークンに含まれるユーザーIDを利用して、同じユーザーのクッキーを再利用する。前回と同じユーザーからの要求を同じアプリケーションサーバ145に割り振ることにより、そのユーザーの権限、属性、アクセスするリソース等が、そのアプリケーションサーバ145上でキャッシュ済みである可能性が高まり、性能を向上させることができる。
また、第3の実施の形態の中継装置1430は、アクセストークンに含まれるユーザーID情報から、そのユーザーが属するグループ又はそのユーザーに割り当てられているロール(役割、一般ユーザー、管理者等)を決定し、類似(同じ場合を含む)するグループ又はロールのユーザーが使用したアプリケーションサーバ145に要求を転送するようにクッキーを再利用するようにしてもよい。一般に、ユーザーの権限を確認するためには、そのユーザーの属するグループの保有している権限や、そのユーザーに割り当てられている権限を調べる必要がある。同じグループ又はロールからのアクセスを同じアプリケーションサーバ145に転送することにより、アプリケーションサーバ145上でグループ又はロールの権限、属性、アクセスするリソース等を、すでにそのアプリケーションサーバ145のメモリ上にロード済みである可能性が高まり、性能を向上させることができる。
また、第3の実施の形態の中継装置1430は、アクセストークンに含まれるスコープ情報から、類似するスコープ情報を有するユーザーが使用したアプリケーションサーバ145に要求を転送するようにクッキーを再利用するようにしてもよい。なお、スコープとはアクセス可能なリソースを宣言する識別子である。アクセスするリソースが、キャッシュ済みである可能性が高まり、性能を向上させることができる。
ロードバランサ140は、中継装置1430、アプリケーションサーバ1:145A、アプリケーションサーバ2:145B、アプリケーションサーバ3:145Cと接続されている。
各アプリケーションサーバ145は、ロードバランサ140と接続されている。
図15は、第3の実施の形態の構成例についての概念的なモジュール構成図である。図14の例に示した第3の実施の形態とは、異なるモジュール構成にしたものである。図15の例に示したロードバランサ1530は、図14の例に示した中継装置1430とロードバランサ140を組み合わせたものであり、両者の機能を有している。そして、ロードバランサ140の機能をロードバランス処理モジュール1532が有している。
クライアント110は、認可サーバ1420、ロードバランサ1530と接続されている。
認可サーバ1420は、クライアント110、ロードバランサ1530と接続されている。
ロードバランサ1530は、ロードバランス処理モジュール1532、記録装置135を有しており、クライアント110、認可サーバ1420、アプリケーションサーバ1:145A、アプリケーションサーバ2:145B、アプリケーションサーバ3:145Cと接続されている。
各アプリケーションサーバ145は、ロードバランサ1530と接続されている。
図16は、第3の実施の形態による処理例を示すフローチャートである。記録装置135内の類似するユーザーのクッキーを利用する処理例を示すものである。
ステップS1602では、クライアント110が認可サーバ1420にアクセストークンを要求する。
ステップS1604では、認可サーバ1420は中継装置1430にユーザーIDを渡し、アクセストークンに埋め込む追加情報を要求する。
ステップS1606では、中継装置1430はユーザーID、グループID、ロールIDで検索して類似性の高いユーザーに関連付けられたクッキーを記録装置135から検索し、あれば認可サーバ1420に返す。
ステップS1608では、ロードバランサ140がアプリケーションサーバ145の1つを決定し、要求を転送する。なお、ステップS1608の処理は、ステップS1606で類似性の高いユーザーに関連付けられたクッキーが記録装置135にはない場合に行うようにしてもよい。そして、図11の例に示したフローチャート内のステップS1106の処理を行った後、ステップS1608の処理を行い、ステップS1110からステップS1114までの処理を行うようにしてもよい。
ステップS1610では、認可サーバ1420がクライアント110にアクセストークンを返す。
ステップS1612では、クライアント110がアクセストークンを受け取る。
この後、図12の例に示すフローチャートにしたがった処理を行う。
図17を参照して、本実施の形態の情報処理装置(クライアント110、認可サーバ120、中継装置130、ロードバランサ140、アプリケーションサーバ145)のハードウェア構成例について説明する。図17に示す構成は、例えばパーソナルコンピュータ(PC)等によって構成されるものであり、スキャナ等のデータ読み取り部1717と、プリンタ等のデータ出力部1718を備えたハードウェア構成例を示している。
CPU(Central Processing Unit)1701は、前述の実施の形態において説明した各種のモジュール、すなわち、クライアント110、認可サーバ120、中継装置130、ロードバランサ140、アプリケーションサーバ145、ロードバランサ230、ロードバランス処理モジュール235、認可サーバ920、中継装置930、ロードバランサ1030、ロードバランス処理モジュール1035、認可サーバ1420、中継装置1430、ロードバランサ1530、ロードバランス処理モジュール1532等の各装置又はモジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
ROM(Read Only Memory)1702は、CPU1701が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1703は、CPU1701の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバス等から構成されるホストバス1704により相互に接続されている。
ホストバス1704は、ブリッジ1705を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス1706に接続されている。
キーボード1708、マウス等のポインティングデバイス1709は、操作者により操作されるデバイスである。ディスプレイ1710は、液晶表示装置又はCRT(Cathode Ray Tube)等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス1709とディスプレイ1710の両方の機能を備えているタッチスクリーン等であってもよい。
HDD(Hard Disk Drive)1711は、ハードディスク(フラッシュメモリ等であってもよい)を内蔵し、ハードディスクを駆動し、CPU1701によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、ハードディスクは、記録装置135等としての機能を実現させる。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
ドライブ1712は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1713に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1707、外部バス1706、ブリッジ1705、及びホストバス1704を介して接続されているRAM1703に供給する。なお、リムーバブル記録媒体1713も、データ記録領域として利用可能である。
接続ポート1714は、外部接続機器1715を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1714は、インタフェース1707、及び外部バス1706、ブリッジ1705、ホストバス1704等を介してCPU1701等に接続されている。通信部1716は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部1717は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1718は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
なお、図17に示す情報処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図17に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図17に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
前述の実施の形態においては、中継装置130とロードバランサ140を組み合わせる例を示したが、中継装置130と認可サーバ120を組み合わせてもよいし、さらに、中継装置130と認可サーバ120とロードバランサ140を組み合わせてもよい。
また、第1の実施の形態と第2の実施の形態の組み合わせ例として、予め定められた条件を満たすまで第1の実施の形態による処理を行い、予め定められた条件を満たした後は、第2の実施の形態による処理を行うようにしてもよい。ここで、予め定められた条件として、例えば、記録装置135が使用できるメモリ容量が予め定められたメモリ容量(例えば、記録装置135に使用できる最大のメモリ容量)に達すること、第1の実施の形態による処理期間が予め定められた期間に達すること等としてもよい。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
110…クライアント
120…認可サーバ
130…中継装置
135…記録装置
140…ロードバランサ
145…アプリケーションサーバ
230…ロードバランサ
235…ロードバランス処理モジュール
390…通信回線
920…認可サーバ
930…中継装置
1030…ロードバランサ
1035…ロードバランス処理モジュール
1420…認可サーバ
1430…中継装置
1530…ロードバランサ
1532…ロードバランス処理モジュール

Claims (7)

  1. 認可サーバから第1の情報を受け付ける受付手段と、
    ロードバランサ手段に要求を送信する送信手段と、
    前記ロードバランサ手段から前記要求に対する応答に付与された第2の情報を受け付ける第2の受付手段と、
    前記第2の情報を前記認可サーバに送信する第2の送信手段
    を有し、
    前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、
    前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、
    情報処理装置。
  2. クライアントから受け付けた要求に付与された第1の情報から前記第2の情報を抽出し、該要求に付与する付与手段と、
    前記要求と前記第1の情報と前記第2の情報をロードバランサ手段に送信する第3の送信手段
    をさらに有する請求項に記載の情報処理装置。
  3. 認可サーバからユーザーに関する情報を受け付ける受付手段と、
    要求を行ったユーザーに関する情報と、該要求に対してロードバランサ手段から受け付けた応答に付与された第2の情報を対応付けて記憶装置に記憶させる制御を行う記憶制御手段と、
    前記受付手段によって受け付けられたユーザーに関する情報に類似するユーザーに関する情報を前記記憶装置から検索し、該検索されたユーザーに関する情報に対応する第2の情報を前記認可サーバに送信する送信手段
    を有し、
    前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、
    前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、
    情報処理装置。
  4. 前記ユーザーに関する情報として、該ユーザーを識別するための識別情報、該ユーザーが属しているグループを識別するための識別情報、該ユーザーの役割を示す情報、該ユーザーがアクセス可能なリソースを示す情報のいずれか1つ、又はこれらの組み合わせを利用する、
    請求項に記載の情報処理装置。
  5. 前記第1の情報として、クライアントが認可サーバから取得するアクセストークンを利用し、
    前記第2の情報として、前記ロードバランサ手段が発行したクッキーを利用し、
    前記認可サーバは、アクセストークンを生成し、本情報処理装置に送信する、
    請求項1又は2に記載の情報処理装置。
  6. コンピュータを、
    認可サーバから第1の情報を受け付ける受付手段と、
    ロードバランサ手段に要求を送信する送信手段と、
    前記ロードバランサ手段から前記要求に対する応答に付与された第2の情報を受け付ける第2の受付手段と、
    前記第2の情報を前記認可サーバに送信する第2の送信手段
    として機能させ
    前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、
    前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、
    情報処理プログラム。
  7. コンピュータを、
    認可サーバからユーザーに関する情報を受け付ける受付手段と、
    要求を行ったユーザーに関する情報と、該要求に対してロードバランサ手段から受け付けた応答に付与された第2の情報を対応付けて記憶装置に記憶させる制御を行う記憶制御手段と、
    前記受付手段によって受け付けられたユーザーに関する情報に類似するユーザーに関する情報を前記記憶装置から検索し、該検索されたユーザーに関する情報に対応する第2の情報を前記認可サーバに送信する送信手段
    として機能させ
    前記第1の情報は、クライアントから受け付けた要求に付与された情報であって、アクセストークン又は同じクライアントであることを保証できる機能を有する情報であり、
    前記第2の情報は、前記要求に対してロードバランサ手段から受け付けた応答に付与された情報であって、クッキー又はアプリケーションサーバを指定できる機能を有する情報である、
    情報処理プログラム。
JP2016000221A 2016-01-04 2016-01-04 情報処理装置及び情報処理プログラム Active JP6620558B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016000221A JP6620558B2 (ja) 2016-01-04 2016-01-04 情報処理装置及び情報処理プログラム
US15/208,885 US10154085B2 (en) 2016-01-04 2016-07-13 System, information processing apparatus, information processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016000221A JP6620558B2 (ja) 2016-01-04 2016-01-04 情報処理装置及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2017122957A JP2017122957A (ja) 2017-07-13
JP6620558B2 true JP6620558B2 (ja) 2019-12-18

Family

ID=59227032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016000221A Active JP6620558B2 (ja) 2016-01-04 2016-01-04 情報処理装置及び情報処理プログラム

Country Status (2)

Country Link
US (1) US10154085B2 (ja)
JP (1) JP6620558B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11316689B2 (en) * 2017-09-29 2022-04-26 Oracle International Corporation Trusted token relay infrastructure
JP7059559B2 (ja) * 2017-10-11 2022-04-26 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US7954144B1 (en) * 2000-01-18 2011-05-31 Novell, Inc. Brokering state information and identity among user agents, origin servers, and proxies

Also Published As

Publication number Publication date
JP2017122957A (ja) 2017-07-13
US10154085B2 (en) 2018-12-11
US20170195407A1 (en) 2017-07-06

Similar Documents

Publication Publication Date Title
JP6439370B2 (ja) 情報処理システム、情報処理方法、情報処理装置及びプログラム
JP6610082B2 (ja) 中継装置及び中継処理プログラム
JPWO2012081404A1 (ja) 認証システム、認証サーバ、サービス提供サーバ、認証方法、及びプログラム
JP6085924B2 (ja) 出力システム、携帯端末、情報処理方法及びプログラム
JP6569567B2 (ja) 情報処理装置、情報処理システム及び情報処理プログラム
JP6620558B2 (ja) 情報処理装置及び情報処理プログラム
JP6459812B2 (ja) 情報処理装置及び情報処理プログラム
JP7287497B2 (ja) 応答処理システム
US9569149B2 (en) Job processing system, job processing apparatus, and non-transitory computer readable medium
JPWO2021117101A5 (ja)
JP5949552B2 (ja) アクセス制御情報生成システム
JP2019061324A (ja) 情報処理装置及び情報処理プログラム
JP7087581B2 (ja) 連携支援システム、連携支援方法、および連携支援プログラム
JP2018018420A (ja) 情報処理装置及び情報処理プログラム
US20120324361A1 (en) Information processing apparatus, information management method and computer readable information recording medium
JP6019963B2 (ja) 出力装置、プログラム、システム及びログ送信方法
JP6164954B2 (ja) 認証サーバ、認証方法、およびプログラム
JP6588306B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6728706B2 (ja) 情報処理システム、情報処理装置及び情報処理プログラム
JP6729010B2 (ja) 情報処理システム及び情報処理プログラム
JP2024065588A (ja) 情報処理装置、情報処理方法、およびプログラム
JP6471644B2 (ja) 情報処理装置、情報処理システム及び情報処理プログラム
JP6733335B2 (ja) 情報処理システム、情報処理装置及び情報処理プログラム
JP6668835B2 (ja) 情報処理装置及び情報処理プログラム
JP6536217B2 (ja) 情報処理装置及び情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191010

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191105

R150 Certificate of patent or registration of utility model

Ref document number: 6620558

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350