(57)【要約】【課題】外部のサーバ装置において保持されているユーザの情報を、そのユーザの手間を少なくして、そのユーザが許可した第三者に取得させるための技術を提供する。【解決手段】中継サーバ３０は、ＩｄＰ４０からエンドユーザの情報を取得することが許可される管理ユーザの指定を、エンドユーザから第１クライアント装置１０を介して受け付ける。中継サーバ３０は、エンドユーザに対して発行されたトークンを、第１クライアント装置１０に代わってＩｄＰ４０から受信する処理を行い、受信したトークンを、指定を受け付けた管理ユーザを識別する管理ユーザＩＤと対応付けて記憶する。中継サーバ３０は、第２クライアント装置２０から管理ユーザＩＤを受信すると、この管理ユーザＩＤと対応付けて記憶したトークンを用いて、ＩｄＰ４０にエンドユーザの情報の送信を要求し、この要求に応じて送信されてきたエンドユーザの情報を取得する。【選択図】図１
2017049927.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに対して認証情報を発行するとともに、前記認証情報を含む要求に応じて前記ユーザの情報を応答する情報提供サーバから、第１ユーザの情報を取得することを許可する第２ユーザの指定を、第１クライアント装置を介して前記第１ユーザから受け付ける指定受付手段と、
前記第１ユーザに対して発行された前記認証情報を、前記第１クライアント装置に代わって前記情報提供サーバから受信する認証情報受信手段と、
前記情報提供サーバから受信した前記認証情報を、前記指定を受け付けた前記第２ユーザの識別情報と対応付けて記憶する第１記憶手段と、
第２クライアント装置から、前記第２ユーザの識別情報を受信する識別情報受信手段と、
前記第２クライアント装置から受信した前記第２ユーザの識別情報と対応付けて前記第１記憶手段により記憶された前記認証情報を用いて、前記情報提供サーバに、前記第１ユーザの情報の送信を要求する送信要求手段と、
前記送信の要求に応じて前記情報提供サーバから送信されてきた、前記第１ユーザの情報を受信するユーザ情報受信手段と
を備える中継サーバ。
【請求項２】
前記情報提供サーバから受信した前記第１ユーザの情報を、前記第１クライアント装置が利用するサーバプログラムに引き渡す引き渡し手段
を備えることを特徴とする請求項１に記載の中継サーバ。
【請求項３】
前記情報提供サーバから受信した前記認証情報を、前記第１ユーザの識別情報と対応付けて記憶する第２記憶手段と、
前記第１ユーザの識別情報を含む前記認証情報を用いた処理の実行要求を、前記第１クライアント装置から受け付ける実行要求受付手段と、
前記実行要求に含まれている前記第１ユーザの識別情報と対応付けて前記第２記憶手段により記憶された前記認証情報を用いて、前記処理を実行する処理手段と
を備えることを特徴とする請求項１又は請求項２に記載の中継サーバ。
【請求項４】
前記実行要求は、前記認証情報を無効化する処理の要求である
ことを特徴とする請求項３に記載の中継サーバ。
【請求項５】
コンピュータに、
ユーザに対して認証情報を発行するとともに、前記認証情報を含む要求に応じて前記ユーザの情報を応答する情報提供サーバから、第１ユーザの情報を取得することを許可する第２ユーザの指定を、第１クライアント装置を介して前記第１ユーザから受け付けるステップと、
前記第１ユーザに対して発行された前記認証情報を、前記第１クライアント装置に代わって前記情報提供サーバから受信するステップと、
前記情報提供サーバから受信した前記認証情報を、前記指定を受け付けた前記第２ユーザの識別情報と対応付けて記憶するステップと、
第２クライアント装置から、前記第２ユーザの識別情報を受信するステップと、
前記第２クライアント装置から受信した前記第２ユーザの識別情報と対応付けて記憶した前記認証情報を用いて、前記情報提供サーバに、前記第１ユーザの情報の送信を要求するステップと、
前記送信の要求に応じて前記情報提供サーバから送信されてきた、前記第１ユーザの情報を受信するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継サーバ及びプログラムに関する。
【背景技術】
【０００２】
製造業においては、部品の設計を製品開発元の企業が行い、その部品の製造を他企業に委託する委託開発が広く行われている。このような場合、複数の企業に跨って情報を共有するシステムを構築することで、作業の効率化が図られている。このシステムにおいては、複数の企業の各企業で利用されているユーザの情報（例えば、ユーザアカウント）を、システムに登録する必要がある。しかしながら、他企業で利用されているユーザの情報を登録する場合、情報の漏えい等のセキュティ上のリスクに特に注意しなければならない。また、ユーザの情報に個人情報が含まれる場合には、システムへの登録時に、そのユーザ自身の承諾が必要な場合がある。
【０００３】
非特許文献１に記載されているOpenID Connect Core 1.0 incorporating errata set 1（以下「OpenID Connect」という。）は、アイデンティティ・プロバイダ（以下「ＩｄＰ」という。）によるユーザ認証の結果を、情報の共有のためのウェブアプリケーションに利用することで、このウェブアプリケーションへのアクセスを可能にしている。OpenID Connectを利用すれば、例えば、或る企業に所属するユーザが自社に設置されているＩｄＰによって認証されると、その認証によって発行されたトークンをウェブアプリケーションに提示すればよい。
【０００４】
また、特許文献１には、端末の認証情報を保持する中継サーバをネットワーク上に配置しておき、中継サーバに保持された認証情報を利用することで、端末からウェブサーバへのアクセス要求の度に端末に認証情報を入力する手間を省くことが記載されている。特許文献２には、クライアントのセキュリティトークンを保持するプロキシサービスをネットワーク上に配置しておき、このプロキシサービスが、セキュリティトークンをセキュリティトークンサービスに提示することで、クライアントによるサービスの利用を可能にすることが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３８０６０号公報
【特許文献２】特開２００５−６２５５６号公報
【非特許文献】
【０００６】
【非特許文献１】OpenID Connect Core 1.0 incorporating errata set 1、［online］、［平成２７年８月２７日検索］、インターネット（URL: http://openid.net/specs/openid-connect-core-1_0.html）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、OpenID Connectでは、ＩｄＰに保持されているユーザの情報をウェブアプリケーションが取得するために、そのユーザ自身が、ＩｄＰ、及びウェブアプリケーションを実行するシステムの両方にアクセスしてその取得を許可するための操作を行わなければならない。また、OpenID Connectでは、ウェブアプリケーションに引き渡されたユーザの情報を、システム管理者等の第三者が参照することが想定されておらず、システムの管理業務の妨げとなることがあった。特許文献１，２に記載の技術でも、ウェブアプリケーションに引き渡されたユーザの情報を、そのユーザでない第三者が参照することは想定されていない。
そこで、本発明の目的は、外部のサーバ装置に保持されているユーザの情報を、そのユーザの手間を少なくしつつ、そのユーザが許可した第三者に取得させるための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の請求項１に係る中継サーバは、ユーザに対して認証情報を発行するとともに、前記認証情報を含む要求に応じて前記ユーザの情報を応答する情報提供サーバから、第１ユーザの情報を取得することを許可する第２ユーザの指定を、第１クライアント装置を介して前記第１ユーザから受け付ける指定受付手段と、前記第１ユーザに対して発行された前記認証情報を、前記第１クライアント装置に代わって前記情報提供サーバから受信する認証情報受信手段と、前記情報提供サーバから受信した前記認証情報を、前記指定を受け付けた前記第２ユーザの識別情報と対応付けて記憶する第１記憶手段と、第２クライアント装置から、前記第２ユーザの識別情報を受信する識別情報受信手段と、前記第２クライアント装置から受信した前記第２ユーザの識別情報と対応付けて前記第１記憶手段により記憶された前記認証情報を用いて、前記情報提供サーバに、前記第１ユーザの情報の送信を要求する送信要求手段と、前記送信の要求に応じて前記情報提供サーバから送信されてきた、前記第１ユーザの情報を受信するユーザ情報受信手段とを備える。
【０００９】
本発明の請求項２に係る中継サーバは、請求項１に係る構成において、前記情報提供サーバから受信した前記第１ユーザの情報を、前記第１クライアント装置が利用するサーバプログラムに引き渡す引き渡し手段を備えることを特徴とする。
【００１０】
本発明の請求項３に係る中継サーバは、請求項１又は請求項２に係る構成において、前記情報提供サーバから受信した前記認証情報を、前記第１ユーザの識別情報と対応付けて記憶する第２記憶手段と、前記第１ユーザの識別情報を含む前記認証情報を用いた処理の実行要求を、前記第１クライアント装置から受け付ける実行要求受付手段と、前記実行要求に含まれている前記第１ユーザの識別情報と対応付けて前記第２記憶手段により記憶された前記認証情報を用いて、前記処理を実行する処理手段とを備えることを特徴とする。
【００１１】
本発明の請求項４に係る中継サーバは、請求項３に係る構成において、前記実行要求は、前記認証情報を無効化する処理の要求であることを特徴とする。
【００１２】
本発明の請求項５に係るプログラムは、コンピュータに、ユーザに対して認証情報を発行するとともに、前記認証情報を含む要求に応じて前記ユーザの情報を応答する情報提供サーバから、第１ユーザの情報を取得することを許可する第２ユーザの指定を、第１クライアント装置を介して前記第１ユーザから受け付けるステップと、前記第１ユーザに対して発行された前記認証情報を、前記第１クライアント装置に代わって前記情報提供サーバから受信するステップと、前記情報提供サーバから受信した前記認証情報を、前記指定を受け付けた前記第２ユーザの識別情報と対応付けて記憶するステップと、第２クライアント装置から、前記第２ユーザの識別情報を受信するステップと、前記第２クライアント装置から受信した前記第２ユーザの識別情報と対応付けて記憶した前記認証情報を用いて、前記情報提供サーバに、前記第１ユーザの情報の送信を要求するステップと、前記送信の要求に応じて前記情報提供サーバから送信されてきた、前記第１ユーザの情報を受信するステップとを実行させるためのプログラムである。
【発明の効果】
【００１３】
請求項１，５に係る発明によれば、第１ユーザによってそのユーザの情報を取得することが許可された第２ユーザの識別情報を受信した場合に、第１ユーザのクライアント装置に代わって情報提供サーバから受信しておいた認証情報を用いて、情報提供サーバに第１ユーザの情報の送信を要求する構成を有しない場合に比べて、外部のサーバ装置に保持されているユーザの情報を、そのユーザの手間を少なくしつつ、そのユーザが許可した第三者に取得させるための技術を提供することができる。
請求項２に係る発明によれば、情報提供サーバ及びサーバプログラムを実行するシステムの両方にアクセスして、自身の情報の引き渡しを許可するための操作を第１ユーザが行わなくとも、そのサーバプログラムに第１ユーザの情報を引き渡すことができる。
請求項３に係る発明によれば、第１ユーザに対して発行された認証情報を用いた処理を、第１ユーザのクライアント装置からの要求に応じて実行することができる。
請求項４に係る発明によれば、第１ユーザからの求めに応じて認証情報を無効化することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る業務管理システムの全体構成を示す図。
【図２】同実施形態に係る中継サーバの機能構成を示すブロック図。
【図３】同実施形態に係る中継サーバのハードウェア構成を示すブロック図。
【図４】同実施形態に係る中継サーバが記憶するテーブルの説明図。
【図５】同実施形態に係るトークン移譲処理を示すシーケンスチャート。
【図６】同実施形態に係る許可ユーザ指定画面の一例を示す図。
【図７】同実施形態に係るトークン移譲処理の実行によるテーブルの更新の説明図。
【図８】同実施形態に係るトークン移譲処理の実行によるテーブルの更新の説明図。
【図９】同実施形態に係るトークン移譲処理の実行によるテーブルの更新の説明図。
【図１０】同実施形態に係るユーザ情報取得処理を示すシーケンスチャート。
【図１１】同実施形態に係るトークン無効化処理を示すシーケンスチャート。
【発明を実施するための形態】
【００１５】
［実施形態］
図１は、本発明の一実施形態に係る業務管理システム１の全体構成を示す図である。業務管理システム１は、文書管理サーバ５０により管理されている文書（例えば、部品等の製造物の設計図）を参照しながら、複数の企業の各企業に所属する複数のユーザが協働して業務を行うためのシステムである。業務管理システム１は、複数の第１クライアント装置１０と、第２クライアント装置２０と、中継サーバ３０と、ＩｄＰ４０と、文書管理サーバ５０とを備える。業務管理システム１内の各装置は、有線又は無線により通信回線Ｎと接続する。通信回線Ｎは、例えばインターネット等の公衆の通信回線を含むが、具体的な回線の種類は問わない。
【００１６】
第１クライアント装置１０は、文書管理サーバ５０にアクセスして、文書管理サーバ５０で管理されている文書を参照する。第１クライアント装置１０のユーザは、この文書を参照して作業を行う。第１クライアント装置１０のユーザは、本発明の第１ユーザの一例で、以下では「エンドユーザ」という。図１には、複数の第１クライアント装置１０のうち、エンドユーザＵ１Ａが使用する第１クライアント装置１０Ａと、エンドユーザＵ１Ｂが使用する第１クライアント装置１０Ｂとが示されている。エンドユーザＵ１Ａ及びＵ１Ｂは、例えば、それぞれ異なる企業に所属するユーザである。
【００１７】
第２クライアント装置２０は、文書管理サーバ５０にアクセスして、文書管理サーバ５０で管理されている情報を参照する。第２クライアント装置２０のユーザは、本発明の第２ユーザの一例で、以下では「管理ユーザ」という。管理ユーザＵ２は、第２クライアント装置２０を使用して、エンドユーザの情報の管理を含む業務に関する種々の管理業務を行う。
【００１８】
第１クライアント装置１０及び第２クライアント装置２０は、クライアントアプリケーションとしてのウェブブラウザを実行して、中継サーバ３０、ＩｄＰ４０及び文書管理サーバ５０から送信されてきたウェブページを表示する。図１には、第１クライアント装置１０及び第２クライアント装置２０は、それぞれノート型のパーソナルコンピュータで示されているが、例えばＣＰＵ（Central Processing Unit）を含む演算処理装置、記憶部、操作部、表示部等を備えた汎用のコンピュータ装置と同等の構成を備えていればよい。第１クライアント装置１０及び第２クライアント装置２０は、例えば、タブレット型コンピュータやデスクトップ型コンピュータ等であってもよい。
【００１９】
中継サーバ３０は、第１クライアント装置１０及び第２クライアント装置２０の各々と、ＩｄＰ４０との間で行われる通信を中継するサーバ装置（プロキシサーバともいう。）である。中継サーバ３０は、第１クライアント装置１０及び第２クライアント装置２０に代わってＩｄＰ４０にアクセスする。
【００２０】
ＩｄＰ４０は、本発明の情報提供サーバの一例で、OpenID Connectの仕様に準拠したアイデンティティ・プロバイダである。ＩｄＰ４０の機能として、主に以下の２つの機能がある。
第１に、ＩｄＰ４０は、エンドユーザに対してトークン（デジタルトークン）を発行する。トークンは、本発明の認証情報の一例で、エンドユーザの認証に用いられる。トークンは、本実施形態では、ＡＰＩ（Application Programming Interface）へのアクセスに用いられる。トークンは、本実施形態ではランダムの文字列であるが、ＯＡｕｔｈトークン等が用いられてもよい。
【００２１】
第２に、ＩｄＰ４０は、トークンを含む要求に応じて、そのトークンが発行されたユーザに関するユーザ情報を応答（提供）する。複数のエンドユーザのユーザ情報は、ユーザ情報ＤＢ（Data Base）４１に保持（蓄積）されている。ユーザ情報は、例えばＩＤ（社員番号）、氏名、所属企業、所属部署等のユーザの属性を示す情報（例えば個人情報）や、メールアドレスや電話番号等のそのユーザに付随する情報を含む。ユーザ情報は、例えばユーザアカウントの管理に用いられる。
【００２２】
文書管理サーバ５０は、第１クライアント装置１０によって利用されるサーバプログラムとして、ウェブアプリケーション５０１を実行する。ウェブアプリケーション５０１は、文書管理サーバ５０にユーザ情報が登録されたエンドユーザを対象としてウェブアプリケーション５０１の機能の利用を許可する。
なお、業務管理システム１では、第２クライアント装置２０（管理ユーザ）が複数存在してもよい。例えば、業務管理システム１が、複数の業務を管理する場合には、その業務毎に管理ユーザが存在する場合がある。
【００２３】
図２は、中継サーバ３０の機能構成を示すブロック図である。
許可ユーザ指定画面送信部３０１は、許可ユーザ指定画面を第１クライアント装置１０へ送信する、画面送信手段の一例である。許可ユーザ指定画面は、許可ユーザを指定するための画面である。許可ユーザとは、ＩｄＰ４０からエンドユーザのユーザ情報を取得することが許可されたユーザをいう。許可ユーザは、管理ユーザの中から選択される。
【００２４】
許可ユーザ指定受付部３０２は、許可ユーザの指定を第１クライアント装置１０を介してエンドユーザから受け付ける、指定受付手段の一例である。第１クライアント装置１０は、ウェブブラウザを用いて許可ユーザ指定画面を表示し、また、許可ユーザ指定画面を用いて指定された許可ユーザの情報を中継サーバ３０へ送信する。
【００２５】
トークン受信部３０３は、ＩｄＰ４０によりエンドユーザに対して発行されたトークンを、このエンドユーザが使用する第１クライアント装置１０に代わってＩｄＰ４０から受信する、認証情報受信手段の一例である。トークン受信部３０３は、第１クライアント装置１０から中継サーバ３０にトークンを移譲するための通信を、第１クライアント装置１０及びＩｄＰ４０との各々と行う。
【００２６】
トークン管理情報記憶部３０４は、トークン受信部３０３がＩｄＰ４０から受信したトークンを、許可ユーザ指定受付部３０２が指定を受け付けた管理ユーザの識別情報である管理ユーザＩＤと対応付けて記憶する、第１記憶手段の一例である。
【００２７】
トークン特定情報記憶部３０５は、トークン受信部３０３がＩｄＰ４０から受信したトークンを、そのトークンが発行されたエンドユーザの識別情報であるエンドユーザＩＤと対応付けて記憶する、第２記憶手段の一例である。
【００２８】
管理ユーザＩＤ受信部３０６は、第２クライアント装置２０から管理ユーザＩＤを受信する、識別情報受信手段の一例である。第２クライアント装置２０は、ユーザ情報の取得を中継サーバ３０に要求する場合に、管理ユーザＩＤを中継サーバ３０へ送信する。第２クライアント装置２０は、ウェブアプリケーション５０１の機能により、管理ユーザＩＤを受信しこれを中継サーバ３０へ送信（転送）する。
【００２９】
送信要求部３０７は、管理ユーザＩＤ受信部３０６が第２クライアント装置２０から受信した管理ユーザＩＤと対応付けてトークン管理情報記憶部３０４により記憶されたトークン用いて、ＩｄＰ４０にユーザ情報の送信を要求する、送信要求手段の一例である。
【００３０】
ユーザ情報受信部３０８は、送信要求部３０７による送信の要求に応じてＩｄＰ４０から送信されてきたユーザ情報を受信する、ユーザ情報受信手段の一例である。
【００３１】
引き渡し部３０９は、ユーザ情報受信部３０８が受信したユーザ情報を、ウェブアプリケーション５０１に引き渡す、引き渡し手段の一例である。ウェブアプリケーション５０１へのユーザ情報の引き渡しにより、ウェブアプリケーション５０１は、そのユーザ情報のエンドユーザを対象とした処理を実行する。
【００３２】
実行要求受付部３１０は、エンドユーザＩＤを含むトークンを用いた処理の実行要求を、第１クライアント装置１０から受け付ける、実行要求受付手段の一例である。第２クライアント装置２０は、ウェブブラウザの機能により実行要求を中継サーバ３０へ送信する。
【００３３】
トークン処理部３１１は、実行要求受付部３１０が受け付けた実行要求に含まれているエンドユーザＩＤと対応付けてトークン特定情報記憶部３０５により記憶されたトークンを用いて、要求された処理を実行する、処理手段の一例である。この処理は、本実施形態では、トークンを無効化する処理である。トークンの無効化とは、このトークンを利用不可の状態にすることをいう。
【００３４】
図３は、中継サーバ３０のハードウェア構成を示すブロック図である。図３に示すように、中継サーバ３０は、制御部３１と、通信部３２と、記憶部３３とを備える。制御部３１は、演算処理手段としてのＣＰＵ、ＲＯＭ（Read Only Memory）、及びＲＡＭ（Random Access Memory）を含むプロセッサを備える。ＣＰＵは、ＲＯＭ又は記憶部３３に記憶されたプログラムを、ＲＡＭに読み出して実行することにより、中継サーバ３０の各部を制御する。
【００３５】
通信部３２は、例えばモデムを備え、通信回線Ｎに接続して通信する。通信部３２は、通信回線Ｎを介して、第１クライアント装置１０、第２クライアント装置２０、ＩｄＰ４０、及び文書管理サーバ５０とデータの送受信を行う。記憶部３３は、例えばハードディスク装置を備え、制御部３１により実行されるプログラムのほか、セッション管理テーブル３３１、トークン管理テーブル３３２、及びトークン特定テーブル３３３を記憶する。これらの各テーブルは、制御部３１によって更新される。
【００３６】
図４は、記憶部３３が記憶するテーブルを説明する図である。
セッション管理テーブル３３１は、中継サーバ３０と第１クライアント装置１０との間に確立したセッションを管理するテーブルである。セッション管理テーブル３３１では、セッションを識別する識別情報である「セッションＩＤ」と、許可ユーザとして指定された管理ユーザを識別する「管理ユーザＩＤ」と、ＩｄＰ４０で発行される「コード」とを対応付けたテーブルである。コードは、トークンに一意に対応付けられる文字列である。
【００３７】
トークン管理テーブル３３２は、許可ユーザとして指定された管理ユーザを識別する「管理ユーザＩＤ」と、ユーザ情報を取得するために必要な「トークン」とを対応付けたテーブルである。
【００３８】
トークン特定テーブル３３３は、トークンが発行されたエンドユーザを識別する「エンドユーザＩＤ」と、そのエンドユーザに対して発行された「トークン」とを対応付けたテーブルである。
【００３９】
図２で説明した許可ユーザ指定画面送信部３０１、許可ユーザ指定受付部３０２、トークン受信部３０３、管理ユーザＩＤ受信部３０６、送信要求部３０７、ユーザ情報受信部３０８、引き渡し部３０９、及び実行要求受付部３１０の各機能は、制御部３１及び通信部３２の協働により実現される。トークン管理情報記憶部３０４、及びトークン特定情報記憶部３０５の各機能は、制御部３１及び記憶部３３の協働により実現される。トークン処理部３１１は、制御部３１により実現される。
【００４０】
次に、本実施形態の動作を説明する。
まず、第１クライアント装置１０から中継サーバ３０にトークンを移譲する処理である「トークン移譲処理」について説明する。図５は、トークン移譲処理を示すシーケンスチャートである。以下では、第１クライアント装置１０Ａの動作を例に挙げて説明する。
中継サーバ３０は、第１クライアント装置１０Ａからのアクセスを受け付けると（ステップＳ１）、許可ユーザ指定画面を、第１クライアント装置１０Ａへ送信する（ステップＳ２）。
【００４１】
図６は、許可ユーザ指定画面の一例を示す図である。図６に示す許可ユーザ指定画面Ｗは、許可ユーザを指定するためのプルダウンメニューＭが配置されたウェブページである。プルダウンメニューＭは、中継サーバ３０に予め登録された管理ユーザの中から、いずれかの管理ユーザを許可ユーザとして指定するためのメニューである。プルダウンメニューＭには、選択中の管理ユーザを特定する文字列として、ここでは所属企業、部門、及び氏名が表示されている。エンドユーザＵ１Ａは、第１クライアント装置１０Ａを操作して、許可ユーザを指定する操作を行う。
なお、管理ユーザを特定する文字列は、その管理ユーザの管理ユーザＩＤと対応付けて予め中継サーバ３０に登録されている。
【００４２】
図５に戻り、中継サーバ３０は、許可ユーザ指定画面の操作に応じて、許可ユーザの指定を受け付ける（ステップＳ３）。そして、中継サーバ３０は、指定された許可ユーザに応じて、セッション管理テーブル３３１を更新する（ステップＳ４）。ここでは、管理ユーザＵ２が、許可ユーザとして指定された場合を考える。この場合、中継サーバ３０は、図７の上段に示すように、セッションＩＤ「ＳＥＳＳＩＯＮ＿Ａ」と、許可ユーザである管理ユーザＵ２の管理ユーザＩＤ「ＵＳＥＲ２０」とを対応付けて、セッション管理テーブル３３１に格納する。セッションＩＤは、他のセッションＩＤと重複しないように発行された、例えばランダムの文字列である。
なお、この時点では、セッションＩＤ「ＳＥＳＳＩＯＮ＿Ａ」に対応付けられた「コード」のフィールドは、ブランクである。
【００４３】
次に、中継サーバ３０は、ＨＴＴＰ（Hypertext Transfer Protocol）プロトコルに従って、第１クライアント装置１０Ａに表示されるウェブページを遷移させるためのリダイレクトを行う（ステップＳ５）。このリダイレクトのために、中継サーバ３０は、ＩｄＰ４０に格納された遷移先のウェブページを特定するＵＲＬ（Uniform Resource Locator）を送信する。第１クライアント装置１０Ａは、このＵＲＬに従って、ＩｄＰ４０にアクセスする。
【００４４】
第１クライアント装置１０Ａは、リダイレクト後に表示したウェブページを介して、ＩｄＰ４０に対して、認証及びユーザ情報の取得認可の処理を行う（ステップＳ６）。ステップＳ６の認証は、ＩｄＰ４０にログインするための認証で、例えば、エンドユーザＩＤとパスワードを用いて行われる。ステップＳ６のユーザ情報の取得認可は、エンドユーザＵ１Ａのユーザ情報を、管理ユーザＵ２に取得させることを認可（許可）するための手続きである。この認可は、例えば、ウェブページに表示されたボタンの操作により行われる。
【００４５】
次に、中継サーバ３０は、ＨＴＴＰプロトコルに従って、第１クライアント装置１０Ａに表示されるウェブページを遷移させるためのリダイレクトを行う（ステップＳ７）。このリダイレクトのために、ＩｄＰ４０は、中継サーバ３０に格納された遷移先のウェブページを特定するＵＲＬと、エンドユーザＵ１Ａに対して発行したコードとを送信する。このコードを、「ＣＯＤＥ＿Ａ」と表す。コードは、発行済みの他のコードと重複しないように発行された、例えばランダムの文字列である。このコードは、ＵＲＬの一部に含まれる方法で、第１クライアント装置１０Ａに送信されてもよい。第１クライアント装置１０Ａは、このＵＲＬを用いて中継サーバ３０にアクセスするとともに、受信したコード「ＣＯＤＥ＿Ａ」を、中継サーバ３０へ送信する。
【００４６】
中継サーバ３０は、第１クライアント装置１０Ａから受信したコードを、セッション管理テーブル３３１に追加する（ステップＳ８）。ここでは、中継サーバ３０は、図７の下段に示すように、ステップＳ４で格納したセッションＩＤ「ＳＥＳＳＩＯＮ＿Ａ」と、管理ユーザＩＤ「ＵＳＥＲ２０」とに対応付けて、コード「ＣＯＤＥ＿Ａ」を格納する。
【００４７】
次に、中継サーバ３０は、トークン発行要求をＩｄＰ４０へ送信する（ステップＳ９）。トークン発行要求は、ステップＳ８でセッション管理テーブル３３１に追加したコードを含み、このコードに対応付けられるトークンの発行の要求を示す。ＩｄＰ４０は、トークン発行要求に従ってトークンを発行して、これを中継サーバ３０へ送信（応答）する（ステップＳ１０）。このトークンは、エンドユーザＵ１Ａに対して発行されたトークンで、「ＴＯＫＥＮ＿Ａ」と表す。
【００４８】
次に、中継サーバ３０は、ＩｄＰ４０から受信したトークンに基づいて、トークン管理テーブル３３２を更新する（ステップＳ１１）。ここでは、中継サーバ３０は、受信したトークンを、許可ユーザとして指定された管理ユーザの管理ユーザＩＤと対応付けて、トークン管理テーブル３３２に格納する。これにより、トークン管理テーブル３３２では、図８の上段に示すように、管理ユーザＩＤ「ＵＳＥＲ２０」と、トークン「ＴＯＫＥＮ＿Ａ」とが対応付けられる。
【００４９】
次に、中継サーバ３０は、ＩｄＰ４０から受信したトークンに基づいて、トークン特定テーブル３３３を更新する（ステップＳ１２）。ここでは、中継サーバ３０は、受信したトークンを、このトークンが発行されたエンドユーザのエンドユーザＩＤと対応付けて、トークン特定テーブル３３３に格納する。これにより、トークン特定テーブル３３３では、図８の下段に示すように、エンドユーザＩＤ「ＵＳＥＲ１０Ａ」と、トークン「ＴＯＫＥＮ＿Ａ」とが対応付けられる。
【００５０】
以上が、トークン委譲処理の説明である。このトークン委譲処理により、中継サーバ３０が、第１クライアント装置１０Ａに代わって、エンドユーザＵ１Ａに対して発行されたトークンを受信したことになる。
【００５１】
第１クライアント装置１０Ｂから中継サーバ３０へのトークンを移譲する場合も、図５で説明したトークン委譲処理が行われることで、中継サーバ３０が、第１クライアント装置１０Ｂに代わって、エンドユーザＵ１Ｂに対して発行されたトークンを受信する。管理ユーザＩＤとして「ＵＳＥＲ２０」が指定されていた場合、トークン管理テーブル３３２では、図９の上段に示すように、管理ユーザＩＤ「ＵＳＥＲ２０」と、トークン「ＴＯＫＥＮ＿Ｂ」とが対応付けられる。トークン特定テーブル３３３では、図９の下段に示すように、エンドユーザＩＤ「ＵＳＥＲ１０Ｂ」と、トークン「ＴＯＫＥＮ＿Ｂ」とが対応付けられる。
【００５２】
次に、第２クライアント装置２０がＩｄＰ４０からユーザ情報を取得する処理である「ユーザ情報取得処理」について説明する。ユーザ情報取得処理の開始時点において、トークン管理テーブル３３２及びトークン特定テーブル３３３は、図９に示す状態である。
図１０は、ユーザ情報取得処理を示すシーケンスチャートである。
第２クライアント装置２０は、ユーザ情報の取得に係る操作が管理ユーザＵ２により行われると、この操作で指定された管理ユーザＩＤを含むユーザ情報取得要求を、文書管理サーバ５０へ送信する（ステップＳ２１）。管理ユーザＩＤは、「ＵＳＥＲ２０」に指定されているものとする。文書管理サーバ５０は、受信したユーザ情報取得要求を中継サーバ３０へ送信（転送）する（ステップＳ２２）。ステップＳ２２で送信されるユーザ情報取得要求は、ユーザ情報を取得するためのＡＰＩの実行要求を示す。
【００５３】
中継サーバ３０は、文書管理サーバ５０からユーザ情報取得要求を受信すると、トークン管理テーブル３３２に基づいて、受信したユーザ情報取得要求の変換処理を行う（ステップＳ２３）。ユーザ情報取得要求の変換処理は、管理ユーザＩＤを含むユーザ情報取得要求を、トークン管理テーブル３３２においてこの管理ユーザＩＤに対応付けられたトークンを含むユーザ情報取得要求に変換する処理である。この変換により、中継サーバ３０は、管理ユーザＩＤ「ＵＳＥＲ２０」と対応付けてトークン管理テーブル３３２に格納されたトークン「ＴＯＫＥＮ＿Ａ」を含むユーザ情報取得要求を得る。
なお、ＩｄＰ４０は、エンドユーザに対して発行されたトークンを含むユーザ情報取得要求に応答して、そのエンドユーザのユーザ情報を提供（応答）する仕様である。このため、ＩｄＰ４０の仕様に準拠したユーザ情報取得要求への変換が必要となる。
【００５４】
中継サーバ３０は、変換処理後のユーザ情報取得要求を、ＩｄＰ４０へ送信する（ステップＳ２４）。ＩｄＰ４０は、ユーザ情報取得要求に含まれるトークンによって特定されるエンドユーザのユーザ情報を、ユーザ情報ＤＢ４１から取得し、中継サーバ３０に応答する。中継サーバ３０は、ＩｄＰ４０から送信されてきたユーザ情報を受信する（ステップＳ２５）。ここでは、中継サーバ３０は、トークン「ＴＯＫＥＮ＿Ａ」が発行されたエンドユーザＵ１Ａのユーザ情報を取得する。
【００５５】
続いて、中継サーバ３０は、ステップＳ２３と同じ変換処理を行い、トークン「ＴＯＫＥＮ＿Ｂ」を含むユーザ情報取得要求を得る（ステップＳ２６）。そして、中継サーバ３０は、変換処理後のユーザ情報取得要求を、ＩｄＰ４０へ送信する（ステップＳ２７）。中継サーバ３０は、このユーザ情報取得要求に応じてＩｄＰ４０から送信されてきた、エンドユーザのユーザ情報を受信する（ステップＳ２８）。ここでは、中継サーバ３０は、トークン「ＴＯＫＥＮ＿Ｂ」が発行されたエンドユーザＵ１Ｂのユーザ情報を取得する。
このように、中継サーバ３０は、エンドユーザ毎にそのエンドユーザＩＤを含むユーザ情報取得要求に変換することで、ＩｄＰ４０からそのエンドユーザのユーザ情報を受信する。
【００５６】
中継サーバ３０は、管理ユーザＵ２に対して取得が許可されたユーザ情報を全て受信すると、受信した全てのユーザ情報を、文書管理サーバ５０へ送信する（ステップＳ２９）。このユーザ情報の送信により、ユーザ情報がウェブアプリケーション５０１に引き渡される。文書管理サーバ５０は、ウェブアプリケーション５０１に引き渡されたユーザ情報を用いて、ウェブアプリケーション５０１の処理を実行する。第２クライアント装置２０は、文書管理サーバ５０にアクセスすることで、文書管理サーバ５０に引き渡されたユーザ情報を参照する（ステップＳ３０）。
【００５７】
以上説明したように、エンドユーザは、ユーザ情報を取得させる管理ユーザを事前に指定する操作を行えば、自身のユーザ情報のウェブアプリケーション５０１への引き渡しが行われる。よって、エンドユーザは、ＩｄＰ４０に保持されているユーザ情報をウェブアプリケーション５０１に引き渡すために、ＩｄＰ４０及びウェブアプリケーション５０１の両方にアクセスしてその引き渡しを許可するための操作を行わなくてよい。管理ユーザＵ２は、第２クライアント装置２０を介して、ウェブアプリケーション５０１に引き渡されたユーザ情報を取り扱った管理業務を行う。また、中継サーバ３０を通信回線Ｎ上に設けたことで、OpenID Connectの仕様に準拠したＩｄＰ４０の構成を変更しなくてよい。
【００５８】
次に、エンドユーザからの指示に応じて、そのエンドユーザに対して発行されたトークンを無効化する処理である「トークン無効化処理」について説明する。以下では、第１クライアント装置１０Ａの動作を例に挙げて説明する。
【００５９】
図１１は、トークン無効化処理を示すシーケンスチャートである。
第１クライアント装置１０は、エンドユーザＵ１Ａによりトークンの無効化に係る操作が行われると、この操作で指定されたエンドユーザＩＤを含むトークン無効化要求を、文書管理サーバ５０へ送信する（ステップＳ３１）。エンドユーザＩＤは、ここでは「ＵＳＥＲ１０Ａ」に指定されているものとする。
【００６０】
中継サーバ３０は、第１クライアント装置１０からトークン無効化要求を受信すると、トークン特定テーブル３３３に基づいて、無効化の対象のトークンを特定する（ステップＳ３２）。具体的には、中継サーバ３０は、受信したトークン無効化要求に含まれているエンドユーザＩＤに対応付けてトークン特定テーブル３３３に格納されたトークンを特定する。ここでは、中継サーバ３０は、トークン「ＴＯＫＥＮ＿Ａ」を特定する。
【００６１】
次に、中継サーバ３０は、ステップＳ３２で特定したトークンを無効化する（ステップＳ３３）。具体的には、中継サーバ３０は、トークン管理テーブル３３２、及びトークン特定テーブル３３３に格納されたトークン（ここではトークン「ＴＯＫＥＮ＿Ａ」）を無効化する。トークンの無効化は、例えば、トークン（トークンが格納されたレコード）の削除、又は無効化フラグの付与により行われる。
このように、トークン特定テーブル３３３において、エンドユーザＩＤと、エンドユーザに発行されたトークンが対応付けられているので、エンドユーザの求めに応じたタイミングでトークンが無効化される。
【００６２】
［変形例］
本発明は、上述した実施形態と異なる形態で実施してもよい。また、以下に示す変形例は、各々を組み合わせてもよい。
エンドユーザからの指示に応じて実行される、そのエンドユーザに対して発行されたトークンを用いた処理は、「トークン無効化処理」に限られない。例えば、トークンの有効期限が設定されている場合に、その有効期限を変更（例えば延長）する処理が行われてもよい。中継サーバ３０は、取得したエンドユーザＩＤに対応付けてトークン特定テーブル３３３に格納されたトークンを特定することで、このトークンを用いた種々の処理を実行し得る。
【００６３】
上述した実施形態では、中継サーバ３０は、受信したユーザ情報をウェブアプリケーション５０１に引き渡していたが、引き渡し先はこれに限られない。例えば、中継サーバ３０は、第２クライアント装置２０で実行されるアプリケーションや、その他のアプリケーション（モバイルアプリケーション等）に引き渡してもよい。
【００６４】
上述した実施形態で説明した構成又は動作の一部が省略されてもよい。例えば、エンドユーザの指示に応じてトークンを用いた処理（例えばトークン無効化処理）が行われない場合には、トークン特定テーブル３３３が不要である。
また、OpenID Connect又はＩｄＰの仕様等の変化に応じて、装置間で送受信されるデータは変更されてよい。本発明は、認証情報を発行するとともに、その認証情報を含む要求に応じてユーザの情報を応答する情報提供サーバを備えたシステムに適用し得る。
本発明は、複数の企業の各企業に所属する複数のユーザが協働して業務を行うためのシステムへの適用に限られない。本発明は、認証されたユーザに対して、そのユーザに対して特定の機能の利用を許可するシステムに適用し得る。
【００６５】
上述した実施形態の中継サーバ３０の制御部３１が実現する機能は、複数のプログラムの組み合わせによって実現され、又は複数のハードウェア資源の連係によって実現され得る制御部３１の機能がプログラムを用いて実現される場合、このプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ（Hard Disk Drive）、ＦＤ（Flexible Disk））等）、光記録媒体（光ディスク等）、光磁気記録媒体、半導体メモリ等のコンピュータ読み取り可能な記録媒体に記憶した状態で提供されてもよいし、ネットワークを介して配信されてもよい。
【符号の説明】
【００６６】
１…業務管理システム、１０，１０Ａ，１０Ｂ…第１クライアント装置、２０…第２クライアント装置、３０…中継サーバ、３０１…許可ユーザ指定画面送信部、３０２…許可ユーザ指定受付部、３０３…トークン受信部、３０４…トークン管理情報記憶部、３０５…トークン特定情報記憶部、３０６…管理ユーザＩＤ受信部、３０７…送信要求部、３０８…ユーザ情報受信部、３０９…引き渡し部、３１０…実行要求受付部、３１１…トークン処理部、３１…制御部、３２…通信部、３３…記憶部、３３１…セッション管理テーブル、３３２…トークン管理テーブル、３３３…トークン特定テーブル、４０…ＩｄＰ、５０…文書管理サーバ、５０１…ウェブアプリケーション。
【図１】
2017049927.tif 000003
【図２】
2017049927.tif 000004
【図３】
2017049927.tif 000005
【図４】
2017049927.tif 000006
【図５】
2017049927.tif 000007
【図６】
2017049927.tif 000008
【図７】
2017049927.tif 000009
【図８】
2017049927.tif 000010
【図９】
2017049927.tif 000011
【図１０】
2017049927.tif 000012
【図１１】
2017049927.tif 000013