(57)【特許請求の範囲】
【請求項１】
認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得手段と、
前記取得手段で取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定手段と、
前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可手段と、
前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得手段と、
前記可否情報取得手段で取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可手段と、
を有するサーバー装置。
【請求項２】
前記取得手段で取得されたスコープにクラウドサービスを識別する識別情報が設定されていない場合、前記取得手段で取得されたユーザー識別情報に基づいて、ユーザー識別情報とユーザーに割り当てられている、クラウドサービスにユーザーがアクセスするための権限であるロールとが紐づけられたユーザー管理データを参照し、前記取得手段で取得されたユーザー識別情報に紐づけられたロールを取得するロール取得手段を更に有し、
前記サービス利用許可手段は、更に、前記ロール取得手段で取得されたロールに基づいて、ユーザーに前記認可情報に含まれるスコープに定義されているクラウドサービスにアクセスするための権限がある場合、前記クラウドサービスの利用を許可する請求項１記載のサーバー装置。
【請求項３】
前記サービス利用非許可手段は、更に、前記ロール取得手段で取得されたロールに、前記認可情報に含まれるスコープに定義されているクラウドサービスにアクセスするための権限がない場合、前記クラウドサービスの利用を許可しない請求項２記載のサーバー装置。
【請求項４】
前記ロール取得手段は、更に、前記可否情報取得手段で取得された前記可否情報がロールを参照する必要があることを示している場合、前記取得手段で取得されたユーザー識別情報に基づいて、前記ユーザー管理データを参照し、前記取得手段で取得されたユーザー識別情報に紐づけられたロールを取得する請求項２又は３記載のサーバー装置。
【請求項５】
前記ユーザー管理データを管理するユーザー管理手段を更に有し、
前記ユーザー管理データには、有償サービスのロールを割り当てられているユーザーのデータと、有償サービスのロールを割り当てられていないユーザーのデータと、が登録されている請求項２乃至４何れか１項記載のサーバー装置。
【請求項６】
前記認可トークンを発行する認可トークン発行手段を更に有し、
前記認可トークン発行手段は、前記トークンデータにデータを登録する際、有償サービスのロールを割り当てられているユーザーに対しては、スコープにクラウドサービスを識別する識別情報を設定せず、有償サービスのロールを割り当てられていないユーザーに対しては、スコープにクラウドサービスを識別する識別情報を設定する請求項１乃至５何れか１項記載のサーバー装置。
【請求項７】
サーバー装置が実行する情報処理方法であって、
認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得ステップと、
前記取得ステップで取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得ステップと、
前記可否情報取得ステップで取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可ステップと、
を含む情報処理方法。
【請求項８】
コンピューターに、
認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得ステップと、
前記取得ステップで取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得ステップと、
前記可否情報取得ステップで取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバー装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年インターネットにおいて、様々なクラウドサービスが提供されている。中には、複数のクラウドサービス同士が連携して、新たなサービスを提供するケースも存在する。
これら個々のサービス又はそれらを連携したサービスには、ＩＤ・パスワードの維持管理、アクセス制御といったセキュリティ対策のための認証機構が備えられている場合が多い。この際、ユーザーは利用するサービスのライセンスのみを購入し、サービスの利用を行うことが一般的であり、ユーザーがサービスを利用するライセンスを持っているかどうかを認証機構が確認する。特許文献１には、様々なサービスの認証とライセンスの管理とを行うサービスの運用方法が開示されている。このサービスでは、サービス毎に管理されたライセンス情報に基づきアクセス制御を行い、サービスの利用可否をサービス単位で制御することが行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３３３９２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
既存のクラウドサービスＡから、クラウドサービスＡと他サービスｂが連携した新たな有償サービスＢと、クラウドサービスＡと他サービスｃが連携した新たな無償サービスＣと、の２つが提供される場合を考える。
従来のライセンス管理の仕組みを踏襲すると、有償サービスＢを利用するユーザーに対しては有償サービスＢ専用のライセンスを発行し、アクセス制御することで、ライセンスを持っていないユーザーの利用を防止する必要がある。一方、無償サービスＣの場合にも、有償サービスＢの場合と同様に無償サービスＣ専用のライセンスを発行し検証することで、連携先の他サービスｃが信頼できるサービスであることを確認する必要がある。
しかしながら、サーバー使用等の運用費をユーザーから回収することのできない無償サービスに対して専用ライセンスを用意し、それを各ユーザーに割り当てること、及び割り当て管理を行うことは運用面での負担が大きい。また、ユーザーが無償サービスを利用する場合もライセンスの検証を行うのでクラウドサービス全体のパフォーマンスが低下する。
【０００５】
本発明はこのような問題点に鑑みなされたもので、クラウドサービスと連携するサービスが複数存在する場合にも、クラウドサービス全体のパフォーマンスを低下させない、統一的なライセンス管理の仕組みを実現することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得手段と、前記取得手段で取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定手段と、前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可手段と、前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得手段と、前記可否情報取得手段で取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可手段と、を有する
【発明の効果】
【０００７】
本発明によれば、クラウドサービスと連携するサービスが複数存在する場合にも、クラウドサービス全体のパフォーマンスを低下させない、統一的なライセンス管理の仕組みを実現することができる。
【図面の簡単な説明】
【０００８】
【図１】クラウドシステムのシステム構成の一例を示す図である。
【図２】サービス群、クライアント端末を実行するコンピューターのハードウェア構成の一例を示す図である。
【図３】クライアント端末の機能構成の一例を示す図である。
【図４】認証・認可サービスの機能構成の一例を示す図である。
【図５】ユーザー管理テーブルで管理するデータの一例を示す図である。
【図６】トークンテーブルで管理するデータの一例を示す図である。
【図７】ロール参照テーブルで管理するデータの一例を示す図である。
【図８】認可情報の一例を示す図である。
【図９】認可トークン検証の情報処理の一例を示す図である。
【図１０】プリントサービスの機能構成の一例を示す図である。
【図１１】スコープ管理テーブルの一例を示す図である。
【図１２】ファイルサーバーＡ、ファイルサーバーＢの機能構成の一例を示す図である。
【図１３】有償連携サービス、無償連携サービスの機能構成の一例を示す図である。
【図１４】ライセンス管理サービスの機能構成の一例を示す図である。
【図１５】テナント構造を示す模式図である。
【図１６】印刷データの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
＜実施形態１＞
図１は、クラウドシステムのシステム構成の一例を示す図である。
ファイルサーバーＡ１０１、ファイルサーバーＢ１０２、有償連携サービス１０３、無償連携サービス１０４、プリントサービス１０５、認証・認可サービス１０６、ライセンス管理サービス１０７、クライアント端末１１３〜１１６は、ネットワーク１０９〜１１１を介して接続されている。
クライアント端末１１３〜１１６は、１台以上接続されていることを仮定している。
ネットワーク１０９〜１１１は、例えば、イントラネットやインターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等の何れかである。又は、ネットワーク１０９〜１１１は、これらの組み合わせによって実現される、所謂、通信ネットワークである。
ネットワーク１０９〜１１１は、データの送受信が可能であればよい。
一般的なクラウドサービスでは、ネットワーク１０９は、インターネットとなる。また、ネットワーク１１０、１１１は、企業内ネットワークやサービスプロバイダーのネットワークとなる。
【００１１】
有償連携サービス１０３、無償連携サービス１０４、プリントサービス１０５、認証・認可サービス１０６、ライセンス管理サービス１０７は、一般的にサーバーコンピューター上にて実行される。これらサービス群がユーザーに対してクラウドサービスを提供するので、本実施形態では各サーバーをサービスと記載する。
クライアント端末１１３〜１１６は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（パーソナルデータアシスタント）等からなるが、プログラム実行環境が内蔵された携帯電話であってもよい。クライアント端末１１３〜１１６は、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂの利用に供するブラウザ）等のプログラムの実行環境が内蔵されている。
ファイルサーバーＡ１０１、ファイルサーバーＢ１０２は一般にサーバーコンピューター上にて実行されており、必要に応じて電子データを保存、削除、取得する機能を有している。
【００１２】
図２は、サービス群１０３〜１０７、クライアント端末１１３〜１１６を実行するコンピューターのハードウェア構成の一例を示す図である。
Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）２０２は、装置全体の制御を行う。ＣＰＵ２０２はハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラム、ＯＳ等を実行する。また、ＣＰＵ２０２は、Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）２０４は、記憶手段であり、内部には、基本Ｉ／Ｏプログラム等の各種データを記憶する。
ＲＡＭ２０３は、一時記憶手段であり、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。
ＨＤＤ２０５は、外部記憶手段の一つであり、大容量メモリとして機能し、Ｗｅｂブラウザ等のアプリケーションプログラム、サービス群のプログラム、ＯＳ、関連プログラム等を格納している。
【００１３】
ディスプレイ２０６は、表示手段であり、キーボード２０７から入力したコマンド等を表示する。
インターフェース２０８は、外部装置Ｉ／Ｆであり、プリンター、ＵＳＢ機器、周辺機器を接続する。
キーボード２０７は、指示入力手段である。
システムバス２０１は、装置内におけるデータの流れを司るものである。
ネットワークインターフェースカード（ＮＩＣ）２０９は、ネットワーク１０９〜１１１を介して外部装置とのデータのやり取りを行う。
なお、上記コンピューターの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２０４、ＲＡＭ２０３、ＨＤＤ２０５等で変更することもできる。
サーバー（又はサービス）のＣＰＵがサーバー（又はサービス）のＨＤＤ等に記憶されているプログラムに基づき処理を実行することによって、サーバー（又はサービス）の機能が実現される。クライアント端末のＣＰＵも同様の処理を実行する。
【００１４】
図３は、クライアント端末１１３〜１１６の機能構成の一例を示す図である。
クライアント端末１１３〜１１６は、Ｗｅｂブラウザ３０１を利用し、サービス群１０３〜１０７が提供する各種Ｗｅｂアプリケーションへのリクエストの送信や、レスポンスの表示等を行う。クラウドサービスを利用するユーザーは、クライアント端末１１３〜１１６のＷｅｂブラウザ３０１を介して、クラウドサービスを利用する。
続いて、クラウドサービスを提供する有償連携サービス１０３、無償連携サービス１０４、プリントサービス１０５、認証・認可サービス１０６、ライセンス管理サービス１０７の各サービスに関して説明する。
初めに、図４〜図９を用いて、認証・認可サービス１０６に関して説明する。認証・認可サービス１０６は、連携サービスも含めた、クラウドサービス全体の認証・認可を司るサービスである。
【００１５】
図４は、認証・認可サービス１０６の機能構成の一例を示す図である。
認証・認可アプリケーション４０１は、認証機能を提供する。
データベース４０２は、ユーザーＩＤやパスワード、ユーザーの属性情報や認可情報等を管理しており、認証・認可アプリケーション４０１にて各種機能を実現するためのデータ管理を行う。
ユーザー管理テーブル４２１は、ユーザーの各種情報を管理するテーブルである。図５は、ユーザー管理テーブル４２１で管理するデータの一例を示す図である。
ユーザーＩＤ５１１は、ユーザーをシステムで一意に識別する情報であり、ログイン時に入力するＩＤである。
パスワード５１２は、ユーザーがシステムにログインする際に利用するパスワードの情報である。パスワードは一般的には、パスワード文字列をそのまま格納するのではなく、ハッシュ化して格納する等、セキュリティ対策されることが一般的である。
テナントＩＤ５１３は、ユーザーが所属するテナントを一意に識別する情報である。ここでいうテナントとは、顧客がクラウドサービスを利用・管理する単位である。クラウドサービスでは、１つのシステムで複数のテナントを管理している。ユーザー企業と契約を行った場合、その企業毎にテナントが結び付けて管理され、その顧客のデータも顧客のテナント毎に管理される。つまり、そのユーザーが所属する企業単位で管理されている状態を、テナントで管理していると称する。このテナントの概念により、ユーザー企業はあたかも別々のシステム上で提供されている自分自身だけの為のサービスを利用しているのと同じようにクラウドサービスを利用できる。
姓５１４、名５１５は、ユーザーが任意に入力する情報である。認証・認可サービス１０６は、姓５１４、名５１５でユーザーの名前を管理できる。
所持ロール５１６は、ユーザーに割り当てられているロールＩＤ一覧である。ここでいうロールとは、クラウドサービスにユーザーがアクセスするための権限を管理する概念である。ユーザー管理テーブルは、ユーザー管理データの一例である。
【００１６】
トークンテーブル４２２は、各認可トークンがどのようなスコープを持ち、どのユーザーに対して発行されたものかを管理している。認可トークンは、アクセストークンとも呼ばれ、システムにログインしたユーザーに対してシステムから与えられる、ユーザー識別情報や権限が記述されたデータ構造のことである。ユーザーがファイルやサービス等にアクセスする際、ユーザーが持つ認可トークンがファイルやサービスにアクセスする権限を持っているかが照合され、アクセスの可否が決定される。図６は、トークンテーブル４２２で管理するデータの一例を示す図である。トークンテーブルで管理されている１レコードが、認可トークンとなる。また、スコープとは認可トークンが持っている権限であり、スコープを設定することでユーザーの振る舞いを制限することができる。例えば、レコード６１０は、トークンＩＤが「ａｓ２３４ｓｆｄ５」の認可トークンは「ｕｓｅｒ１」に対して発行されたものであり、そのスコープは「無償連携サービス」に限定されたものであることを示している。トークンＩＤは、トークン識別情報の一例である。トークンテーブルは、トークンデータの一例である。
ロール参照テーブル４２３は、トークンテーブル４２２で指定される各スコープ６０２がロールを参照する必要があるか否かを管理したものである。図７は、ロール参照テーブル４２３で管理するデータの一例を示す図である。レコード７１１は、認可トークンのスコープが有償連携サービスの場合は、ロール参照テーブル４２３を参照し、認可トークンに紐づいたユーザーに有償連携サービスを利用する権限があるかを参照する必要があることを示している。ロール参照テーブルは、ロール参照データの一例である。ロール参照は、可否情報の一例である。
【００１７】
ユーザー管理４１６では、クラウドサービスを利用可能なユーザーを管理する。各ユーザーの情報には、ユーザーＩＤ、パスワード、ユーザーの名前等の情報や、ユーザーがどのテナントに所属するかのテナントＩＤ、そのユーザー保持しているロール情報等の設定が保持されている。
ロール管理４１５では、クラウドサービスにユーザーがアクセスするための権限であるロールを管理する。例えば、ロール管理４１５は、「プリントユーザー」「有償連携サービス」等、ロールを定義する。
スコープ管理４１８では、ロール参照テーブル４２３を管理する。新たにクラウドサービスにサービスを追加する場合、スコープ管理４１８は、ロール参照テーブル４２３にエントリを追加する。
【００１８】
ログインアプリケーション４１１は、ユーザーがクラウドサービスにログインする機能を提供するためのＷｅｂアプリケーションである。クライアント端末１１３〜１１６のＷｅｂブラウザ３０１からのリクエストを受信したログインアプリケーション４１１は、ユーザーがＷｅｂブラウザに入力したユーザーＩＤやパスワード等の認証情報を基にログイン処理を実行する。
ログイン処理では、ログインアプリケーション４１１が認証モジュール４１２に対して、ユーザーの認証情報を通知する。認証モジュール４１２は、通知されたユーザー認証情報を基にデータベースに登録されているユーザーＩＤとパスワードとを照合し、認証処理を実施し、ログインアプリケーション４１１に結果を返す。ログインアプリケーション４１１は、認証結果を基に、Ｗｅｂ画面を生成しＷｅｂブラウザ３０１にレスポンスを送信する。
外部Ｉ／Ｆ４１４は、後述する認証エージェント９０１からの処理依頼を処理するためのＩ／Ｆであり、認証・認可サービス１０６の機能を外部から呼び出す。
認可トークン発行モジュール４１７は、認証に成功したログインユーザーに対して認可トークンを発行し、トークンテーブル４２２にエントリを追加する。トークンＩＤ６０１は、文字列から構成される。また、ユーザーＩＤ６０３は、ログインユーザーのユーザーＩＤが割り当てられる。
【００１９】
認可モジュール４１３は、クラウドサービスを利用するユーザーがどのサービスにアクセスできるかといった認可の機能を実現する。図８は、認可情報の一例を示す図である。認可モジュール４１３は、認可トークンのトークンＩＤ８１１と利用したいスコープ８１２との２つを含む認可情報８０１を受け取り、トークンＩＤ８１１に紐づいたユーザーがスコープ８１２に指定されたサービスを利用可能かどうかの検証を行う。図９は、認可トークン検証の情報処理の一例を示す図である。なお、後述するように本願ではプリントサービスが認可情報８０１を生成する。
認可モジュール４１３は、ステップＳ１４０１において、トークンテーブルを参照し、受信した認可情報に含まれるトークンＩＤに対するトークンＩＤ８１１に紐づけられたスコープとユーザーＩＤとを取得する。
認可モジュール４１３は、ステップＳ１４０１でトークンテーブルから取得されたスコープにｎｕｌｌ以外のクラウドサービスを識別する識別情報が設定されているかどうかをステップＳ１４０２で判定する。認可モジュール４１３は、ステップＳ１４０２でスコープにクラウドサービスを識別する識別情報が設定されていると判定した場合、識別情報で識別されるクラウドサービスがスコープ８１２に定義されているものを含むかどうかをステップＳ１４０３で判定する。
【００２０】
認可モジュール４１３は、ステップＳ１４０３でスコープ８１２に定義されていないと判定した場合、ステップＳ１４０９において、この認可情報をサービス利用非許可と判定する。認可モジュール４１３は、ステップＳ１４０３でスコープ８１２に定義されていると判定した場合、ステップＳ１４０４に進む。ステップＳ１４０４において、認可モジュール４１３は、ロール参照テーブルを参照し、ステップＳ１４０１で得られたスコープがロールを参照する必要があるか否かをステップＳ１４０５で判定する。より具体的に説明すると、認可モジュール４１３は、ステップＳ１４０１で得られたスコープに基づいて、ロール参照テーブル４２３を参照し、前記スコープに紐づけられたロールを参照する必要があるか否かのロール参照を取得する（可否情報取得）。
認可モジュール４１３は、ステップＳ１４０５でロールを参照する必要がある場合、又はステップＳ１４０２でスコープが設定されていない場合、ステップＳ１４０６において、ユーザー管理テーブル４２１を参照する。
そして、認可モジュール４１３は、ステップＳ１４０７において、ステップＳ１４０１で得られたユーザーＩＤのユーザーにスコープ８１２に対応するロールが割り当てられているか否かを判定する。より具体的に説明すると、認可モジュール４１３は、ユーザーＩＤに基づいて、ユーザー管理テーブル４２１を参照し、前記ユーザーＩＤに紐づけられた所持ロールを取得する（ロール取得）。そして、認可モジュール４１３は、取得した所持ロールにスコープ８１２に定義されているクラウドサービスにアクセスするための権限があるか否か（つまり、スコープ８１２に対応するロールがユーザーに割り当てられているか否か）を判定する。
認可モジュール４１３は、ステップＳ１４０７でロールが割り当てられていない場合、ステップＳ１４０９でこの認可情報をサービス利用非許可と判定する。認可モジュール４１３は、ステップＳ１４０５でロールを参照する必要がない場合、又はステップＳ１４０７でロールが割り当てられている場合は、ステップＳ１４０８においてサービス利用を許可する。
以上のように、図９を実施することで無償連携サービスを利用する場合であっても、Ｓ１４０３、Ｓ１４０５の処理を行うことで、認可情報に含まれる無償連携サービスが信頼できるサービスであると確認できる。また、その確認のために、例えば、各ユーザーに専用ライセンスを割り当てる必要もないので運用の負担が大きくなることもない。
【００２１】
図１０、図１１を用いて、プリントサービス１０５に関して説明する。図１０は、プリントサービス１０５の機能構成の一例を示す図である。プリントサービス１０５は、プリント機能を顧客に提供する。顧客がプリントサービス１０５を利用するのは、有償連携サービス１０３が提供する機能を介してプリントを行う場合、無償連携サービス１０４を介してプリントを行う場合がある。
Ｗｅｂアプリケーション９０２は、有償連携サービス１０３又は無償連携サービス１０４からのリクエストを受信する。Ｗｅｂアプリケーション９０２は、有償連携サービス１０３からのリクエストを受け付ける有償連携サービス専用ＵＲＬ９１１と、無償連携サービス１０４からのリクエストを受け付ける無償連携サービス専用ＵＲＬ９１２と、を有する。連携サービスが追加された場合には対応するサービス専用のＵＲＬが追加される。
有償連携サービス専用ＵＲＬ９１１又は無償連携サービス専用ＵＲＬ９１２を介して、対応するサービスからリクエストを受信したＷｅｂアプリケーション９０２は、そのリクエストの内容に応じた処理をバックエンド９０３に依頼する。バックエンド９０３は、サービスを実現するためのプリント実行等の機能を提供する。バックエンド９０３は、Ｗｅｂアプリケーション９０２から依頼された処理を実行し、その結果をＷｅｂアプリケーション９０２に返す。Ｗｅｂアプリケーション９０２は、バックエンド９０３の処理結果を基に要求された結果を、有償連携サービス１０３又は無償連携サービス１０４に返す。
【００２２】
データベース９０４は、プリントサービス１０５の各種機能を使うために必要な情報を保持する。図１１は、スコープ管理テーブル９２１の一例を示す図である。スコープ管理テーブル９２１は、Ｗｅｂアプリケーション９０２へのリクエストを受け付けるＵＲＬとそれに対応するスコープとを管理するテーブルである。例えば、レコード１２１１は「ｈｔｔｐ：／／ｆｅｅ−ｂａｓｅｄ＿ｓｅｒｖｉｃｅ／＊」に対するアクセスのスコープが有償プリントサービスであることを示している。リクエストを受け付けるＵＲＬを追加された場合はスコープ管理テーブル９２１を更新して対応するスコープを設定する必要がある。
プリントサービス１０５は、有償連携サービス１０３又は無償連携サービス１０４からＷｅｂアプリケーション９０２へのリクエストを受け付けると、認証・認可サービス１０６と連携することでユーザーへのプリントサービス１０５へのアクセスの認可を実行する。有償連携サービス１０３又は無償連携サービス１０４からのアクセスには認可トークンが必要である。
プリントサービス１０５は、Ｗｅｂアプリケーション９０２へサービスがアクセスしたＵＲＬからスコープ管理テーブル９２１を参照して得られるスコープと認可トークンとの２つを認証・認可サービス１０６の外部Ｉ／Ｆ４１４に送信する。認証・認可サービス１０６は、認可モジュール４１３の機能にて認証・認可処理を行い、その結果をプリントサービス１０５へ応答する。プリントサービス１０５は、認証・認可処理が正常に終了した場合は処理を継続し、認証・認可処理が失敗した場合にはエラー画面を表示する。
以上の処理によって、プリントサービス１０５の利用制御を行っている。
【００２３】
なお、上記、認証・認可処理は認証エージェント９０１で行う構成をとる事もできる。例えば、認証エージェント９０１は、有償連携サービス１０３又は無償連携サービス１０４からＷｅｂアプリケーション９０２へのリクエストに割り込みを行い、認証・認可サービス１０６と連携する。このようにすることで、認証エージェント９０１は、ユーザーへのプリントサービス１０５へのアクセスの認可を実行する。有償連携サービス１０３又は無償連携サービス１０４からのアクセスには認可トークンが必要である。認証エージェント９０１は、Ｗｅｂアプリケーション９０２へサービスがアクセスしたＵＲＬからスコープ管理テーブル９２１を参照して得られるスコープと認可トークンとの２つを認証・認可サービス１０６の外部Ｉ／Ｆ４１４に送信し、認可トークンの検証を行う。認証・認可サービス１０６は、認可モジュール４１３の機能にて認証・認可処理を行い、その結果を認証エージェント９０１へ応答する。認証エージェントは、認証・認可処理が正常に終了した場合、リクエストをＷｅｂアプリケーション９０２へ送信し、認証・認可処理が失敗した場合、エラー画面を表示する。
以上の処理によって、プリントサービス１０５の利用制御を行っている。
【００２４】
図１２は、ファイルサーバーＡ１０１、ファイルサーバーＢ１０２の機能構成の一例を示す図である。
データ格納部１６０１は、ファイルを格納する部分であり、ＨＤＤ等の外部記憶装置からなる。
リクエスト処理部１６０２は、外部からファイルサーバーＡ１０１、ファイルサーバーＢ１０２へのリクエストを処理する部分である。リクエスト処理部１６０２は、ファイル格納１６１１、ファイル取得１６１２、ファイル一覧取得１６１３の３つの機能がある。ファイル格納１６１１は、リクエスト処理部１６０２に対してファイル格納要求があった場合に、データ格納部１６０１に格納要求があったファイルを格納する。ファイル取得１６１２は、リクエスト処理部１６０２に対してファイル取得要求があった場合に、データ格納部１６０１に対して要求があったファイルがデータ格納部１６０１に存在するかどうかを確認し、存在する場合は該当ファイルを返却する。ファイル一覧取得１６１３は、リクエスト処理部１６０２に対してファイル一覧の取得要求があった場合に、データ格納部に存在するファイルのファイル名と対応するファイルのＵＲＬの一覧を返却する。
【００２５】
図１３は、有償連携サービス１０３、無償連携サービス１０４の機能構成の一例を示す図である。
有償連携サービス１０３は、ファイルサーバーＡ１０１からファイルを取得し、プリントサービス１０５を用いてファイルのプリントを行う有償のサービスである。また、無償連携サービス１０４は、ファイルサーバーＢ１０２からファイルを取得し、プリントサービス１０５を用いてファイルのプリントを行う無償のサービスである。
データ取得部１００１は、有償連携サービス１０３の場合はファイルサーバーＡ１０１、無償連携サービス１０４の場合はファイルサーバーＢ１０２のリクエスト処理部１６０２に対してデータ取得要求を行い、ファイルを取得する部分である。
連携リクエスト送信部１００３は、プリントサービス１０５に対してファイルの印刷要求を送信する部分である。連携リクエスト送信部１００３は、有償連携サービス１０３の場合は有償連携サービス専用ＵＲＬ９１１に対して印刷要求を送信し、無償連携サービス１０４の場合は無償連携サービス専用ＵＲＬ９１２に対して印刷要求を送信する。Ｗｅｂアプリケーション１００２及びプリント機能１０１１に関しては後述する。
【００２６】
図１４は、ライセンス管理サービス１０７の機能構成の一例を示す図である。
ライセンス管理サービス１０７は、有償サービスについてのライセンス管理やユーザー管理といったビジネスインフラを提供するためのサービスである。
Ｗｅｂアプリケーション１１０２は、クライアント端末１１３〜１１６のＷｅｂブラウザ３０１からのリクエストを受信する。リクエストを受信したＷｅｂアプリケーション１１０２は、そのリクエストの内容に応じた処理を実施し、処理結果となるＷｅｂ画面を生成し、Ｗｅｂブラウザ３０１にレスポンスを送信する。
Ｗｅｂアプリケーション１１０２は、テナント管理１１１１、ユーザー管理１１１２の機能を提供する。各機能に関しては後述する。
データベース１１０３は、Ｗｅｂアプリケーション１１０２で利用するデータを管理している。
認証エージェント１１０１は、認証エージェント９０１と同様で、認証・認可サービス１０６と連携し、ライセンス管理サービス１０７のＷｅｂアプリケーション１１０２のアクセス制御を行っている。
【００２７】
図１５は、テナント構造を示す模式図である。
クラウドサービスは、テナント１３０１の単位で顧客のクラウドサービスの利用を管理する。したがって、テナント１３０１は顧客ごとに存在する。テナント１３０１には、ユーザー１３１１〜１３１３が所属しており、各ユーザーはテナント１３０１内で一意に識別される。なお、テナント１３０１は、複数のライセンス情報を保持できる。ライセンス情報１つに対してサービス１つが紐づく。本実施形態では、有償連携サービス１０３用のライセンス情報は、有償連携サービスライセンス情報１３１４が管理し、プリントサービス１０５用のライセンス情報はプリントサービスライセンス情報１３１５が管理する。ライセンス情報にはそのサービスを最大何人のユーザーが利用できるかのライセンス数の情報や、ライセンスの種別や有効期限等が管理されている。また、無償連携サービス１０４用のライセンス情報はテナント内では管理しない。
【００２８】
次に、有償連携サービス１０３の利用手順について説明する。
販売者ユーザーは、クラウドサービスにログインし、ライセンス管理サービス１０７のテナント管理１１１１を用いて顧客用のテナント１３０１の作成と顧客先管理者用のユーザーのアカウントの作成とを行う。テナント１３０１を作成された後、そのテナント１３０１に対してライセンスが設定される。
顧客先管理者ユーザーは、クラウドサービスにログインし、ライセンス管理サービス１０７のユーザー管理１１１２を用いて自身が所属するテナントに一般ユーザーを作成する。その際、ユーザー管理１１１２は、認証・認可サービス１０６の外部Ｉ／Ｆ４１４を介して認証・認可サービス１０６のユーザー管理４１６にアクセスする。ユーザー管理４１６は、ユーザー管理テーブル４２１に一般ユーザーを追加する。顧客先管理者ユーザーは、作成したユーザーに対してユーザー管理１１１２を用いて有償連携サービス１０３のロールを割り当てることで、一般ユーザーは有償連携サービス１０３を利用可能となる。その際、ユーザー管理１１１２は、ユーザー作成の際と同様に認証・認可サービス１０６の外部Ｉ／Ｆ４１４を介して認証・認可サービス１０６のユーザー管理４１６にアクセスする。ユーザー管理４１６は、ユーザー管理テーブル４２１の所持ロール５１６に有償連携サービス１０３のロールを設定する。
【００２９】
次に、一般ユーザーが有償連携サービス１０３からプリントサービス１０５を介してファイルサーバーＡ１０１にあるファイルを印刷する手順について説明する。一般ユーザーがＷｅｂブラウザ３０１を用いてクラウドシステムにログインした後、有償連携サービス１０３のＷｅｂアプリケーション１００２にアクセスすると、認可トークン発行モジュール４１７にリダイレクトされ、認可トークンが発行される。トークン発行の際には、トークンテーブル４２２に発行されたトークンに関するエントリが追加される。スコープ６０２には何も設定されず（ｎｕｌｌが設定される）、ユーザーＩＤ６０３には一般ユーザーのユーザーＩＤが設定される。なお、発行された認可トークンは、有償連携サービス１０３に通知される。
一般ユーザーは、Ｗｅｂブラウザ３０１からプリント機能１０１１を用いてプリントを実行する。プリント機能１０１１は、ファイルサーバーＡ１０１のリクエスト処理部１６０２に対してファイル一覧取得要求を行う。リクエスト処理部１６０２は、要求をファイル一覧取得１６１３に要求を送信し、データ格納部１６０１に存在するファイル一覧を取得する。リクエスト処理部１６０２は、ファイル一覧をプリント機能１０１１に対して返却する。するとＷｅｂアプリケーション１００２は、ファイルサーバーＡ１０１に含まれるファイル一覧のＷｅｂ画面を生成し、Ｗｅｂブラウザ３０１にレスポンスを送信する。
【００３０】
一般ユーザーは、Ｗｅｂブラウザ３０１に表示されたファイル一覧の中からプリントするファイルを選択すると、ファイル印刷要求がＷｅｂブラウザ３０１からＷｅｂアプリケーション１００２に送信される。するとプリント機能１０１１は、プリントサービス１０５の有償連携サービス専用ＵＲＬ９１１に対して印刷データ１５０１を送信し、これを、有償連携サービス専用ＵＲＬ９１１を介してＷｅｂアプリケーション９０２が受信する。印刷データ１５０１は、ファイルサーバーＡ１０１に格納されている印刷対象のファイルのＵＲＬ１５１１と認可トークン１５１２とを持つ。同時にＷｅｂアプリケーション１００２は、ジョブを受け付けた旨を一般ユーザーに提示するＷｅｂ画面を生成し、Ｗｅｂブラウザ３０１に返却する。図１６は、印刷データの一例を示す図である。段落００２９において上述したように有償連携サービスは、認証・認可サービスが生成した認可トークンを受信しているため、図１６の認可トークンを含む印刷データを生成できる。
Ｗｅｂアプリケーション９０２は、受信した印刷データ１５０１をバックエンド９０３に送信する。バックエンド９０３は、受信した印刷データ１５０１と有償連携サービス専用ＵＲＬ９１１とから認可情報８０１を作成し、認証エージェント９０１に送信する。
【００３１】
認証エージェント９０１は、認可モジュール４１３に対して、認可トークン１５１２に紐づいた一般ユーザーの有償連携サービス利用許可を求める要求を、認可情報８０１と共に送信する。認可モジュール４１３では、図９のフローチャートに従い、まずステップＳ１４０２でＮｏ（スコープが設定されていない）と判定される。次にステップＳ１４０７でＹｅｓ（ロールが割り当てられている）と判定され、ステップＳ１４０８で認可モジュール４１３は利用を許可し、この判定結果を認証エージェント９０１に返却する。認証エージェント９０１は、バックエンド９０３に判定結果を返却する。判定結果が非許可だった場合はエラー画面が表示される。
続いてバックエンド９０３は、ファイルサーバーＡ１０１のリクエスト処理部１６０２に対してＵＲＬ１５１１のファイル取得要求を送信する。リクエスト処理部１６０２はファイル取得１６１２に対してこの要求を送信し、ファイル取得１６１２は、データ格納部１６０１からファイルを取得する。リクエスト処理部１６０２は、バックエンド９０３に対して取得したファイルを返却し、バックエンド９０３は、出力機器に対してファイルを送信する。
以上が、一般ユーザー（有償ユーザー）が有償連携プリントサービスを利用する手順である。
【００３２】
次に、無償連携サービス１０４の利用手順について説明する。
一般ユーザーが無償連携サービス１０４からプリントサービス１０５を介してファイルサーバーＢ１０２にあるファイルを印刷する手順ついて説明する。一般ユーザーは、クライアント端末１１３〜１１６のＷｅｂブラウザ３０１を用いてクラウドシステムにログインした後、無償連携サービス１０４にアクセスすると、認可トークン発行モジュール４１７にリダイレクトされ、認可トークンが発行される。このとき、トークンテーブル４２２に発行されたトークンに関するエントリが追加される。スコープ６０２には"有償連携サービス"が設定され、ユーザーＩＤ６０３には一般ユーザーのユーザーＩＤが設定される。なお、発行された認可トークンは、無償連携サービス１０４に通知される。
一般ユーザーは、Ｗｅｂブラウザ３０１からプリント機能１０１１を用いてプリントを実行する。プリント機能１０１１は、ファイルサーバーＢ１０２のリクエスト処理部１６０２に対してファイル一覧取得要求を行う。リクエスト処理部１６０２は、ファイル一覧取得１６１３に要求を送信し、データ格納部１６０１に存在するファイル一覧を取得する。リクエスト処理部１６０２は、ファイル一覧をプリント機能１０１１に対して返却する。すると、Ｗｅｂアプリケーション１００２は、ファイルサーバーＢ１０２に含まれるファイル一覧のＷｅｂ画面を生成し、Ｗｅｂブラウザ３０１にレスポンスを送信する。
【００３３】
一般ユーザーは、Ｗｅｂブラウザ３０１に表示されたファイル一覧の中からプリントするファイルを選択すると、ファイル印刷要求がＷｅｂブラウザ３０１からＷｅｂアプリケーション１００２に送信される。すると、プリント機能１０１１は、プリントサービス１０５の無償連携サービス専用ＵＲＬ９１２に対して印刷データ１５０１を送信し、これを、無償連携サービス専用ＵＲＬ９１２を介してＷｅｂアプリケーション９０２が受信する。印刷データ１５０１は、ファイルサーバーＢ１０２に格納されている印刷対象のファイルのＵＲＬ１５１１と認可トークン１５１２とを持つ。段落００３２において上述したように無償連携サービスは、認証・認可サービスが生成した認可トークンを受信しているため、認可トークンを含む印刷データを生成できる。同時に、Ｗｅｂアプリケーション１００２は、ジョブを受け付けた旨を一般ユーザーに提示するＷｅｂ画面を生成し、Ｗｅｂブラウザ３０１に返却する。
Ｗｅｂアプリケーション９０２は、受信した印刷データ１５０１をバックエンド９０３に送信する。バックエンド９０３は、受信した印刷データ１５０１と無償連携サービス専用ＵＲＬ９１２とから認可情報８０１を作成し、認証エージェント９０１に送信する。
【００３４】
認証エージェント９０１は、認可モジュール４１３に対して、認可トークン１５１２に紐づいた一般ユーザーの無償連携サービス利用許可を求める要求を、認可情報８０１と共に送信する。認可モジュール４１３では、図９のフローチャートに従い、まずステップＳ１４０２でＹｅｓ（スコープが設定されている）と判定される。次にステップＳ１４０３でＹｅｓ（スコープ８１２が認可トークン１５１２のスコープに定義されている）と判定される。次にステップＳ１４０５でＮｏ（ロールを参照する必要がない）と判定され、ステップＳ１４０８で認可モジュール４１３は、利用を許可し、この判定結果を認証エージェント９０１に返却する。認証エージェント９０１は、バックエンド９０３に判定結果を返却する。判定結果が非許可だった場合はエラー画面が表示される。
続いてバックエンド９０３は、ファイルサーバーＢ１０２のリクエスト処理部１６０２に対してＵＲＬ１５１１のファイル取得要求を送信する。リクエスト処理部１６０２は、ファイル取得１６１２に対してこの要求を送信し、ファイル取得１６１２は、データ格納部１６０１からファイルを取得する。リクエスト処理部１６０２は、バックエンド９０３に対して取得したファイルを返却し、バックエンド９０３は、出力機器に対してファイルを送信する。
以上が、一般ユーザー（無償ユーザー）が無償連携プリントサービスを利用する手順である。
【００３５】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３６】
以上、上述した各実施形態によれば、無償サービスのロールをユーザーに割り当てないようにすることで、クラウドサービス全体のパフォーマンスを低下させることなく、有償ユーザー、無償ユーザーを統一的な仕組みでアクセス制御することができる。
したがって、クラウドサービスと連携するサービスが複数存在する場合にも、クラウドサービス全体のパフォーマンスを低下させない、統一的なライセンス管理の仕組みを実現することができる。
【００３７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
0005743786.tif 000002
【図２】
0005743786.tif 000003
【図３】
0005743786.tif 000004
【図４】
0005743786.tif 000005
【図５】
0005743786.tif 000006
【図６】
0005743786.tif 000007
【図７】
0005743786.tif 000008
【図８】
0005743786.tif 000009
【図９】
0005743786.tif 000010
【図１０】
0005743786.tif 000011
【図１１】
0005743786.tif 000012
【図１２】
0005743786.tif 000013
【図１３】
0005743786.tif 000014
【図１４】
0005743786.tif 000015
【図１５】
0005743786.tif 000016
【図１６】
0005743786.tif 000017