説明

サーバー装置、情報処理方法及びプログラム

【課題】クラウドサービスと連携するサービスが複数存在する場合にも、クラウドサービス全体のパフォーマンスを低下させない、統一的なライセンス管理の仕組みを実現することを目的とする。
【解決手段】ユーザーのロールと、許可トークンが持っている権限であるスコープと、に基づいてアクセス制御することによって課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバー装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年インターネットにおいて、様々なクラウドサービスが提供されている。中には、複数のクラウドサービス同士が連携して、新たなサービスを提供するケースも存在する。
これら個々のサービス又はそれらを連携したサービスには、ID・パスワードの維持管理、アクセス制御といったセキュリティ対策のための認証機構が備えられている場合が多い。この際、ユーザーは利用するサービスのライセンスのみを購入し、サービスの利用を行うことが一般的であり、ユーザーがサービスを利用するライセンスを持っているかどうかを認証機構が確認する。特許文献1には、様々なサービスの認証とライセンスの管理とを行うサービスの運用方法が開示されている。このサービスでは、サービス毎に管理されたライセンス情報に基づきアクセス制御を行い、サービスの利用可否をサービス単位で制御することが行われている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−333928号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
既存のクラウドサービスAから、クラウドサービスAと他サービスbが連携した新たな有償サービスBと、クラウドサービスAと他サービスcが連携した新たな無償サービスCと、の2つが提供される場合を考える。
従来のライセンス管理の仕組みを踏襲すると、有償サービスBを利用するユーザーに対しては有償サービスB専用のライセンスを発行し、アクセス制御することで、ライセンスを持っていないユーザーの利用を防止する必要がある。一方、無償サービスCの場合にも、有償サービスBの場合と同様に無償サービスC専用のライセンスを発行し検証することで、連携先の他サービスcが信頼できるサービスであることを確認する必要がある。
しかしながら、サーバー使用等の運用費をユーザーから回収することのできない無償サービスに対して専用ライセンスを用意し、それを各ユーザーに割り当てること、及び割り当て管理を行うことは運用面での負担が大きい。また、ユーザーが無償サービスを利用する場合もライセンスの検証を行うのでクラウドサービス全体のパフォーマンスが低下する。
【0005】
本発明はこのような問題点に鑑みなされたもので、クラウドサービスと連携するサービスが複数存在する場合にも、クラウドサービス全体のパフォーマンスを低下させない、統一的なライセンス管理の仕組みを実現することを目的とする。
【課題を解決するための手段】
【0006】
そこで、本発明は、認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得手段と、前記取得手段で取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定手段と、前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可手段と、前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得手段と、前記可否情報取得手段で取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可手段と、を有する
【発明の効果】
【0007】
本発明によれば、クラウドサービスと連携するサービスが複数存在する場合にも、クラウドサービス全体のパフォーマンスを低下させない、統一的なライセンス管理の仕組みを実現することができる。
【図面の簡単な説明】
【0008】
【図1】クラウドシステムのシステム構成の一例を示す図である。
【図2】サービス群、クライアント端末を実行するコンピューターのハードウェア構成の一例を示す図である。
【図3】クライアント端末の機能構成の一例を示す図である。
【図4】認証・認可サービスの機能構成の一例を示す図である。
【図5】ユーザー管理テーブルで管理するデータの一例を示す図である。
【図6】トークンテーブルで管理するデータの一例を示す図である。
【図7】ロール参照テーブルで管理するデータの一例を示す図である。
【図8】認可情報の一例を示す図である。
【図9】認可トークン検証の情報処理の一例を示す図である。
【図10】プリントサービスの機能構成の一例を示す図である。
【図11】スコープ管理テーブルの一例を示す図である。
【図12】ファイルサーバーA、ファイルサーバーBの機能構成の一例を示す図である。
【図13】有償連携サービス、無償連携サービスの機能構成の一例を示す図である。
【図14】ライセンス管理サービスの機能構成の一例を示す図である。
【図15】テナント構造を示す模式図である。
【図16】印刷データの一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面に基づいて説明する。
【0010】
<実施形態1>
図1は、クラウドシステムのシステム構成の一例を示す図である。
ファイルサーバーA101、ファイルサーバーB102、有償連携サービス103、無償連携サービス104、プリントサービス105、認証・認可サービス106、ライセンス管理サービス107、クライアント端末113〜116は、ネットワーク109〜111を介して接続されている。
クライアント端末113〜116は、1台以上接続されていることを仮定している。
ネットワーク109〜111は、例えば、イントラネットやインターネット等のLAN、WAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等の何れかである。又は、ネットワーク109〜111は、これらの組み合わせによって実現される、所謂、通信ネットワークである。
ネットワーク109〜111は、データの送受信が可能であればよい。
一般的なクラウドサービスでは、ネットワーク109は、インターネットとなる。また、ネットワーク110、111は、企業内ネットワークやサービスプロバイダーのネットワークとなる。
【0011】
有償連携サービス103、無償連携サービス104、プリントサービス105、認証・認可サービス106、ライセンス管理サービス107は、一般的にサーバーコンピューター上にて実行される。これらサービス群がユーザーに対してクラウドサービスを提供するので、本実施形態では各サーバーをサービスと記載する。
クライアント端末113〜116は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、PDA(パーソナルデータアシスタント)等からなるが、プログラム実行環境が内蔵された携帯電話であってもよい。クライアント端末113〜116は、Webブラウザ(インターネットブラウザ、WWWブラウザ、World Wide Webの利用に供するブラウザ)等のプログラムの実行環境が内蔵されている。
ファイルサーバーA101、ファイルサーバーB102は一般にサーバーコンピューター上にて実行されており、必要に応じて電子データを保存、削除、取得する機能を有している。
【0012】
図2は、サービス群103〜107、クライアント端末113〜116を実行するコンピューターのハードウェア構成の一例を示す図である。
Central Processing Unit(CPU)202は、装置全体の制御を行う。CPU202はハードディスク(HDD)205に格納されているアプリケーションプログラム、OS等を実行する。また、CPU202は、Randam Access Memory(RAM)203にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
Read Only Memory(ROM)204は、記憶手段であり、内部には、基本I/Oプログラム等の各種データを記憶する。
RAM203は、一時記憶手段であり、CPU202の主メモリ、ワークエリア等として機能する。
HDD205は、外部記憶手段の一つであり、大容量メモリとして機能し、Webブラウザ等のアプリケーションプログラム、サービス群のプログラム、OS、関連プログラム等を格納している。
【0013】
ディスプレイ206は、表示手段であり、キーボード207から入力したコマンド等を表示する。
インターフェース208は、外部装置I/Fであり、プリンター、USB機器、周辺機器を接続する。
キーボード207は、指示入力手段である。
システムバス201は、装置内におけるデータの流れを司るものである。
ネットワークインターフェースカード(NIC)209は、ネットワーク109〜111を介して外部装置とのデータのやり取りを行う。
なお、上記コンピューターの構成はその一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM204、RAM203、HDD205等で変更することもできる。
サーバー(又はサービス)のCPUがサーバー(又はサービス)のHDD等に記憶されているプログラムに基づき処理を実行することによって、サーバー(又はサービス)の機能が実現される。クライアント端末のCPUも同様の処理を実行する。
【0014】
図3は、クライアント端末113〜116の機能構成の一例を示す図である。
クライアント端末113〜116は、Webブラウザ301を利用し、サービス群103〜107が提供する各種Webアプリケーションへのリクエストの送信や、レスポンスの表示等を行う。クラウドサービスを利用するユーザーは、クライアント端末113〜116のWebブラウザ301を介して、クラウドサービスを利用する。
続いて、クラウドサービスを提供する有償連携サービス103、無償連携サービス104、プリントサービス105、認証・認可サービス106、ライセンス管理サービス107の各サービスに関して説明する。
初めに、図4〜図9を用いて、認証・認可サービス106に関して説明する。認証・認可サービス106は、連携サービスも含めた、クラウドサービス全体の認証・認可を司るサービスである。
【0015】
図4は、認証・認可サービス106の機能構成の一例を示す図である。
認証・認可アプリケーション401は、認証機能を提供する。
データベース402は、ユーザーIDやパスワード、ユーザーの属性情報や認可情報等を管理しており、認証・認可アプリケーション401にて各種機能を実現するためのデータ管理を行う。
ユーザー管理テーブル421は、ユーザーの各種情報を管理するテーブルである。図5は、ユーザー管理テーブル421で管理するデータの一例を示す図である。
ユーザーID511は、ユーザーをシステムで一意に識別する情報であり、ログイン時に入力するIDである。
パスワード512は、ユーザーがシステムにログインする際に利用するパスワードの情報である。パスワードは一般的には、パスワード文字列をそのまま格納するのではなく、ハッシュ化して格納する等、セキュリティ対策されることが一般的である。
テナントID513は、ユーザーが所属するテナントを一意に識別する情報である。ここでいうテナントとは、顧客がクラウドサービスを利用・管理する単位である。クラウドサービスでは、1つのシステムで複数のテナントを管理している。ユーザー企業と契約を行った場合、その企業毎にテナントが結び付けて管理され、その顧客のデータも顧客のテナント毎に管理される。つまり、そのユーザーが所属する企業単位で管理されている状態を、テナントで管理していると称する。このテナントの概念により、ユーザー企業はあたかも別々のシステム上で提供されている自分自身だけの為のサービスを利用しているのと同じようにクラウドサービスを利用できる。
姓514、名515は、ユーザーが任意に入力する情報である。認証・認可サービス106は、姓514、名515でユーザーの名前を管理できる。
所持ロール516は、ユーザーに割り当てられているロールID一覧である。ここでいうロールとは、クラウドサービスにユーザーがアクセスするための権限を管理する概念である。ユーザー管理テーブルは、ユーザー管理データの一例である。
【0016】
トークンテーブル422は、各認可トークンがどのようなスコープを持ち、どのユーザーに対して発行されたものかを管理している。認可トークンは、アクセストークンとも呼ばれ、システムにログインしたユーザーに対してシステムから与えられる、ユーザー識別情報や権限が記述されたデータ構造のことである。ユーザーがファイルやサービス等にアクセスする際、ユーザーが持つ認可トークンがファイルやサービスにアクセスする権限を持っているかが照合され、アクセスの可否が決定される。図6は、トークンテーブル422で管理するデータの一例を示す図である。トークンテーブルで管理されている1レコードが、認可トークンとなる。また、スコープとは認可トークンが持っている権限であり、スコープを設定することでユーザーの振る舞いを制限することができる。例えば、レコード610は、トークンIDが「as234sfd5」の認可トークンは「user1」に対して発行されたものであり、そのスコープは「無償連携サービス」に限定されたものであることを示している。トークンIDは、トークン識別情報の一例である。トークンテーブルは、トークンデータの一例である。
ロール参照テーブル423は、トークンテーブル422で指定される各スコープ602がロールを参照する必要があるか否かを管理したものである。図7は、ロール参照テーブル423で管理するデータの一例を示す図である。レコード711は、認可トークンのスコープが有償連携サービスの場合は、ロール参照テーブル423を参照し、認可トークンに紐づいたユーザーに有償連携サービスを利用する権限があるかを参照する必要があることを示している。ロール参照テーブルは、ロール参照データの一例である。ロール参照は、可否情報の一例である。
【0017】
ユーザー管理416では、クラウドサービスを利用可能なユーザーを管理する。各ユーザーの情報には、ユーザーID、パスワード、ユーザーの名前等の情報や、ユーザーがどのテナントに所属するかのテナントID、そのユーザー保持しているロール情報等の設定が保持されている。
ロール管理415では、クラウドサービスにユーザーがアクセスするための権限であるロールを管理する。例えば、ロール管理415は、「プリントユーザー」「有償連携サービス」等、ロールを定義する。
スコープ管理418では、ロール参照テーブル423を管理する。新たにクラウドサービスにサービスを追加する場合、スコープ管理418は、ロール参照テーブル423にエントリを追加する。
【0018】
ログインアプリケーション411は、ユーザーがクラウドサービスにログインする機能を提供するためのWebアプリケーションである。クライアント端末113〜116のWebブラウザ301からのリクエストを受信したログインアプリケーション411は、ユーザーがWebブラウザに入力したユーザーIDやパスワード等の認証情報を基にログイン処理を実行する。
ログイン処理では、ログインアプリケーション411が認証モジュール412に対して、ユーザーの認証情報を通知する。認証モジュール412は、通知されたユーザー認証情報を基にデータベースに登録されているユーザーIDとパスワードとを照合し、認証処理を実施し、ログインアプリケーション411に結果を返す。ログインアプリケーション411は、認証結果を基に、Web画面を生成しWebブラウザ301にレスポンスを送信する。
外部I/F414は、後述する認証エージェント901からの処理依頼を処理するためのI/Fであり、認証・認可サービス106の機能を外部から呼び出す。
認可トークン発行モジュール417は、認証に成功したログインユーザーに対して認可トークンを発行し、トークンテーブル422にエントリを追加する。トークンID601は、文字列から構成される。また、ユーザーID603は、ログインユーザーのユーザーIDが割り当てられる。
【0019】
認可モジュール413は、クラウドサービスを利用するユーザーがどのサービスにアクセスできるかといった認可の機能を実現する。図8は、認可情報の一例を示す図である。認可モジュール413は、認可トークンのトークンID811と利用したいスコープ812との2つを含む認可情報801を受け取り、トークンID811に紐づいたユーザーがスコープ812に指定されたサービスを利用可能かどうかの検証を行う。図9は、認可トークン検証の情報処理の一例を示す図である。なお、後述するように本願ではプリントサービスが認可情報801を生成する。
認可モジュール413は、ステップS1401において、トークンテーブルを参照し、受信した認可情報に含まれるトークンIDに対するトークンID811に紐づけられたスコープとユーザーIDとを取得する。
認可モジュール413は、ステップS1401でトークンテーブルから取得されたスコープにnull以外のクラウドサービスを識別する識別情報が設定されているかどうかをステップS1402で判定する。認可モジュール413は、ステップS1402でスコープにクラウドサービスを識別する識別情報が設定されていると判定した場合、識別情報で識別されるクラウドサービスがスコープ812に定義されているものを含むかどうかをステップS1403で判定する。
【0020】
認可モジュール413は、ステップS1403でスコープ812に定義されていないと判定した場合、ステップS1409において、この認可情報をサービス利用非許可と判定する。認可モジュール413は、ステップS1403でスコープ812に定義されていると判定した場合、ステップS1404に進む。ステップS1404において、認可モジュール413は、ロール参照テーブルを参照し、ステップS1401で得られたスコープがロールを参照する必要があるか否かをステップS1405で判定する。より具体的に説明すると、認可モジュール413は、ステップS1401で得られたスコープに基づいて、ロール参照テーブル423を参照し、前記スコープに紐づけられたロールを参照する必要があるか否かのロール参照を取得する(可否情報取得)。
認可モジュール413は、ステップS1405でロールを参照する必要がある場合、又はステップS1402でスコープが設定されていない場合、ステップS1406において、ユーザー管理テーブル421を参照する。
そして、認可モジュール413は、ステップS1407において、ステップS1401で得られたユーザーIDのユーザーにスコープ812に対応するロールが割り当てられているか否かを判定する。より具体的に説明すると、認可モジュール413は、ユーザーIDに基づいて、ユーザー管理テーブル421を参照し、前記ユーザーIDに紐づけられた所持ロールを取得する(ロール取得)。そして、認可モジュール413は、取得した所持ロールにスコープ812に定義されているクラウドサービスにアクセスするための権限があるか否か(つまり、スコープ812に対応するロールがユーザーに割り当てられているか否か)を判定する。
認可モジュール413は、ステップS1407でロールが割り当てられていない場合、ステップS1409でこの認可情報をサービス利用非許可と判定する。認可モジュール413は、ステップS1405でロールを参照する必要がない場合、又はステップS1407でロールが割り当てられている場合は、ステップS1408においてサービス利用を許可する。
以上のように、図9を実施することで無償連携サービスを利用する場合であっても、S1403、S1405の処理を行うことで、認可情報に含まれる無償連携サービスが信頼できるサービスであると確認できる。また、その確認のために、例えば、各ユーザーに専用ライセンスを割り当てる必要もないので運用の負担が大きくなることもない。
【0021】
図10、図11を用いて、プリントサービス105に関して説明する。図10は、プリントサービス105の機能構成の一例を示す図である。プリントサービス105は、プリント機能を顧客に提供する。顧客がプリントサービス105を利用するのは、有償連携サービス103が提供する機能を介してプリントを行う場合、無償連携サービス104を介してプリントを行う場合がある。
Webアプリケーション902は、有償連携サービス103又は無償連携サービス104からのリクエストを受信する。Webアプリケーション902は、有償連携サービス103からのリクエストを受け付ける有償連携サービス専用URL911と、無償連携サービス104からのリクエストを受け付ける無償連携サービス専用URL912と、を有する。連携サービスが追加された場合には対応するサービス専用のURLが追加される。
有償連携サービス専用URL911又は無償連携サービス専用URL912を介して、対応するサービスからリクエストを受信したWebアプリケーション902は、そのリクエストの内容に応じた処理をバックエンド903に依頼する。バックエンド903は、サービスを実現するためのプリント実行等の機能を提供する。バックエンド903は、Webアプリケーション902から依頼された処理を実行し、その結果をWebアプリケーション902に返す。Webアプリケーション902は、バックエンド903の処理結果を基に要求された結果を、有償連携サービス103又は無償連携サービス104に返す。
【0022】
データベース904は、プリントサービス105の各種機能を使うために必要な情報を保持する。図11は、スコープ管理テーブル921の一例を示す図である。スコープ管理テーブル921は、Webアプリケーション902へのリクエストを受け付けるURLとそれに対応するスコープとを管理するテーブルである。例えば、レコード1211は「http://fee−based_service/*」に対するアクセスのスコープが有償プリントサービスであることを示している。リクエストを受け付けるURLを追加された場合はスコープ管理テーブル921を更新して対応するスコープを設定する必要がある。
プリントサービス105は、有償連携サービス103又は無償連携サービス104からWebアプリケーション902へのリクエストを受け付けると、認証・認可サービス106と連携することでユーザーへのプリントサービス105へのアクセスの認可を実行する。有償連携サービス103又は無償連携サービス104からのアクセスには認可トークンが必要である。
プリントサービス105は、Webアプリケーション902へサービスがアクセスしたURLからスコープ管理テーブル921を参照して得られるスコープと認可トークンとの2つを認証・認可サービス106の外部I/F414に送信する。認証・認可サービス106は、認可モジュール413の機能にて認証・認可処理を行い、その結果をプリントサービス105へ応答する。プリントサービス105は、認証・認可処理が正常に終了した場合は処理を継続し、認証・認可処理が失敗した場合にはエラー画面を表示する。
以上の処理によって、プリントサービス105の利用制御を行っている。
【0023】
なお、上記、認証・認可処理は認証エージェント901で行う構成をとる事もできる。例えば、認証エージェント901は、有償連携サービス103又は無償連携サービス104からWebアプリケーション902へのリクエストに割り込みを行い、認証・認可サービス106と連携する。このようにすることで、認証エージェント901は、ユーザーへのプリントサービス105へのアクセスの認可を実行する。有償連携サービス103又は無償連携サービス104からのアクセスには認可トークンが必要である。認証エージェント901は、Webアプリケーション902へサービスがアクセスしたURLからスコープ管理テーブル921を参照して得られるスコープと認可トークンとの2つを認証・認可サービス106の外部I/F414に送信し、認可トークンの検証を行う。認証・認可サービス106は、認可モジュール413の機能にて認証・認可処理を行い、その結果を認証エージェント901へ応答する。認証エージェントは、認証・認可処理が正常に終了した場合、リクエストをWebアプリケーション902へ送信し、認証・認可処理が失敗した場合、エラー画面を表示する。
以上の処理によって、プリントサービス105の利用制御を行っている。
【0024】
図12は、ファイルサーバーA101、ファイルサーバーB102の機能構成の一例を示す図である。
データ格納部1601は、ファイルを格納する部分であり、HDD等の外部記憶装置からなる。
リクエスト処理部1602は、外部からファイルサーバーA101、ファイルサーバーB102へのリクエストを処理する部分である。リクエスト処理部1602は、ファイル格納1611、ファイル取得1612、ファイル一覧取得1613の3つの機能がある。ファイル格納1611は、リクエスト処理部1602に対してファイル格納要求があった場合に、データ格納部1601に格納要求があったファイルを格納する。ファイル取得1612は、リクエスト処理部1602に対してファイル取得要求があった場合に、データ格納部1601に対して要求があったファイルがデータ格納部1601に存在するかどうかを確認し、存在する場合は該当ファイルを返却する。ファイル一覧取得1613は、リクエスト処理部1602に対してファイル一覧の取得要求があった場合に、データ格納部に存在するファイルのファイル名と対応するファイルのURLの一覧を返却する。
【0025】
図13は、有償連携サービス103、無償連携サービス104の機能構成の一例を示す図である。
有償連携サービス103は、ファイルサーバーA101からファイルを取得し、プリントサービス105を用いてファイルのプリントを行う有償のサービスである。また、無償連携サービス104は、ファイルサーバーB102からファイルを取得し、プリントサービス105を用いてファイルのプリントを行う無償のサービスである。
データ取得部1001は、有償連携サービス103の場合はファイルサーバーA101、無償連携サービス104の場合はファイルサーバーB102のリクエスト処理部1602に対してデータ取得要求を行い、ファイルを取得する部分である。
連携リクエスト送信部1003は、プリントサービス105に対してファイルの印刷要求を送信する部分である。連携リクエスト送信部1003は、有償連携サービス103の場合は有償連携サービス専用URL911に対して印刷要求を送信し、無償連携サービス104の場合は無償連携サービス専用URL912に対して印刷要求を送信する。Webアプリケーション1002及びプリント機能1011に関しては後述する。
【0026】
図14は、ライセンス管理サービス107の機能構成の一例を示す図である。
ライセンス管理サービス107は、有償サービスについてのライセンス管理やユーザー管理といったビジネスインフラを提供するためのサービスである。
Webアプリケーション1102は、クライアント端末113〜116のWebブラウザ301からのリクエストを受信する。リクエストを受信したWebアプリケーション1102は、そのリクエストの内容に応じた処理を実施し、処理結果となるWeb画面を生成し、Webブラウザ301にレスポンスを送信する。
Webアプリケーション1102は、テナント管理1111、ユーザー管理1112の機能を提供する。各機能に関しては後述する。
データベース1103は、Webアプリケーション1102で利用するデータを管理している。
認証エージェント1101は、認証エージェント901と同様で、認証・認可サービス106と連携し、ライセンス管理サービス107のWebアプリケーション1102のアクセス制御を行っている。
【0027】
図15は、テナント構造を示す模式図である。
クラウドサービスは、テナント1301の単位で顧客のクラウドサービスの利用を管理する。したがって、テナント1301は顧客ごとに存在する。テナント1301には、ユーザー1311〜1313が所属しており、各ユーザーはテナント1301内で一意に識別される。なお、テナント1301は、複数のライセンス情報を保持できる。ライセンス情報1つに対してサービス1つが紐づく。本実施形態では、有償連携サービス103用のライセンス情報は、有償連携サービスライセンス情報1314が管理し、プリントサービス105用のライセンス情報はプリントサービスライセンス情報1315が管理する。ライセンス情報にはそのサービスを最大何人のユーザーが利用できるかのライセンス数の情報や、ライセンスの種別や有効期限等が管理されている。また、無償連携サービス104用のライセンス情報はテナント内では管理しない。
【0028】
次に、有償連携サービス103の利用手順について説明する。
販売者ユーザーは、クラウドサービスにログインし、ライセンス管理サービス107のテナント管理1111を用いて顧客用のテナント1301の作成と顧客先管理者用のユーザーのアカウントの作成とを行う。テナント1301を作成された後、そのテナント1301に対してライセンスが設定される。
顧客先管理者ユーザーは、クラウドサービスにログインし、ライセンス管理サービス107のユーザー管理1112を用いて自身が所属するテナントに一般ユーザーを作成する。その際、ユーザー管理1112は、認証・認可サービス106の外部I/F414を介して認証・認可サービス106のユーザー管理416にアクセスする。ユーザー管理416は、ユーザー管理テーブル421に一般ユーザーを追加する。顧客先管理者ユーザーは、作成したユーザーに対してユーザー管理1112を用いて有償連携サービス103のロールを割り当てることで、一般ユーザーは有償連携サービス103を利用可能となる。その際、ユーザー管理1112は、ユーザー作成の際と同様に認証・認可サービス106の外部I/F414を介して認証・認可サービス106のユーザー管理416にアクセスする。ユーザー管理416は、ユーザー管理テーブル421の所持ロール516に有償連携サービス103のロールを設定する。
【0029】
次に、一般ユーザーが有償連携サービス103からプリントサービス105を介してファイルサーバーA101にあるファイルを印刷する手順について説明する。一般ユーザーがWebブラウザ301を用いてクラウドシステムにログインした後、有償連携サービス103のWebアプリケーション1002にアクセスすると、認可トークン発行モジュール417にリダイレクトされ、認可トークンが発行される。トークン発行の際には、トークンテーブル422に発行されたトークンに関するエントリが追加される。スコープ602には何も設定されず(nullが設定される)、ユーザーID603には一般ユーザーのユーザーIDが設定される。なお、発行された認可トークンは、有償連携サービス103に通知される。
一般ユーザーは、Webブラウザ301からプリント機能1011を用いてプリントを実行する。プリント機能1011は、ファイルサーバーA101のリクエスト処理部1602に対してファイル一覧取得要求を行う。リクエスト処理部1602は、要求をファイル一覧取得1613に要求を送信し、データ格納部1601に存在するファイル一覧を取得する。リクエスト処理部1602は、ファイル一覧をプリント機能1011に対して返却する。するとWebアプリケーション1002は、ファイルサーバーA101に含まれるファイル一覧のWeb画面を生成し、Webブラウザ301にレスポンスを送信する。
【0030】
一般ユーザーは、Webブラウザ301に表示されたファイル一覧の中からプリントするファイルを選択すると、ファイル印刷要求がWebブラウザ301からWebアプリケーション1002に送信される。するとプリント機能1011は、プリントサービス105の有償連携サービス専用URL911に対して印刷データ1501を送信し、これを、有償連携サービス専用URL911を介してWebアプリケーション902が受信する。印刷データ1501は、ファイルサーバーA101に格納されている印刷対象のファイルのURL1511と認可トークン1512とを持つ。同時にWebアプリケーション1002は、ジョブを受け付けた旨を一般ユーザーに提示するWeb画面を生成し、Webブラウザ301に返却する。図16は、印刷データの一例を示す図である。段落0029において上述したように有償連携サービスは、認証・認可サービスが生成した認可トークンを受信しているため、図16の認可トークンを含む印刷データを生成できる。
Webアプリケーション902は、受信した印刷データ1501をバックエンド903に送信する。バックエンド903は、受信した印刷データ1501と有償連携サービス専用URL911とから認可情報801を作成し、認証エージェント901に送信する。
【0031】
認証エージェント901は、認可モジュール413に対して、認可トークン1512に紐づいた一般ユーザーの有償連携サービス利用許可を求める要求を、認可情報801と共に送信する。認可モジュール413では、図9のフローチャートに従い、まずステップS1402でNo(スコープが設定されていない)と判定される。次にステップS1407でYes(ロールが割り当てられている)と判定され、ステップS1408で認可モジュール413は利用を許可し、この判定結果を認証エージェント901に返却する。認証エージェント901は、バックエンド903に判定結果を返却する。判定結果が非許可だった場合はエラー画面が表示される。
続いてバックエンド903は、ファイルサーバーA101のリクエスト処理部1602に対してURL1511のファイル取得要求を送信する。リクエスト処理部1602はファイル取得1612に対してこの要求を送信し、ファイル取得1612は、データ格納部1601からファイルを取得する。リクエスト処理部1602は、バックエンド903に対して取得したファイルを返却し、バックエンド903は、出力機器に対してファイルを送信する。
以上が、一般ユーザー(有償ユーザー)が有償連携プリントサービスを利用する手順である。
【0032】
次に、無償連携サービス104の利用手順について説明する。
一般ユーザーが無償連携サービス104からプリントサービス105を介してファイルサーバーB102にあるファイルを印刷する手順ついて説明する。一般ユーザーは、クライアント端末113〜116のWebブラウザ301を用いてクラウドシステムにログインした後、無償連携サービス104にアクセスすると、認可トークン発行モジュール417にリダイレクトされ、認可トークンが発行される。このとき、トークンテーブル422に発行されたトークンに関するエントリが追加される。スコープ602には"有償連携サービス"が設定され、ユーザーID603には一般ユーザーのユーザーIDが設定される。なお、発行された認可トークンは、無償連携サービス104に通知される。
一般ユーザーは、Webブラウザ301からプリント機能1011を用いてプリントを実行する。プリント機能1011は、ファイルサーバーB102のリクエスト処理部1602に対してファイル一覧取得要求を行う。リクエスト処理部1602は、ファイル一覧取得1613に要求を送信し、データ格納部1601に存在するファイル一覧を取得する。リクエスト処理部1602は、ファイル一覧をプリント機能1011に対して返却する。すると、Webアプリケーション1002は、ファイルサーバーB102に含まれるファイル一覧のWeb画面を生成し、Webブラウザ301にレスポンスを送信する。
【0033】
一般ユーザーは、Webブラウザ301に表示されたファイル一覧の中からプリントするファイルを選択すると、ファイル印刷要求がWebブラウザ301からWebアプリケーション1002に送信される。すると、プリント機能1011は、プリントサービス105の無償連携サービス専用URL912に対して印刷データ1501を送信し、これを、無償連携サービス専用URL912を介してWebアプリケーション902が受信する。印刷データ1501は、ファイルサーバーB102に格納されている印刷対象のファイルのURL1511と認可トークン1512とを持つ。段落0032において上述したように無償連携サービスは、認証・認可サービスが生成した認可トークンを受信しているため、認可トークンを含む印刷データを生成できる。同時に、Webアプリケーション1002は、ジョブを受け付けた旨を一般ユーザーに提示するWeb画面を生成し、Webブラウザ301に返却する。
Webアプリケーション902は、受信した印刷データ1501をバックエンド903に送信する。バックエンド903は、受信した印刷データ1501と無償連携サービス専用URL912とから認可情報801を作成し、認証エージェント901に送信する。
【0034】
認証エージェント901は、認可モジュール413に対して、認可トークン1512に紐づいた一般ユーザーの無償連携サービス利用許可を求める要求を、認可情報801と共に送信する。認可モジュール413では、図9のフローチャートに従い、まずステップS1402でYes(スコープが設定されている)と判定される。次にステップS1403でYes(スコープ812が認可トークン1512のスコープに定義されている)と判定される。次にステップS1405でNo(ロールを参照する必要がない)と判定され、ステップS1408で認可モジュール413は、利用を許可し、この判定結果を認証エージェント901に返却する。認証エージェント901は、バックエンド903に判定結果を返却する。判定結果が非許可だった場合はエラー画面が表示される。
続いてバックエンド903は、ファイルサーバーB102のリクエスト処理部1602に対してURL1511のファイル取得要求を送信する。リクエスト処理部1602は、ファイル取得1612に対してこの要求を送信し、ファイル取得1612は、データ格納部1601からファイルを取得する。リクエスト処理部1602は、バックエンド903に対して取得したファイルを返却し、バックエンド903は、出力機器に対してファイルを送信する。
以上が、一般ユーザー(無償ユーザー)が無償連携プリントサービスを利用する手順である。
【0035】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0036】
以上、上述した各実施形態によれば、無償サービスのロールをユーザーに割り当てないようにすることで、クラウドサービス全体のパフォーマンスを低下させることなく、有償ユーザー、無償ユーザーを統一的な仕組みでアクセス制御することができる。
したがって、クラウドサービスと連携するサービスが複数存在する場合にも、クラウドサービス全体のパフォーマンスを低下させない、統一的なライセンス管理の仕組みを実現することができる。
【0037】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。

