IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-28
(45)【発行日】2023-09-05
(54)【発明の名称】情報処理装置およびプログラム
(51)【国際特許分類】
   G06F 21/45 20130101AFI20230829BHJP
【FI】
G06F21/45
【請求項の数】 6
(21)【出願番号】P 2019174103
(22)【出願日】2019-09-25
(65)【公開番号】P2021051552
(43)【公開日】2021-04-01
【審査請求日】2022-08-31
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(74)【代理人】
【識別番号】110000039
【氏名又は名称】特許業務法人アイ・ピー・ウィン
(72)【発明者】
【氏名】小田島 広一
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特開2008-186338(JP,A)
【文献】特開2014-016697(JP,A)
【文献】特開2019-075006(JP,A)
【文献】特開2016-118863(JP,A)
【文献】米国特許第08978122(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31-21/46
(57)【特許請求の範囲】
【請求項1】
メモリとプロセッサを備え、
前記プロセッサは、
第1システムにおいて管理者権限を有する第1ユーザからの操作に基づいて、前記第1ユーザにより指定された第1識別子と対応づけられた仮認証情報を発行し、
第2システムを利用する第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた際に、発行した仮認証情報と提示された仮認証情報とが一致した場合、前記仮認証情報と対応付けられた前記第1識別子と前記第2ユーザが指定した第2識別子とを対応付ける、
情報処理装置。
【請求項2】
前記メモリは、前記仮認証情報と、前記第1ユーザにより指定された第1識別子とを対応付けて記憶し、
前記プロセッサは、前記第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた場合に、前記第2ユーザからの接続要求を前記第1システムにおけるログイン画面に転送し、
前記第2ユーザが前記第1システムにログインすることができた旨の情報が返信されてきた場合、前記メモリに記憶されている前記第1識別子と、ログイン中の前記第2ユーザが使用している第2識別子とを対応付ける請求項1記載の情報処理装置。
【請求項3】
前記メモリは、前記第2ユーザからの接続要求を前記第1システムにおけるログイン画面に転送する際に発行された確認情報を、前記仮認証情報と前記第1識別子に対応付けて記憶し、
前記プロセッサは、前記第1システムから返信されてきた、前記第2ユーザが前記第1システムにログインすることができた旨の情報に、前記メモリに記憶されている確認情報が含まれている場合に、前記メモリに記憶されている前記第1識別子と、ログイン中の前記第2ユーザが使用している第2識別子とを対応付ける請求項2記載の情報処理装置。
【請求項4】
前記仮認証情報は、有効期限が設定されている認証情報であり、
前記プロセッサは、前記第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた場合でも、現在の日時が当該仮認証情報の有効期限を過ぎている場合、前記第2ユーザからの前記第1システムとの連携要求を拒否する請求項1記載の情報処理装置。
【請求項5】
前記第1識別子が前記第1システムにおいて前記第1ユーザおよび前記第2ユーザが属するグループのグループ識別子であり、前記第2識別子が前記第2システムにおいて前記第1ユーザおよび前記第2ユーザが属するグループのグループ識別子である請求項1から4のいずれか記載の情報処理装置。
【請求項6】
第1システムにおいて管理者権限を有する第1ユーザからの操作に基づいて、前記第1ユーザにより指定された第1識別子と対応づけられた仮認証情報を発行するステップと、
第2システムを利用する第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた際に、発行した仮認証情報と提示された仮認証情報とが一致した場合、前記仮認証情報と対応付けられた前記第1識別子と前記第2ユーザが指定した第2識別子とを対応付けるステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【0002】
特許文献1には、第1サービスシステムにおいて認証したユーザのテナント情報を取得して第2サービスシステムにクライアント登録を要求し、第2サービスシステムにおいてその該要求に従うクライアント登録と、認証したユーザのグループ情報とを含む登録結果を第1サービスシステムに送り、第1サービスシステムにおいてそのグループ情報と、認証したユーザのテナント情報を対応付けて記憶し、第2サービスシステムにおいて登録クライアントからの認証要求に応じて認証したユーザのグループ情報を含むID情報を第1サービスシステムに送り、第1サービスシステムにおいてそのID情報が示すアカウントに対応するアカウントの存在を判定し、存在しない場合に新たにアカウントを生成するようにしたサービス提供システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2016-57737号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、2つの異なるシステムにおいて同一ユーザがそれぞれアカウントを登録している場合であって、そのユーザが2つのシステムのいずれかにおいて管理者権限を有していない場合であっても、2つの異なるシステムにおいて登録されている同一ユーザのアカウントどうしを対応付けることが可能な情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【0005】
[情報処理装置]
請求項1に係る本発明は、メモリとプロセッサを備え、
前記プロセッサは、
第1システムにおいて管理者権限を有する第1ユーザからの操作に基づいて、前記第1ユーザにより指定された第1識別子と対応づけられた仮認証情報を発行し、
第2システムを利用する第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた際に、発行した仮認証情報と提示された仮認証情報とが一致した場合、前記仮認証情報と対応付けられた前記第1識別子と前記第2ユーザが指定した第2識別子とを対応付ける情報処理装置である。
【0006】
請求項2に係る本発明は、前記メモリが、前記仮認証情報と、前記第1ユーザにより指定された第1識別子とを対応付けて記憶し、
前記プロセッサは、前記第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた場合に、前記第2ユーザからの接続要求を前記第1システムにおけるログイン画面に転送し、
前記第2ユーザが前記第1システムにログインすることができた旨の情報が返信されてきた場合、前記メモリに記憶されている前記第1識別子と、ログイン中の前記第2ユーザが使用している第2識別子とを対応付ける請求項1記載の情報処理装置である。
【0007】
請求項3に係る本発明は、前記メモリが、前記第2ユーザからの接続要求を前記第1システムにおけるログイン画面に転送する際に発行された確認情報を、前記仮認証情報と前記第1識別子に対応付けて記憶し、
前記プロセッサは、前記第1システムから返信されてきた、前記第2ユーザが前記第1システムにログインすることができた旨の情報に、前記メモリに記憶されている確認情報が含まれている場合に、前記メモリに記憶されている前記第1識別子と、ログイン中の前記第2ユーザが使用している第2識別子とを対応付ける請求項2記載の情報処理装置である。
【0008】
請求項4に係る本発明は、前記仮認証情報が、有効期限が設定されている認証情報であり、
前記プロセッサは、前記第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた場合でも、現在の日時が当該仮認証情報の有効期限を過ぎている場合、前記第2ユーザからの前記第1システムとの連携要求を拒否する請求項1記載の情報処理装置である。
【0009】
請求項5に係る本発明は、前記第1識別子が前記第1システムにおいて前記第1ユーザおよび前記第2ユーザが属するグループのグループ識別子であり、前記第2識別子が前記第2システムにおいて前記第1ユーザおよび前記第2ユーザが属するグループのグループ識別子である請求項1から4のいずれか記載の情報処理装置である。
【0010】
[プログラム]
請求項6に係る本発明は、第1システムにおいて管理者権限を有する第1ユーザからの操作に基づいて、前記第1ユーザにより指定された第1識別子と対応づけられた仮認証情報を発行するステップと、
第2システムを利用する第2ユーザが前記仮認証情報を提示して前記第1システムとの連携を要求してきた際に、発行した仮認証情報と提示された仮認証情報とが一致した場合、前記仮認証情報と対応付けられた前記第1識別子と前記第2ユーザが指定した第2識別子とを対応付けるステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【0011】
請求項1に係る本発明によれば、2つの異なるシステムにおいて同一ユーザがそれぞれアカウントを登録している場合であって、そのユーザが2つのシステムのいずれかにおいて管理者権限を有していない場合であっても、2つの異なるシステムにおいて登録されている同一ユーザのアカウントどうしを対応付けることが可能な情報処理装置を提供することができる。
【0012】
請求項2に係る本発明によれば、2つの異なるシステムにおいて同一ユーザがそれぞれアカウントを登録している場合であって、そのユーザが2つのシステムのいずれかにおいて管理者権限を有していない場合であっても、2つの異なるシステムにおいて登録されている同一ユーザのアカウントどうしを対応付けることが可能な情報処理装置を提供することができる。
【0013】
請求項3に係る本発明によれば、確認情報を用いずに第1アカウントと第2アカウントとの対応付けを行う場合と比較して、誤った第1アカウントを第2アカウントと対応付けてしまう可能性を低減することが可能な情報処理装置を提供することができる。
【0014】
請求項4に係る本発明によれば、仮認証情報に有効期限を設けない場合と比較して、第1アカウントと第2アカウントとの対応付けが不正に行われる可能性を低減することが可能な情報処理装置を提供することができる。
【0015】
請求項5に係る本発明によれば、2つの異なるシステムにおいて同一のグループユーザがそれぞれアカウントを登録している場合であって、そのグループユーザのうちの個人ユーザが2つのシステムのいずれかにおいて管理者権限を有していない場合であっても、2つの異なるシステムにおいて登録されている同一グループユーザのアカウントどうしを対応付けることが可能な情報処理装置を提供することができる。
【0016】
請求項6に係る本発明によれば、2つの異なるシステムにおいて同一ユーザがそれぞれアカウントを登録している場合であって、そのユーザが2つのシステムのいずれかにおいて管理者権限を有していない場合であっても、2つの異なるシステムにおいて登録されている同一ユーザのアカウントどうしを対応付けることが可能なプログラムを提供することができる。
【図面の簡単な説明】
【0017】
図1】本発明の一実施形態の情報処理システムのシステム構成を示す図である。
図2】Open ID Connectのシーケンス例を説明するための図である。
図3】サービス提供サーバ40に対して連携を許可するサービスのURLを登録する際の処理を説明するためのシーケンスチャートである。
図4】マルチテナント構成の一例を説明するための図である。
図5】2つのサービスがマルチテナント構成においてID連携を行うとした場合の問題点を説明するための図である。
図6】株式会社Aにおけるユーザ構成例を説明するための図である。
図7】ABCサービスとXYZサービスのそれぞれにおいて管理者が異なる様子を説明するための図である。
図8】本発明の一実施形態におけるサービス提供サーバ10のハードウェア構成を示すブロック図である。
図9】本発明の一実施形態におけるサービス提供サーバ10の機能構成を示すブロック図である。
図10】サービス提供サーバ10によりABCサービス、XYZサービスという2つのサービスにおけるテナントIDを連携させるための全体シーケンスを示す図である。
図11】ABCサービスの管理者であるユーザ001による操作を説明するためのシーケンスチャートである。
図12】ABCサービスにおいて登録されているユーザ管理テーブル例を示す図である。
図13】ユーザ001が連携許可するサービスのURLとしてXYZサービスのURLを入力する様子を示す図である。
図14】ユーザ001の端末装置20上に発行されたクライアントIDが表示される様子を示す図である。
図15】ABCサービスにおける連携許可サービステーブルの一例を示す図である。
図16】ABCサービスにより発行されたクライアントIDが、ユーザ001によりXYZサービスにおいて入力される様子を示す図である。
図17】ユーザにより入力されたクライアントIDが登録された際の対応付け一時情報テーブルの一例を示す図である。
図18】サービス提供サーバ10により生成されるリダイレクト情報の一例を示す図である。
図19】ABCサービスのログイン画面が表示された表示画面例を示す図である。
図20】サービス提供サーバ40により生成される返信情報例を示す図である。
図21】一時パスワードが発行された際に、対応付け一時情報テーブルが更新される様子を示す図である。
図22】発行された一時パスワードがユーザ001の端末装置20上に表示される際の表示画面例を示す図である。
図23】発行された一時パスワードがユーザ001からユーザ002に通知される様子を説明するための図である。
図24】サービス提供サーバ10において登録されているユーザ管理テーブル例を示す図である。
図25】XYZサービスの管理者であるユーザ002による操作を説明するためのシーケンスチャートである。
図26】ユーザ002が一時パスワードをXYZサービスに入力する際の表示画面例を示す図である。
図27】一時パスワードが入力された際に対応付け一時情報テーブルが更新される様子を示す図である。
図28】ユーザ002の端末装置20がリダイレクトされたことにより表示されるABCサービスのログイン画面例を示す図である。
図29】サービス提供サーバ40により生成される返信情報例を示す図である。
図30】サービス提供サーバ40からの返信情報と対応付け一時情報テーブルとのチェックを行う際の手順を説明するための図である。
図31】サービス提供サーバ40から受信した返信情報が条件を満たしている場合に、対応付け一時情報テーブルを更新する際の様子を説明するための図である。
図32】サービス提供サーバ10に記憶されるテナントID対応付けテーブルの一例を示す図である。
【発明を実施するための形態】
【0018】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0019】
図1は本発明の一実施形態の情報処理システムのシステム構成を示す図である。
【0020】
本発明の一実施形態の情報処理システムは、図1に示されるように、サービス提供サーバ10、40と、複数の端末装置20とがインターネット30により相互に接続された構成となっている。
【0021】
ここで、サービス提供サーバ40は、インターネット30を介してABCサービスをユーザに対して提供している。そして、サービス提供サーバ40は、ユーザ情報をIDトークンとして他のサービスに提供する機能を備えておりIDプロバイダとも呼ばれている。
【0022】
また、サービス提供サーバ10は、インターネット30を介してXYZサービスをユーザに対して提供している。そして、サービス提供サーバ10は、IDプロバイダであるサービス提供サーバ40からのユーザ情報を利用して、ユーザに対して各種サービスを提供する情報処理装置であり、リソースサーバまたはサービスプロバイダとも呼ばれている。
【0023】
このように複数のサービス提供サーバによりインターネット30を介してサービスが提供されている場合、ユーザはそれぞれのサービス毎にアカウントを登録するのは面倒であるため、あるサービスのアカウントを利用して他のサービスの提供を受けることができるようなアカウントの相互乗り入れが行われている。
【0024】
このようなアカウントの相互乗り入れは一般的にはID連携またはIdentify Federationと呼ばれている。このような機能を利用することにより、ユーザは多数のIDやパスワードを管理することなく、各種のクラウドサービスを利用することが可能となる。
【0025】
このようなID連携を行うための汎用技術であるOpen ID Connectと呼ばれるシーケンスについて図2を参照して説明する。
【0026】
まず、ステップS101において、ユーザが端末装置20からサービス提供サーバ10にアクセスして、ABCサービスのアカウントでログインすることを選択する。すると、サービス提供サーバ10は、ステップS102において、サービス提供サーバ40にリダイレクトするためのURL(Uniform Resource Locatorの略)を返信する。
【0027】
そして、端末装置20は、ステップS103において、リダイレクトされたURLにアクセスすることによりサービス提供サーバ40にアクセスする。その結果、サービス提供サーバ40は、ステップS104において、端末装置20に対してログイン画面を返信する。
【0028】
そして、ステップS105において、ユーザが端末装置20上に表示されたログイン画面にユーザID、パスワードの入力を行ってログインすると、サービス提供サーバ40は、入力されたユーザIDおよびパスワードを用いて認証を行って認証が成功すると、ステップS106において、ユーザ情報を含むIDトークンを端末装置20に返信する。
【0029】
すると、端末装置20は、ステップS107において、返信されたIDトークンをサービス提供サーバ10に提示する。すると、サービス提供サーバ10では、ステップS108において、端末装置20から提示されたIDトークンが正規に発行されたものであるか否かを電子署名情報等により検証する。
【0030】
そして、この検証においてIDトークンが正規に発行されたものであることが確認された場合、サービス提供サーバ10は、ステップS109において、ユーザに対してログインを許可する。
【0031】
このようなシーケンスにより、ユーザは、サービス提供サーバ10により提供されるXYZサービスのアカウントを保有していなくても、XYZサービスを利用することができるようになる。
【0032】
ここで、IDプロバイダは、マイクロソフト社や、グーグル社のような限られた企業により提供されたサーバであるため限定された数しか存在しないのに対して、リソースサーバは、多数存在している。そのため、セキュリティ上の観点から、予め登録されたリソースサーバのみがIDプロバイダと連携することができるよう制限されている場合がある。
【0033】
このようにIDプロバイダであるサービス提供サーバ10と連携可能なリソースサーバを事前に登録する際には、そのリソースサーバのURLをサービス提供サーバ40に対して登録するような設定となっている場合がある。
【0034】
このようにサービス提供サーバ40に対して連携を許可するサービスのURLを登録する際の処理を図3のシーケンスチャートを参照して説明する。
【0035】
ここで、サービス提供サーバ10により提供されるXYZサービスを、連携を許可するサービスとして登録する場合について説明する。この場合、ABCサービスの管理者権限を有するユーザ(以下、単に管理者と称する。)が、ステップS201において、端末装置20を介してサービス提供サーバ40に対してサービス提供サーバ10のURLを登録する。
【0036】
すると、サービス提供サーバ40では、ステップS202において、このURLを連携許可サービステーブルに登録する。すると、あるユーザが、図2に示すようなXYZサービスとABCサービスとの間でID連携を行うことができるようになる。
【0037】
ここで、近年のクラウドサービスでは、1つの装置を用いて複数の顧客を対象にサービスを提供することが行われている。このようなサービスの提供方法は、マルチテナントと呼ばれている。
【0038】
このようなマルチテナント構成例を図4に示す。図4では、ABCサービスとXYZサービスの両方のサービスがともにマルチテナント構成となっている場合が示されている。
【0039】
この図4に示した例では、ABCサービスとXYZサービスのそれぞれにおいて、各テナントはテナントIDにより管理されている。
【0040】
このような構成の場合、リソースサーバであるXYZサービス側において、どのテナントが、IDプロバイダのどのテナントと対応しているのかという対応情報が必要になる場合がある。
【0041】
例えば、株式会社Aに設置されている複合機の出力枚数情報がXYZサービスにおいて管理されていて、株式会社Aの所属部門情報がABCサービスにおいて管理されているような場合、複合機の出力枚数を部門別に集計しようとした場合、株式会社AのXYZサービスにおけるテナントIDと、株式会社AのABCサービスにおけるテナントIDとを対応付ける必要がある。
【0042】
具体的には、株式会社AのXYZサービスにおけるテナントIDである「123A」と、株式会社AのABCサービスにおけるテナントIDである「xyz-A」とを対応付ける必要がある。
【0043】
ここで、上記で説明したようにABCサービスにおいてXYZサービスとの連携を可能とするために、XYZサービスのURLを登録した場合、XYZサービス全体がABCサービスとの連携が許可されたことになる。つまり、図5に示すように、XYZサービスのURLである「https://xyzservice.com/re」をABCサービスに登録した場合、XYZサービスにおける全てのテナントがABCサービスと連携可能となってしまう。
【0044】
その結果、株式会社BのXYZサービスにおけるテナントIDと、株式会社AのABCサービスにおけるテナントIDとを対応付けることも可能となってしまうことになる。
【0045】
ここで、このようなテナントIDを対応付ける手段としては、IDプロバイダであるサービス提供サーバ40にユーザをログインさせて、その際に発行されたIDトークンを用いる手段が利用されている。具体的には、図2に示したシーケンスにおけるステップS106において発行されたIDトークンにIDプロバイダにおけるテナント情報が含まれるため、リソースサーバであるサービス提供サーバ10では、そのテナント情報におけるテナントIDと、自装置におけるおのユーザのテナントIDとを対応付けるような方法が用いられる。
【0046】
ただし、このような方法を用いる場合、図6に示すように、社内の複数部署でそれぞれXYZサービスを利用している場合、管理者001がユーザ002に対して連携利用を許可すると、許可していないユーザ003も連携利用できるようになってしまう。これは、図3に示したように、管理者001が設定できるのはXYZサービス全体に対する許可設定のためだからである。
【0047】
このような問題を回避するために、図2のステップS106に含まれるログインしたユーザが管理者か否かのフラグを確認し、管理者である場合にだけ処理を実行する方法も考えられる。しかし、この方法を用いる場合には、ABCサービスにおける管理者とXYZサービスにおける管理者とが同一ユーザである必要がある。
【0048】
つまり、本実施形態の情報処理システムでは、図7に示すように、ABCサービスとXYZサービスの各サービスにおいて管理者が異なる状態においても、両管理者が許可したテナントに対してのみ対応付けを行いたい場合について説明する。つまり、図6に示したユーザ003が管理者となっているテナントに対しては対応付けができないような状態としつつ、ユーザ002が管理者となっているテナントに対してのみ対応付けを行ができるようにする。
【0049】
次に、本実施形態の情報処理システムにおけるサービス提供サーバ10のハードウェア構成を図8に示す。
【0050】
サービス提供サーバ10は、図8に示されるように、CPU11、メモリ12、ハードディスクドライブ等の記憶装置13、ネットワーク30を介して外部の装置等との間でデータの送信及び受信を行う通信インタフェース(IFと略す。)14、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース(UIと略す。)装置15を有する。これらの構成要素は、制御バス16を介して互いに接続されている。
【0051】
CPU11は、メモリ12または記憶装置13に格納された制御プログラムに基づいて所定の処理を実行して、サービス提供サーバ10の動作を制御する。なお、本実施形態では、CPU11は、メモリ12または記憶装置13内に格納された制御プログラムを読み出して実行するものとして説明するが、当該プログラムをCD-ROM等の記憶媒体に格納してCPU11に提供することも可能である。
【0052】
図9は、上記の制御プログラムが実行されることにより実現されるサービス提供サーバ10の機能構成を示すブロック図である。
【0053】
なお、以下の説明においては、リソースサーバであるサービス提供サーバ10において、株式会社AのABCサービスにおけるテナントIDと、株式会社AのXYZサービスにおけるテナントIDとを対応付けて記憶する場合を用いて説明する。
【0054】
本実施形態のサービス提供サーバ10は、図9に示されるように、一時パスワード発行部31と、ユーザ管理テーブル記憶部32と、認証処理部33と、データ送受信部34と、制御部35と、対応付け一時情報テーブル記憶部36と、テナントID対応付けテーブル記憶部37とを備えている。
【0055】
一時パスワード発行部31は、第1システムであるABCサービスにおいて管理者権限を有するユーザからの操作に基づいて、このユーザにより指定されたABCサービスにおけるテナントIDと対応づけられた一時パスワードを発行する。ここで、一時パスワードとは、有効期限が設定されており継続的な仕様を前提としない仮認証情報である。
【0056】
ユーザ管理テーブル記憶部32は、各ユーザのユーザID、所属するグループのテナントID、パスワード、ユーザ種類の情報等が対応付けられたユーザ管理テーブルを記憶する。
【0057】
認証処理部33は、XYZサービスを利用しようとするユーザの認証処理を実行する。
【0058】
データ送受信部34は、端末装置20やサービス提供サーバ40との間においてデータの送受信を行う。
【0059】
制御部35は、第2のシステムであるXYZサービスの管理者権限を有するユーザが一時パスワードを提示してABCサービスとの連携を要求してきた際に、一時パスワード発行部31により発行した一時パスワードと提示された一時パスワードとが一致した場合、この一時パスワードと対応付けられたABCサービスにおけるテナントIDと、XYZサービスの管理者権限を有するユーザが指定したテナントIDとを対応付ける。
【0060】
具体的には、制御部35は、XYZサービスの管理者が一時パスワードを提示してABCサービスとの連携を要求してきた場合に、XYZサービスの管理者からの接続要求をリダイレクトすることによりABCサービスにおけるログイン画面に転送する。そして、制御部35は、XYZサービスの管理者がABCサービスにログインすることができた旨の情報が返信されてきた場合、対応付け一時情報テーブル記憶部36の対応付け一時情報テーブルにおいて記憶されているABCサービスにおけるテナントIDと、ログイン中のXYZサービスの管理者が使用しているXYZサービスのテナントIDとを対応付ける。
【0061】
なお、本実施形態においては、XYZサービスにおける管理者権限を有するユーザが、ABCサービスの管理者権限を有するユーザから通知された一時パスワードを用いて、2つのサービスにおけるテナントIDの対応付けを行う場合について説明するが、XYZサービスにおける管理者権限を有するユーザの代わりにXYZサービスを利用するユーザであっても同様の処理を行うことが可能である。
【0062】
対応付け一時情報テーブル記憶部36は、一時パスワードと、ABCサービスの管理者により指定されたABCサービスにおける株式会社AのテナントIDとを対応付ける対応付け一時情報テーブルを記憶する。なお、この対応付け一時情報テーブルは、XYZサービスの管理者からの接続要求をABCサービスにおけるログイン画面に転送する際に発行されたstateおよびnonceを、一時パスワードとABCサービスにおけるテナントIDに対応付けて記憶する。
【0063】
ここで、stateおよびnonceとは、ユーザからの接続要求をリダイレクトすることによりサービス提供サーバ40から返信されてきた返信情報が一連のセッションに基づくものであることを確認するための確認情報である。つまり、リダイレクト情報に含めたstateおよびnonceと、返信情報に含まれているstateおよびnonceが一致することを確認することにより、この返信情報が正規な処理に基づいて返信されたものであることを確認することができる。
【0064】
つまり、制御部35は、ABCサービスから返信されてきた、XYZサービスの管理者がABCサービスにログインすることができた旨の情報に、対応付け一時情報テーブルに記憶されているstateおよびnonceが含まれている場合に、対応付け一時情報テーブルに記憶されているABCサービスのテナントIDと、ログイン中のXYZサービスの管理者が使用しているXYZサービスのテナントIDとを対応付ける。
【0065】
テナントID対応付けテーブル記憶部37は、制御部35により対応付けられたABCサービスにおけるテナントIDとXYZサービスにおけるテナントIDとの対応関係をテナントID対応付けテーブルとして記憶する。
【0066】
なお、一時パスワード発行部31により発行される一時パスワードは、有効期限が設定されている認証情報である。そのため、制御部35は、XYZサービスの管理者が一時パスワードを提示してABCサービスとの連携を要求してきた場合でも、現在の日時がその一時パスワードの有効期限を過ぎている場合、XYZサービスの管理者からのABCサービスとの連携要求を拒否する。
【0067】
ここで、ABCサービスにおけるテナントIDとは、ABCサービスの管理者およびXYZサービスの管理者が属するグループである株式会社AのABCサービスにおけるグループ識別子である。また、同様にXYZサービスにおけるテナントIDとは、ABCサービスの管理者およびXYZサービスの管理者が属するグループである株式会社AのXYZサービスにおけるグループ識別子である。
【0068】
次に、本実施形態の情報処理システムにおけるサービス提供サーバ10の動作について図面を参照して詳細に説明する。
【0069】
まず、サービス提供サーバ10によりABCサービス、XYZサービスという2つのサービスにおけるテナントIDを連携させるための全体シーケンスを図10に示す。
【0070】
(1)まず、ABCサービスの管理者であるユーザ001が、ABCサービスを操作して、XYZサービスとの連携許可を登録する。
【0071】
(2)次に、ABCサービスの管理者であるユーザ001が、XYZサービスを操作して、一時パスワードの発行処理を行う。
【0072】
(3)そして、ユーザ001が、発行した一時パスワードを、XYZサービスの管理者であるユーザ002に、電子メールや電話等により通知する。
【0073】
(4)最後に、XYZサービスの管理者であるユーザ002が、XYZサービスを操作して、通知された一時パスワードを用いて、ABCサービスにおける株式会社AのテナントIDと、XYZサービスにおける株式会社AのテナントIDとを対応付ける処理を実行する。
【0074】
以下においてはこの全体シーケンスにおける各処理の詳細について順次説明する。
【0075】
最初に、上記で説明した全体シーケンスにおける(1)、(2)の処理であるABCサービスの管理者であるユーザ001による操作について図11のシーケンスチャートを参照して説明する。
【0076】
なお、この説明の前にABCサービスにおいて登録されているユーザ管理テーブル例を図12に示す。図12を参照すると、ユーザ001は、ユーザIDが「U001@idp.example.com」、パスワードが「pw001」、ユーザ種類が「管理者」、テナントIDが「123A」となっているのが分かる。なお、この「123A」というテナントIDは、株式会社AのABCサービスにおけるグループ識別子である。
【0077】
また、図12を参照すると、ユーザ002は、ユーザIDが「U002@idp.example.com」、パスワードが「pw002」、ユーザ種類が「一般ユーザ」、テナントIDが「123A」となっているのが分かる。つまり、ユーザ001、ユーザ002はともに株式会社Aというグループに属するユーザである。
【0078】
このようなユーザ登録が行われている状態において、ユーザ001は、ステップS301において、端末装置20からサービス提供サーバ40にアクセスしてユーザIDおよびパスワードを入力してログインした後に、ステップS302において、連携許可を行うXYZサービスのURLを登録するための処理を行う。このユーザ001が連携許可するサービスのURLとしてXYZサービスのURLを入力する様子を図13に示す。図13では、ユーザ001が端末装置20から「https://xyzservice.com/re」というXYZサービスのURLを入力する様子が示されている。
【0079】
このようなユーザ001からの登録要求を受けたサービス提供サーバ40は、ステップS303において、XYZサービスのURLを連携許可サービステーブルに登録する。
【0080】
そして、サービス提供サーバ40は、ステップS304において、クライアントIDを発行し、ステップS305においてユーザ001の端末装置20に送信する。
【0081】
このようにしてユーザ001の端末装置20上に発行されたクライアントIDが表示される様子を図14に示す。また、発行されたクライアントIDと、XYZサービスのURLと株式会社AのテナントIDとは、ABCサービスにおける連携許可サービステーブルにおいて対応付けて記憶される。この連携許可サービステーブルの一例を図15に示す。
【0082】
次に、ユーザ001は、ステップS306において、XYZサービスのサービス提供サーバ10にアクセスして、ステップS307において、発行されたクライアントIDを入力する。ユーザ001によりクライアントIDが入力される様子を図16に示す。図16では、ユーザ001が端末装置20において、ABCサービスから発行されたクライアントIDをXYZサービスにおいて入力する様子が示されている。
【0083】
ここで、図16に示した画面は、ユーザ001がサービス提供サーバ10の連携設定URLにアクセスすることにより表示される画面であり、マルチテナント管理とは別管理で表示される画面である。つまり、ユーザ001は、例えXYZサービスにおけるアカウントを保持していなくても操作可能な画面となっている。
【0084】
そして、サービス提供サーバ10では、ユーザ001から入力されたクライアントIDが対応付け一時情報テーブルに登録される。このように入力されたクライアントIDが登録された際の対応付け一時情報テーブルの一例を図17に示す。
【0085】
図17に示された対応付け一時情報テーブルでは、クライアントIDとともにstate、nonce、有効期限、状態の各種情報が対応付けられているのが分かる。図17に示されるように、クライアントIDが登録された際に、stateおよびnonceの情報が発行される。
【0086】
すると、サービス提供サーバ10は、ステップS308において、図18に示すようなリダイレクト情報を生成してユーザ001の端末装置20に送信して、端末装置20の接続先をリダイレクトさせる。
【0087】
図18に示されたリダイレクト情報は、リダイレクト先であるABCサービスのURL、サービス提供サーバ10において発行されたコード情報であるstateおよびnonce、クライアントID、リクエスト種別を特定するための情報、XYZサービスのURLから構成されている。
【0088】
そして、ユーザ001の端末装置20がリダイレクトされたことにより表示される表示画面例を図19に示す。図19に示す表示画面では、ABCサービスのログイン画面が表示されている。そのため、ユーザ001は、ステップS309において、このログイン画面にユーザIDおよびパスワードを入力してABCサービスにログインする。ここで、IDプロバイダであるサービス提供サーバ40は、ログイン時に入力されたユーザIDおよびパスワードが正しいこと、ログインしたユーザ001の属するテナントのテナントIDと対応付けて、クライアントIDとURLが連携許可サービステーブルに登録されていることを確認する。
【0089】
ここでは、図15に示した連携許可サービステーブルにおいて、ログインしたユーザ001の属するテナントのテナントID「123A」、クライアントID「cid0005」、URL「https://xyzservice.com/re」が登録されていることが確認される。
【0090】
よって、ユーザ001によるログイン処理は正常に行われ、サービス提供サーバ40は、ステップS310において、図20に示すような返信情報を含むリダイレクト情報を生成して端末装置20に対して送信する。すると、端末装置20は、ステップS311において、リダイレクト情報によって指定されたURLにアクセスすることによりサービス提供サーバ10に返信情報を送信する。
【0091】
ここで、図20に示す返信情報には、株式会社AのABCサービスにおけるテナントID「123A」、ユーザID「U001@idp.example.com」、ユーザ種類「管理者」、state「123123」およびnonce「456456」の情報が含まれている。
【0092】
すると、サービス提供サーバ10は、この返信情報に対して以下のようなチェックを行う。
【0093】
(1)返信情報が「idp.example.com」により正しく署名されていること
(2)返信情報におけるユーザ種類が「管理者」であること
(3)返信情報におけるstateおよびnonceの情報が正しいこと
(4)対応付け一時情報テーブルにおける有効期限が過ぎていないこと
(5)対応付け一時情報テーブルにおける「状態」が「管理者ログイン中」であること
【0094】
そして、上記の条件が全て満たされた場合、サービス提供サーバ10は、IDプロバイダであるサービス提供サーバ40の管理者による連携許可の承認が得られたものであると判定して、ステップS312において、一時パスワードを発行して対応付け一時情報テーブルを更新する。
【0095】
このようにして対応付け一時情報テーブルが更新される様子を図21に示す。図21を参照すると、一時パスワードが発行されたことにより、発行された一時パスワード「987987」が登録され、連携先テナントIDとしてABCサービスのテナントID「123A」が登録され、「状態」が「管理者ログイン中」から「一時PW(パスワードの略)発行中」に変更されているのが分かる。
【0096】
そして、このようにして発行された一時パスワードがユーザ001の端末装置20上に表示される際の表示画面例を図22に示す。図22に示した表示画面例では、一時パスワード「987987」の情報とともに、この一時パスワードの有効期限がユーザ001に示されていること分かる。
【0097】
そして、このように一時パスワードがサービス提供サーバ10により発行されると、ユーザ001は、図23に示すように、XYZサービスの管理者であるユーザ002に発行された一時パスワードを通知する。この一時パスワードの通知は、例えば、電子メール、FAX、電話等の様々な方法を用いることができる。つまり、ユーザ001とユーザ002とは同じ場所にいる必要はなく、それぞれが異なる場所にいる場合でも本実施形態によるID連携の処理を実行することができる。
【0098】
次に、XYZサービスの管理者であるユーザ002が、ユーザ001から通知された一時パスワードを用いて、2つのサービスにおけるテナントIDどうしを関連付ける際の処理について説明する。
【0099】
なお、この説明の前にサービス提供サーバ10において登録されているユーザ管理テーブル例を図24に示す。図24を参照すると、ユーザ002は、ユーザIDが「U002@xyzservice.com」、パスワードが「abcabc」、ユーザ種類が「管理者」、テナントIDが「xyz-A」となっているのが分かる。なお、この「xyz-A」というテナントIDは、株式会社AのXYZサービスにおけるグループ識別子である。
【0100】
次に、図10を参照して説明した全体シーケンスにおける(4)の処理である、XYZサービスの管理者であるユーザ002による操作について図25のシーケンスチャートを参照して説明する。
【0101】
まず、ユーザ002は、ステップS401において、端末装置20を操作してサービス提供サーバ10にアクセスして図24に示したようなユーザIDおよびパスワードを入力するによりXYZサービスにログインする。
【0102】
そして、ログイン処理が行われた後に、ユーザ002は、ステップS402において、端末装置20を操作して、ユーザ001から通知された一時パスワードをXYZサービスに入力する。このようにユーザ002が一時パスワードをXYZサービスに入力する際の表示画面例を図26に示す。
【0103】
このようにして一時パスワードが入力されるとサービス提供サーバ10では、入力された一時パスワードと同じ一時パスワードが対応付け一時情報テーブルに登録されていて、かつ、「状態」が「一時PW発行中」であるか否かを検索する。そして、同じ一時パスワードが登録されており、「状態」が「一時PW発行中」である場合、サービス提供サーバ10は、図18に示した構成と同様の構成のリダイレクト情報を生成する。
【0104】
そして、サービス提供サーバ10では、対応付け一時情報テーブルが更新される。このように一時パスワードが入力された際に対応付け一時情報テーブルが更新される様子を図27に示す。
【0105】
図27を参照すると、一時パスワードが入力されたことにより対応付け一時情報テーブルでは新たな欄が設けられて、一時パスワード、クライアントID、「状態」が「ユーザログイン中」、期限、新たなstateおよびnonceが対応付けて記憶されているのが分かる。
【0106】
次に、サービス提供サーバ10は、ステップS403において、生成したリダイレクト情報をユーザ002の端末装置20に送信して、端末装置20の接続先をリダイレクトさせる。
【0107】
そして、ユーザ002の端末装置20がリダイレクトされたことにより表示される表示画面例を図28に示す。図28に示す表示画面では、ABCサービスのログイン画面が表示されている。そのため、ユーザ002は、ステップS404において、このログイン画面にユーザIDおよびパスワードを入力してABCサービスにログインする。すると、IDプロバイダであるサービス提供サーバ40は、ユーザIDとパスワードを確認することによりユーザ002の認証処理を実行し、認証処理が正常に行われると、ステップS405において、図29に示すような返信情報を含むリダイレクト情報を生成して端末装置20に対して送信する。すると、端末装置20は、ステップS406において、リダイレクト情報によって指定されたURLにアクセスすることによりサービス提供サーバ10に返信情報を送信する。
【0108】
この図29に示した返信情報には、ユーザ002のユーザ情報が含まれており、株式会社AのABCサービスにおけるテナントID「123A」、ユーザID「U002@idp.example.com」、ユーザ種類「一般ユーザ」、state「555222」およびnonce「def006」の情報が含まれている。
【0109】
すると、サービス提供サーバ10は、この返信情報に対して以下のようなチェックを行う。
【0110】
(1)返信情報が「idp.example.com」により正しく署名されていること
(2)返信情報におけるstateおよびnonceの情報が正しいこと
(3)対応付け一時情報テーブルにおける有効期限が過ぎていないこと
(4)対応付け一時情報テーブルにおける「状態」が「ユーザログイン中」であること
(5)対応付け一時情報テーブルにおいて、同一の一時パスワードが登録された記録情報のうちの、「状態」が「一時PW発行中」である記録情報における連携先テナントIDが、サービス提供サーバ40から返信された返信情報におけるテナントIDと一致すること
【0111】
具体的には、サービス提供サーバ10は、図30に示すようなチェックを行う。
【0112】
(1)まず、サービス提供サーバ40からの返信情報に含まれるstateおよびnonceである「555222」と「def006」と一致する記録情報を対応付け一時情報テーブルから検索する。
【0113】
(2)次に、この記録情報における一時パスワードを参照して「987987」という情報を取得する。
【0114】
(3)そして、この「987987」という一時パスワードと同一の一時パスワードが登録されている記録情報を検索する。
【0115】
(4)次に、検索により見つかった記録情報の連携先テナントID「123A」を取得する。
【0116】
(5)最後に、(4)において取得した連携先テナントID「123A」が、返信情報におけるテナントID「123A」と一致することを確認する。
【0117】
図30に示した返信情報と対応付け一時情報テーブルでは、上記の条件が満たされている。そのため、サービス提供サーバ10では、対応付け一時情報テーブルが、図31に示すように更新される。具体的には、「状態」が「一時PW発行中」であった記録情報における「状態」が「終了(管理者)」に変更され、「状態」が「ユーザログイン中」であった記録情報における「状態」が「終了(一般ユーザ)」に変更されるとともに連携先テナントIDとして「123A」が登録される。
【0118】
このような処理が行われた結果、サービス提供サーバ10では、ステップS407において、ABCサービスにおける株式会社AのテナントID「123A」と、XYZサービスにおける株式会社AのテナントID「xyz-A」との対応付けが行われる。
【0119】
そして、このような対応付けが行われたことにより、サービス提供サーバ10におけるテナントID対応付けテーブルでは、図32に示すように、自装置における株式会社AのテナントID「xyz-A」と対応付けて、連携先であるサービス提供サーバ40のテナントID「123A」が連携先テナントIDとして登録される。
【0120】
上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス等)を含むものである。
【0121】
また上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
【符号の説明】
【0122】
10 サービス提供サーバ
11 CPU
12 メモリ
13 記憶装置
14 通信インタフェース
15 ユーザインタフェース装置
16 制御バス
20 端末装置
30 インターネット
31 一時パスワード発行部
32 ユーザ管理テーブル記憶部
33 認証処理部
34 データ送受信部
35 制御部
36 対応付け一時情報テーブル記憶部
37 テナントID対応付けテーブル記憶部
40 サービス提供サーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32