【特許請求の範囲】
【請求項1】
認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得手段と、
前記取得手段で取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定手段と、
前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可手段と、
前記判定手段で、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得手段と、
前記可否情報取得手段で取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可手段と、
を有するサーバー装置。
【請求項2】
前記取得手段で取得されたスコープにクラウドサービスを識別する識別情報が設定されていない場合、前記取得手段で取得されたユーザー識別情報に基づいて、ユーザー識別情報とユーザーに割り当てられている、クラウドサービスにユーザーがアクセスするための権限であるロールとが紐づけられたユーザー管理データを参照し、前記取得手段で取得されたユーザー識別情報に紐づけられたロールを取得するロール取得手段を更に有し、
前記サービス利用許可手段は、更に、前記ロール取得手段で取得されたロールに基づいて、ユーザーに前記認可情報に含まれるスコープに定義されているクラウドサービスにアクセスするための権限がある場合、前記クラウドサービスの利用を許可する請求項1記載のサーバー装置。
【請求項3】
前記サービス利用非許可手段は、更に、前記ロール取得手段で取得されたロールに、前記認可情報に含まれるスコープに定義されているクラウドサービスにアクセスするための権限がない場合、前記クラウドサービスの利用を許可しない請求項2記載のサーバー装置。
【請求項4】
前記ロール取得手段は、更に、前記可否情報取得手段で取得された前記可否情報がロールを参照する必要があることを示している場合、前記取得手段で取得されたユーザー識別情報に基づいて、前記ユーザー管理データを参照し、前記取得手段で取得されたユーザー識別情報に紐づけられたロールを取得する請求項2又は3記載のサーバー装置。
【請求項5】
前記ユーザー管理データを管理するユーザー管理手段を更に有し、
前記ユーザー管理手段は、前記ユーザー管理データにデータを登録する際、有償ユーザーに対しては、ロールを割り当て、無償ユーザーに対しては、ロールを割り当てない請求項2乃至4何れか1項記載のサーバー装置。
【請求項6】
前記認可トークンを発行する認可トークン発行手段を更に有し、
前記認可トークン発行手段は、前記トークンデータにデータを登録する際、有償ユーザーに対しては、スコープにクラウドサービスを識別する識別情報を設定せず、無償ユーザーに対しては、スコープにクラウドサービスを識別する識別情報を設定する請求項1乃至5何れか1項記載のサーバー装置。
【請求項7】
サーバー装置が実行する情報処理方法であって、
認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得ステップと、
前記取得ステップで取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得ステップと、
前記可否情報取得ステップで取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可ステップと、
を含む情報処理方法。
【請求項8】
コンピューターに、
認可トークンのトークン識別情報と前記認可トークンの権限であるスコープとを含む認可情報を受け取ると、前記トークン識別情報に基づいて、トークン識別情報とスコープとユーザー識別情報とが紐づけられたトークンデータを参照し、前記認可情報に含まれるトークン識別情報に紐づけられたスコープ及びユーザー識別情報を取得する取得ステップと、
前記取得ステップで取得されたスコープにクラウドサービスを識別する識別情報が設定されている場合、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されているか否かを判定する判定ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていないと判定された場合、前記識別情報で識別されるクラウドサービスの利用を許可しないサービス利用非許可ステップと、
前記判定ステップで、前記識別情報で識別されるクラウドサービスが前記認可情報に含まれるスコープに定義されていると判定された場合、前記認可情報に含まれるスコープに基づいて、スコープとクラウドサービスにユーザーがアクセスするための権限であるロールを参照する必要があるか否かの情報とが紐づけられたロール参照データを参照し、前記認可情報に含まれるスコープに紐づけられたロールを参照する必要があるか否かの可否情報を取得する可否情報取得ステップと、
前記可否情報取得ステップで取得された前記可否情報がロールを参照する必要がないことを示している場合、前記識別情報で識別されるクラウドサービスの利用を許可するサービス利用許可ステップと、
を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2013−29994(P2013−29994A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−165634(P2011−165634)
【出願日】平成23年7月28日(2011.7.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】