説明

アクセス管理システム、アクセス管理方法、アクセス管理サーバ、連携サーバ、およびプログラム

【課題】無料のユーザアカウントを大量に登録されると、ユーザアカウント・データベースが肥大化し、性能を圧迫する、あるいはデータ管理コストが増大する。
【解決手段】アクセス管理サーバは、管理しているユーザアカウントに対応するトークンを発行する発行手段と、管理しているユーザアカウントのうち、予め定義された削除する条件を満たすユーザアカウントを削除するアカウント削除手段とを有し、連携サーバは、別のサーバから前記アクセス管理サーバに管理されたユーザアカウントに対応するトークンの取得を要求された際に、当該ユーザアカウントが前記アカウント削除手段にて削除されていない場合、前記ユーザアカウントに対応する発行済のトークンを取得し、当該ユーザアカウントが前記アカウント削除手段にてすでに削除されていた場合、当該ユーザアカウントを前記アクセス管理サーバに再び登録させ、再び登録させたユーザアカウントに対応して発行されたトークンを取得する取得手段を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オンラインプリントサービスシステムにおける、ユーザアカウントを効率的に管理するためのアクセス管理システム、アクセス管理方法、アクセス管理サーバ、連携サーバ、およびプログラムに関する。
【背景技術】
【0002】
近年、クラウドコンピューティングあるいはクラウドというキーワードがIT業界を中心に爆発的に広がっている。従来のコンピュータハードウェアとソフトウェアを購入・利用するモデルから、インターネット上のサービスを購入・利用するモデルへのシフトが加速している。
【0003】
このようなサービスモデルとして例えば、SaaS(Software as a Service)があり、サービス提供者がインターネット経由でソフトウェアを提供し、サービス利用者は主にブラウザを使用して目的のソフトウェアを利用する。サービス提供者は、インターネット上にソフトウェアを提供するためのWebサイトを構築すればよく、ソフトウェアを配布する必要がない。サービス利用者の側では、専用のソフトウェアを自分のコンピュータにインストールする必要がなく、一般的にはブラウザおよびそのプラグインのみで目的のソフトウェアを利用可能である。
【0004】
クラウドで提供されるサービスを利用するためには、利用者のユーザアカウントを登録するのが一般的である。利用者ごとに、ユーザアカウントを使用してサービスにログインし、サービスを利用する。ユーザアカウントの登録・無効化・削除などの管理は、管理者が手動で行うと大変手間がかかる。特にユーザアカウントの削除は、使用されていないユーザアカウントの不正使用を防止するなどの理由から、重要な管理作業である。
【0005】
特許文献1によれば、ユーザIDの状態として、「通常」「削除」に加え、「予定削除」という新しい状態を設けることを提案している。予定削除状態にセットされたユーザIDは、一時的に使用不可となり、有効期限が経過した時点で物理的に削除される。この予定削除状態の導入により、物理的に削除されるまでの猶予期間を与えることができ、必要に応じてユーザIDを再度有効化することが可能である。また、将来、再度ユーザIDを再利用する可能性がある場合、適切な有効期限を設定して予定削除状態にセットすれば、ユーザIDを再度作成し直すことなく、再度有効化可能となる。これにより、ユーザIDの削除という管理作業に柔軟性を与え、管理者の余計な手間を減らす効果を提供する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2011−18156号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の先行技術では、同じユーザIDを再利用する場合、以下の2つの課題がある。1つ目は、有効期限を経過してしまった場合は、ユーザIDの新規作成し直しが必要となる。この場合、管理者あるいはユーザ本人に新規作成作業の手間が発生してしまう。2つ目は、「予定削除」状態においては、再度有効化して「通常」状態へ戻すことができるようにするために、ユーザIDおよびその属性値などのデータを保持したままとなるので、データ量を節約できない。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明のシステムは以下のような構成を有する。すなわち、ユーザアカウントおよび当該ユーザアカウントに対応するトークンを管理するアクセス管理サーバと、複数のサービス間の処理を連携させる連携サーバとを含むアクセス管理システムであって、前記アクセス管理サーバは、前記連携サーバの要求に従って、管理しているユーザアカウントに対応するトークンを発行する発行手段と、管理しているユーザアカウントのうち、予め定義された削除する条件を満たすユーザアカウントを削除するアカウント削除手段とを有し、前記連携サーバは、別のサーバから前記アクセス管理サーバに管理されたユーザアカウントに対応するトークンの取得を要求された際に、当該ユーザアカウントが前記アカウント削除手段にて削除されていない場合、前記ユーザアカウントに対応する発行済のトークンを取得し、当該ユーザアカウントが前記アカウント削除手段にてすでに削除されていた場合、当該ユーザアカウントを前記アクセス管理サーバに再び登録させ、再び登録させたユーザアカウントに対応して発行されたトークンを取得する取得手段を有する。
【発明の効果】
【0009】
本発明により、使用されていないユーザアカウントを定期的に自動削除し、その後自動削除されたユーザアカウントから再度利用要求があった場合は、自動的にユーザアカウントを再作成する。これにより、ユーザアカウント管理用のデータサイズを節約しながらも、同じユーザIDが再利用可能となる。
【図面の簡単な説明】
【0010】
【図1】オンラインサービス構成図。
【図2】ネットワーク構成図。
【図3】コンピュータ構成図。
【図4】アクセス管理サービス構成図。
【図5】連携サービス構成図。
【図6】ID管理テーブルの例を示す図。
【図7】ユーザテーブルおよびユーザロールテーブルの例を示す図。
【図8】トークンテーブルの例を示す図。
【図9】ログテーブルの例を示す図。
【図10】第1の利用方法に係るシーケンス図。
【図11】第2の利用方法に係るシーケンス図。
【図12】テナントテーブルの例を示す図。
【図13】ユーザアカウントの削除処理に係るフローチャート。
【図14】トークンの削除処理に係るフローチャート。
【図15】ユーザアカウントの作成およびトークンの発行処理に係るフローチャート。
【図16】ユーザアカウントの作成およびトークンの発行処理に係るフローチャート。
【図17】ログイン処理に係るフローチャート。
【発明を実施するための形態】
【0011】
[課題の説明]
図1を用いて本発明が解決しようとする特有の課題をより詳細に説明する。インターネット上では、様々なサービス提供者が様々なサービスを提供している。単一のサービス提供者が運営している単体のサービスもあれば、複数のサービスを組み合わせて、1つのワークフローを実現するという手法も存在する。後者は、マッシュアップなどと呼ばれ、表向きはあたかも1つのWebサイトあるいはWebサービスとして見えるが、実際にはバックエンドで、他のサービスと連携・連動して、必要な機能を組み合わせてワークフローを実現する。
【0012】
例えば、写真共有のWebサイトを例にとって述べる。Webサイトを制御するHTTPサーバやアプリケーションサーバのホスティングを提供するサービス提供者と、写真という大量の画像ファイルを格納するオンラインストレージを提供するサービス提供者は別々のものを組み合わせることなどができる。なお、ここで言うサービスとは、Webサイト、Webアプリケーション、Webサービスなどが提供する機能群のことである。Webサイト、Webアプリケーション、Webサービスなどは、サーバコンピュータで実行されるソフトウェアである。
【0013】
図1に示すように、インターネット上にオンラインサービスA101が存在する。サーバ131は、オンラインサービスA101をホスティングする単一のサーバまたはサーバ群である。オンラインサービスA101は、アクセス管理サービス102、印刷サービス103、ログサービス104を備える。アクセス管理サービス102はユーザアカウントを収容するためのユーザアカウント・データベース105を備える。
【0014】
クライアントA106は、オンラインサービスA101にWebアクセスするブラウザなどある。例えば、文書ファイルを入稿・印刷したい場合、まずユーザはクライアントA106を介して、オンラインサービスA101にログインする。このとき、ユーザアカウントやパスワードが入力される。アクセス管理サービス102は、入力された情報に基づいて、ユーザアカウント・データベース105から該当ユーザの存在およびパスワードの真偽を確認し、ユーザを認証する。
【0015】
次に、クライアントA106は、文書ファイルを印刷サービス103に入稿する。印刷サービス103は、入稿された文書ファイルをプリンタA107で出力可能な形式に変換し、プリンタA107は変換済みの印刷データを受信する。ユーザは、プリンタA107からオンラインサービスA101にログインすると、待機中の自身の印刷データからプリンタA107に印刷物を出力する。ログサービス104は、ユーザが行った入稿・印刷などの操作を記録する。以上が、オンラインサービスAに対する第1の利用方法である。
【0016】
オンラインサービスA101に対する第2の利用方法として、オンラインサービスB121がオンラインサービスA101の外部に存在し、オンラインサービスA101と連携して1つのワークフローを提供する。サーバ132は、オンラインサービスB121をホスティングする単一のサーバまたはサーバ群である。例えば、クライアントB122がオンラインサービスB121に文書ファイルを入稿すると、オンラインサービスB121がオンラインサービスA101に文書ファイルの印刷データへの変換を要求する。印刷サービス103は、文書ファイルから印刷データへ変換し、プリンタB123は印刷データを印刷サービス103から受信して、印刷物を出力する。
【0017】
上記、第1の利用方法において、クライアントA106やプリンタA107の利用者がビジネスユーザのような、有料ライセンスモデルであるとする。この場合、ユーザ数が増加すると、ライセンス収入が増加する。増加した収入によって、コンピューティングリソースが増強できるので、さらに追加のユーザ数を収容することができるようになる。逆に、ユーザ数が減少する場合は、ユーザが解約をするので、ユーザアカウントを削除することができる。ユーザアカウントが削除されれば、空きコンピューティングリソースが再利用可能となり、その空きコンピューティングリソースに新たな他のユーザを収容することができる。
【0018】
一方、上記、第2の利用方法において、コンシューマユーザのような、無料のユーザアカウントをコンピューティングリソースに収容することを想定する。オンラインサービスB121のユーザが、オンラインサービスA101を利用するためには、やはりオンラインサービスA101から発行されたユーザアカウントを用いて認証を受ける必要がある。これは、ログサービス104がユーザIDをキーとして、ユーザの操作を記録するためである。
【0019】
ここで問題となるのは、コンシューマユーザの利用パターンとして、最初の数回だけ利用して、後はほとんど利用がない、といったいわゆるワンショット利用のケースが大変多いことである。もう1つの問題は、無料サービスの場合、例え解約や登録解除という処理を用意しておいたとしても、無料であるがゆえに、使用しなくなったユーザが自らこれらの解約・登録解除といった処理を行わないことが多く生じる。そのため、使用されなくなったユーザアカウントを削除するタイミングが実質として無いため、大量の無料ユーザアカウントがコンピューティングリソースであるユーザアカウント・データベース105に登録されてしまう。これにより、コンシューマユーザのような無料のユーザアカウントが不要となっていたとしても削除されないままとなり、ユーザアカウント・データベース105が肥大化して性能を圧迫する、あるいはデータ管理コストが増大する、という課題が発生する。
【0020】
<実施形態>
[システム構成]
以下、本発明を実施するための最良の形態について図面を用いて説明する。図2は、各種オンラインサービスが存在する、本願発明に係るアクセス管理システムを構成するネットワークの構成を示している。ネットワーク200は、インターネットなどのパブリックなネットワークである。ネットワーク201は、イントラネットなどのプライベートなネットワークである。文書管理サービス202は、オンラインでユーザの文書ファイルを保管する。プリンタ管理サービス203は、インターネットに接続されたプリンタを管理する。アクセス管理サービス204は、ユーザの認証・認可を管理する。連携サービス205は、オンラインサービス間の連携を制御する。印刷サービス206は、文書ファイルをプリンタが印刷できるデータに変換する。ログサービス207は、印刷サービス206をいつ、誰が、何を行ったかのユーザ操作の履歴(ログ)を記録する。
【0021】
クライアント211および221は、クライアントコンピュータやモバイル端末など、オンラインサービスを利用する際に使用されるクライアントである。プリンタ212および222は印刷データを受信して、印刷する。ただし、本実施形態において、クライアント221およびプリンタ222は、アクセス管理サービス204および印刷サービス206を直接利用する対象であり、外部サービスである文書管理サービス202、プリンタ管理サービス203とは接続しない。
【0022】
一方、クライアント211およびプリンタ212は、文書管理サービス202およびプリンタ管理サービス203を直接利用する対象であり、アクセス管理サービス204や印刷サービス206を、連携サービス205を介して間接的に利用する。サーバ231〜236は、各サービスをホスティングするサーバである。
【0023】
ここで、文書管理サービス202(文書管理サーバ)とプリンタ管理サービス203(プリンタ管理サーバ)が、図1におけるオンラインサービスB121に属するものとする。同様に、連携サービス205(連携サーバ)、アクセス管理サービス204(アクセス管理サーバ)、印刷サービス206(印刷サーバ)、およびログサービス207(ログサーバ)が図1におけるオンラインサービスA101に属するものとする。
【0024】
なお、本実施形態において、各種サービスはそれぞれ異なるサーバにて提供される構成としているが、この構成に限定するものではない。例えば、1台の物理的なサーバによって複数のサービスを提供するように構成しても構わないし、1のサービスを複数台のサーバにて提供するように構成しても構わない。
【0025】
図3は、前述の各種サービスを構成するWebサイト、Webアプリケーション、Webサービスなどのソフトウェアを実行するサーバコンピュータ(サーバ231〜236)の情報処理機能の論理構成を示している。ユーザインタフェース301は、ディスプレイ、キーボード、マウスなどによる、情報の入出力を行う。これらのハードウェアを備えないコンピュータは、リモートデスクトップなどにより、他のコンピュータから接続・操作することも可能である。ネットワークインタフェース302は、LANなどのネットワークに接続して、他のコンピュータやネットワーク機器との通信を行う。
【0026】
ROM304は、組込済みプログラムおよびデータが記録する。RAM305は一時メモリ領域である。二次記憶装置306は、HDDに代表されるような二次記憶装置である。CPU303は、ROM304、RAM305、二次記憶装置306などから読み込んだプログラムを実行し、各種サービスを実現する。各部は入出力インタフェース307を介して接続されている。なお、この構成に加えて、更なる部位を備えても構わない。また、クライアント211、221やプリンタ212、222についても同様の構成を有していても構わない。本実施形態では、上述した構成により、各サーバが以下に示す各シーケンスの処理を実行することとなる。
【0027】
図4は、アクセス管理サービス204の内部構造を示している。アクセス管理リクエスト処理部401は、インターネット200またはイントラネット201を経由して、クライアント221やプリンタ222および他サービスからのリクエストを受信する。認証データ管理部403は、ユーザアカウントのデータを管理する。認可トークン管理部404は、認可トークンのデータを管理する。アクセス制御部402は、認証データ管理部403および認可トークン管理部404から取得するデータに基づき、認証・認可リクエストに対し応答データを生成し、アクセス管理リクエスト処理部401に応答データを返す。アクセス管理リクエスト処理部401は、応答データを他サービスに返信する。
【0028】
図5は、連携サービス205の内部構造を示している。連携リクエスト処理部501は、インターネット200を経由して、他サービスから文書ファイルのデータ変換のリクエストを受信する。サービス制御部502は、連携リクエスト処理部501からのリクエストを受けて、イントラネット201経由でアクセス管理サービス204および印刷サービス206に対し、必要な処理を行い、応答データを返す。連携リクエスト処理部501は応答データを呼び出し元に返す。
【0029】
ここで、本明細書において用いる用語について説明する。本明細書において、「認証トークン」とは、ユーザIDおよびパスワード等を用いてログインを行った際に、ログイン成功すると払い出されるトークンを意味する。この認証トークンを同一のログインセッション間で使いまわすことにより、そのユーザがアクセス可能な機能すべてを使用可能となる。また、この認証トークンのライフサイクルは、ログインセッションであり、例えば、ログアウトやセッションタイムアウトなどにより、認証トークンは無効となる。
【0030】
これに対し、「認可トークン」とは、正しいユーザID/パスワードを伴った認可トークン取得要求に応答して払い出されるトークンである。つまり、この認可トークンを使用したアクセスでは、ある特定機能の実行やある特定URLへのアクセスを許諾する際に用いられ、その許諾された権限に限定される。例えば、この認可トークンにより、印刷サービス206の機能やデータ(URL)へのアクセスが許可される。この認可トークンは、ユーザ本人の代理で外部プログラムなどに代理実行などを行わせる際に用いられる。つまり、プログラム等に認可トークンを授与することにより、ユーザが有する権限を付与し、(例えば、Invokerとして)代理にて処理を実行させることが可能となる。認可トークンのライフサイクルは、設定された有効期限内であり、その有効期限内であれば、何度でも使いまわせる。なお、有効期限の具体的な値は、図8を用いて説明する。
【0031】
[データ構造]
以下、本実施形態にて用いるデータ構造の説明を行う。なお、各テーブルにて示されるカラム名が同じもの(例えば、ユーザID)は、各テーブル間にて共通のものを示しているものとする。なお、以下に示すデータ構造は一例であり、他の構成要素を有していてもよい。また、データの値がとりうる構成(例えば、桁数や英数字による構成)は以下に示すものに限定するものではなく、異なる構成としても構わない。
【0032】
図6は、プリンタ管理サービス203が保持する、ID管理のためのデータ構造をテーブル形式で表したID管理テーブル600を示している。プリンタID601は、プリンタ212のプリンタIDを格納するカラムである。ユーザID602は、ユーザIDを格納するカラムである。パスワード603は、パスワードを格納するカラムである。認可トークン604は、認可トークンを格納するカラムである。ユーザID602、パスワード603、および認可トークン604は、いずれもアクセス管理サービス204から発行されるものを保持するカラムである。
【0033】
図7は、認証データ管理部403で管理するデータをテーブル形式で表している。図7(A)は、ユーザテーブル700を示している。ユーザテーブル700は、ユーザID701、パスワード702、テナントID703、最終ログイン日時704を構成要素として備える。ここでのテナントIDとは、マルチテナントを実現するための識別子である。例えば、あるオンラインサービスを単一システムで動作させているとする。このオンラインサービスを複数の顧客企業に販売する場合、他の顧客のデータへアクセスできないようにする、顧客ごとにサービス利用料金を計算する、などのマルチテナント機能が必要となる。これらのマルチテナント機能を実現するための識別子として、テナントID703がユーザID701ごとに必ず付与されることにより、テナントごとにユーザの分離、データの分離を実現する。クラウド化が進むことにより、1つのメモリに異なるドメインに所属するテナントのデータが管理されることになるので、マルチテナントという考え方はクラウドコンピューティングにおいて非常に重要な考え方である。
【0034】
図7(B)は、ユーザロールテーブル710を示している。ユーザロールテーブル710は、ユーザID711およびロール712を構成要素として備える。ロールとは、所属テナントにおけるユーザの役割を定義するものである。例えば、ロール712の設定値として、管理者(Admin)、インボーカ(Invoker)、一般ユーザ(User)などが存在する。管理者ロールを持つユーザは、すべての機能・データにアクセス可能である。ロールにおけるインボーカとは、他サービスからのリクエスト呼び出しに使われる無人アカウント用のロールである。インボーカは、一部のリクエスト処理時のみに、限定的な機能・データにアクセス可能である。一般ユーザは、いわゆるエンドユーザに相当するロールである。エンドユーザが印刷サービスを利用するのに使用される。
【0035】
図8は、認可トークン管理部404が管理するデータをテーブル形式で表したトークンテーブル800を示している。トークンテーブル800は、トークンID801、有効期限802、発行日時803、ユーザID804、テナントID805、およびクライアントIDを構成要素として備える。有効期限802は、認可トークンの有効期限を秒数で表した値である。発行日時803は、認可トークンが発行された発行日時である。ユーザID804は、この認可トークンがどのユーザに対して発行されたのかを示すユーザIDである。テナントID805は、ユーザID804が所属するテナントIDである。クライアントID806は、この認可トークンの発行要求元であるインボーカのユーザIDが記録されるクライアントIDである。
【0036】
なお、本実施形態において、トークンテーブル800は、認証トークンおよび認可トークンいずれも登録されているものとして説明する。しかし、それぞれ別のテーブルにて管理するようにしても構わない。その場合には、例えば、認証トークンには有効期間は設定されない。また、認可トークンにおいては、いずれの機能を利用可能か、どのデータにアクセス可能なといった情報が対応付けられても構わない。例えば、印刷サービス206が提供する印刷データを参照する際のURLなどが該当する。その場合には、トークンテーブル800において、更なる情報を管理するように構成することが想定される。
【0037】
図9は、ログサービス207が管理するデータをテーブル形式で表したログテーブル900を示している。ログテーブル900は、タイムスタンプ901、ユーザID902、テナントID903、およびアクションID904を構成要素として備える。タイムスタンプ901は、操作が行われた日時を記録するタイムスタンプである。ユーザID902は、操作を行ったユーザのユーザIDである。テナントID903は、操作を行ったユーザの所属するテナントのテナントIDである。アクションID904は、操作の種別を表すアクションIDである。
【0038】
[第1の利用方法]
図10を用いて、印刷サービス206の第1の利用方法を示す。これは、図1にて述べたオンラインサービスA101にクライアントA106が直接アクセスし、利用する方法に対応する。第1の利用方法では、クライアント221とプリンタ222は、アクセス管理サービス204および印刷サービス206のみを直接利用する。
【0039】
まず、印刷サービス206の利用者は、アクセス管理サービス204に登録したユーザアカウントを使用して、クライアント221を用いてアクセス管理サービスにログインする(S1001)。アクセス管理サービス204は、ユーザテーブル700と照合して、ログイン成功・失敗を判定し、ログイン成功の場合、認証トークンを発行する(S1002)。アクセス管理サービス204は、発行した認証トークンの情報を図8に示すようにトークンテーブル800に記録する。なお、認証が失敗した場合は、アクセス管理サービス204は、その旨をユーザに対して通知する。
【0040】
次に、クライアント221は、印刷サービス206に文書ファイルをアップロードする(S1003)。この際、認証トークンも一緒に渡される。印刷サービス206は、アクセス管理サービス204に問い合わせ、受信した認証トークンの有効性を検証する(S1004)。アクセス管理サービス204は、トークンテーブル800と照合し、認証トークンが有効であるか判定する。認証トークンが有効である旨を受信した場合、印刷サービス206は、アップロードされた文書ファイルから、プリンタで印刷可能なデータを生成し、一旦保管する(S1005)。なお、認証トークンが有効ではない旨を受信した場合、印刷サービス206は、エラー終了する。印刷サービス206は、印刷データ生成・保管の後、印刷データを生成したという操作ログを、ログサービスに記録する(S1006)。
【0041】
次に、利用者はプリンタ222を用いて、アクセス管理サービス204にログインする(S1007)。アクセス管理サービス204は、ユーザテーブル700と照合して、ログイン成功・失敗を判定し、ログイン成功の場合、認証トークンを発行する(S1008)。プリンタ222は、ログインしたユーザの保管済み印刷データの受信を印刷サービス206に要求する(S1009)。この際、認証トークンも一緒に渡される。印刷サービス206は、アクセス管理サービス204に問い合わせ、認証トークンの有効性を検証する(S1010)。認証トークンが有効な場合、印刷サービス206は印刷データの受信を許可し、プリンタ222は、印刷サービス206から印刷データを受信する(S1011)。印刷サービス206は、印刷データの送信を完了すると、それをログサービスに記録する(S1012)。プリンタ222は、印刷データを用紙に出力する(S1013)。以上が、印刷サービス206の第1の利用方法としての流れの一例である。
【0042】
[第2の利用方法]
図11を用いて、印刷サービス206の第2の利用方法を示す。これは、図1にて述べたオンラインサービスB121を介して、オンラインサービスA101を利用する方法に対応する。第2の利用方法では、クライアント211とプリンタ212は、文書管理サービス202およびプリンタ管理サービス203を利用している。しかし、文書管理サービス202およびプリンタ管理サービス203が、印刷データ生成の機能を持たないため、印刷サービス206を利用する。利用者は、文書管理サービス202のユーザ認証を使用するが、一方で印刷サービス206を利用するためには、アクセス管理サービス204にもユーザアカウントを登録して、印刷サービス206を利用する必要がある。つまり、文書管理サービス202におけるユーザ認証と、印刷サービス206におけるユーザ認証は異なる。
【0043】
まず、利用者はクライアント211を用いて、文書管理サービス202にログインする(S1101)。利用者はクライアント211を用いて、文書管理サービス202に文書ファイルをアップロードする(S1102)。利用者は、クライアント211から文書管理サービス202に対し、文書ファイルの印刷指示を出す(S1103)。文書管理サービス202は、プリンタ管理サービス203に印刷要求を送信する(S1104)。このとき、印刷対象である文書データが格納された位置情報(文書ファイルURL)および文書ファイルを取得する際に必要となる認可トークンも併せて送信する。なお、ここで送信される認可トークンとは、文書管理サービス側で発行される認可トークンであり、アクセス管理サービス204にて発行される認可トークンとは異なる。この文書管理サービス側で発行された認可トークンを用いることにより、連携サービスは文書管理サービス側のサービスの提供(文書データの取得等)を受けることが可能となる。
【0044】
プリンタ管理サービス203は、連携サービス205に認可トークン取得要求を送信する(S1105)。連携サービス205は、アクセス管理サービス204から認可トークン発行を受ける(S1106)。ここで言う認可トークンとは、印刷サービス206へのアクセス許可・利用許可を示すトークンID801のことである。
【0045】
連携サービス205およびプリンタ212から印刷サービス206を利用する際に、認可トークンを使用して、印刷サービス206の利用許可を得る。連携サービス205は、プリンタ管理サービス203に認可トークンを通知する(S1107)。プリンタ管理サービス203は、S1104で受け取った印刷対象の文書ファイルURLを連携サービス205に通知する(S1108)。このとき、併せて文書管理サービス202から受信した認可トークンも渡される。連携サービス205は、通知された文書ファイルURLから文書ファイルを取得する(S1109)。このとき、文書管理サービス202は、S1104にて送信した認可トークンを確認し、この認可トークンが正当なものである場合に、文書ファイルを連携サービスに提供する。
【0046】
連携サービス205は、取得した文書ファイルを印刷サービス206に登録する(S1110)。この際に、認可トークンも一緒に渡される。印刷サービス206はアクセス管理サービス204に問い合わせ、認可トークンの有効性を検証する(S1111)。認可トークンが有効な場合、印刷サービス206は、文書ファイルからプリンタで印刷可能な印刷データを生成し、一旦保管する(S1112)。印刷サービス206は、印刷データを生成したという操作ログを、ログサービスに記録する(S1113)。
【0047】
印刷サービス206は、S1112にて生成した印刷データが保管されている位置情報(印刷データURL)を連携サービス205に通知する(S1114)。連携サービス205は、印刷データURLをプリンタ管理サービス203に通知する(S1115)。プリンタ管理サービス203は、印刷データURLとS1107で受信した認可トークンとをプリンタ212に通知する(S1116)。プリンタ212は、印刷サービス206に印刷データ受信要求を送信する(S1117)。この際に認可トークンも渡される。印刷サービス206は、アクセス管理サービス204に問い合わせ、認可トークンの有効性を検証する(S1118)。認可トークンが有効な場合、印刷サービス206は印刷データの受信を許可し、プリンタ212は、印刷データURLに基づいて、印刷サービス206から印刷データを受信する(S1119)。印刷サービス206は、印刷データの送信を完了すると、それをログサービスに記録する(S1120)。そして、プリンタ212は、印刷データを用紙に出力する(S1121)。
【0048】
[第2の利用方法に対するアカウントの収容方法]
図12〜図17を用いて、本実施形態に係る、第2の利用方法で文書管理サービス202およびプリンタ管理サービス203が利用する大量のユーザアカウントを効率的に収容する方法について説明する。なお、本明細書において、“自動”とは、ユーザからの操作を都度要求せずに、システム側で自発的に処理を行うことを意味する。
【0049】
図12は、認証データ管理部403にて管理されるテナント情報のデータをテーブル形式で表したテナントテーブル1200を示す。テナントテーブル1200は、テナントID1201、ユーザアカウント削除条件1202、および設定閾値1203を構成要素として備える。ユーザアカウント削除条件1202は、テナントごとのユーザアカウント削除条件を示す値である。例えば、値の定義として、0:ユーザアカウントを自動削除しない、1:最終ログイン日時を条件に自動削除する、2:ユーザアカウント総数を条件に自動削除する、などである。なお、削除条件に関しては、上記の条件以外にも、他の条件を設定するようにしても構わない。設定閾値1203は、自動削除条件の設定閾値である。認証データ管理部403は、プリンタ管理サービス203および連携サービス205に対し、テナントIDを1つ割り当て、管理者ロールを持つユーザアカウント、インボーカロールを持つユーザアカウントを発行する。
【0050】
図13は、テナントごとに使用されていないユーザアカウントを自動削除する流れを示したフローチャートである。本処理は、アクセス管理サービス204を提供するサーバが備えるCPUが記憶部であるROM等に記憶されたプログラムをRAM等に読み出して実行することにより実現される。
【0051】
アクセス管理サービス204は、テナントテーブル1200のユーザアカウント削除条件1202から使用する削除条件を判定する(S1301)。削除条件が“0”の場合は、アクセス管理サービス204は、とのテナントIDに対応付けられたユーザアカウントを自動削除しない。削除条件が“1”の場合、アクセス管理サービス204は、図7に示すユーザテーブル700から、テナントIDが一致するユーザアカウントのうち、現在日時と最終ログイン日時704との差が設定閾値1203より大きいレコードを削除する(S1302)。つまり、最終ログイン日時から所定の時間が経過したユーザアカウントを削除の対象とする。ただし、ここでの削除対象は、一般ユーザ(User)のロールのみを持つユーザアカウントとする。
【0052】
削除条件が“2”の場合、アクセス管理サービス204は、まずユーザテーブル700から、該当テナントに所属するユーザアカウント総数を取得する(S1303)。なお対象のユーザアカウントは一般ユーザのロールのみを持つユーザアカウントとする。次にアクセス管理サービス204は、ユーザアカウント総数と設定閾値の差を計算し、Nとする(S1304)。アクセス管理サービス204は、Nが“0”より大きいかどうかを判定する(S1305)。Nが“0”より大きい場合(S1305にてYES)、アクセス管理サービス204は、対象のユーザアカウントを最終ログイン日時による昇順ソート条件付で、先頭のN件をユーザテーブル700から削除する(S1306)。つまり、予め定義されたアカウント数を超えた場合に、超えた分のユーザアカウントを古い順に削除対象とする。
【0053】
本処理を例えば1日1回として定期的に実行することで、削除条件が“1”または“2”に設定されているテナントから使用されていないユーザアカウントを古いものから順に自動削除できる。その結果、認証データ管理部403の管理対象データサイズが節約できる。なお、本処理を実行するタイミングは、上記のように1日1回の周期に限らず、予め定義された周期にて実行するようにしても構わない。更に、管理者からの指示に起因して開始するようにしても構わない。
【0054】
図14は、テナントごとに古いトークンを削除する流れを示したフローチャートである。トークン削除に係る本処理は、アクセス管理サービス204を提供するサーバが備えるCPUが記憶部であるROM等に記憶されたプログラムをRAM等に読み出して実行することにより実現される。
【0055】
アクセス管理サービス204は、現在日時と発行日時803の差(秒数)が、有効期限802より大きい場合、該当トークンは期限切れであるため、トークンテーブル800からレコードを削除する(S1401)。
【0056】
本処理を例えば1日1回として定期的に実行することで、使用されない期限切れのトークンを自動的に削除することが可能となる。その結果、認可トークン管理部404の管理対象データサイズが節約できる。なお、本処理を実行するタイミングは、上記のように1日1回の周期に限らず、予め定義された周期にて実行するようにしても構わない。また、管理者からの指示に従って開始するようにしても構わない。
【0057】
図13および図14で示した方法により、テナントごとに、使用されていないユーザアカウントの自動削除を適用するか、適用しないかを選択することができる。なお、本実施形態において、前述の第1の利用方法で利用している有料ライセンスを保有するテナントに対しては、ユーザアカウントの自動削除を適用しない。これは、第1の利用方法においては、解約されない限りはライセンス料金が回収できるので、ユーザアカウントデータを保持するコストがまかなえるためである。また、有料ライセンスユーザの場合は、使用されていないユーザアカウントであるとして自動削除してしまうと、万が一同じユーザアカウントを再利用したい場合、有料ライセンスユーザであるのに、ユーザに不便をかけることになる。
【0058】
一方、前述の第2の利用方法により、無料ユーザアカウントを収容するためのテナントには、ユーザアカウントの自動削除を適用する。これにより、コンシューマユーザのような大量のユーザアカウントを収容する際に、データ総量を抑制して、ユーザアカウントデータ管理コストを低減できる。また、ユーザアカウント・データベース105の肥大化を防止して、第1の利用方法で利用しているテナントのユーザへの影響を低減できる。
【0059】
[第2の利用方法に対するアカウントの再作成方法]
図15および図16は、認可トークン取得要求時に、ユーザアカウントが存在しない場合に認可トークンを自動的に作成(再作成)し、発行する流れを示したフローチャートである。
【0060】
まず、文書管理サービス202は、プリンタ管理サービス203に印刷要求を送信する(S1501)。プリンタ管理サービス203は、受信した印刷要求に従って、連携サービス205に認可トークン取得要求を送信する(S1502)。引数として、テナント管理者ユーザID、テナント管理者パスワード、テナント管理者の認可トークン、一般ユーザID、一般ユーザパスワード、および一般ユーザ認可トークンが渡される。
【0061】
ここで、プリンタ管理サービス203は、図6に示すようにID管理テーブル600に、プリンタID601およびプリンタごとにアクセス管理サービス204のユーザID602、パスワード603、認可トークン604を保持している。すなわち、プリンタ管理サービス203は、プリンタが1台ごとに、プリンタ固有の値であるプリンタID601とアクセス管理サービス204のユーザID602とのペアを保持する。これにより、図11に示したS1115で、連携サービス205から印刷データURLの通知を受けた際に、プリンタ管理サービス203は、ユーザID602とペアになっているプリンタID601を特定する。そして、プリンタ管理サービス203は、印刷データURLを適切なプリンタ212に転送することができる。
【0062】
ユーザによる本システムへのアクセスが、初回アクセスである場合には、プリンタ管理サービス203は、一意なユーザID602およびランダムなパスワード603を生成して、認可トークンを空のまま認可トークン取得要求を呼び出す(S1502)。連携サービス205は、プリンタ管理サービス203から渡された認可トークンを判定する(S1503)。認可トークンが空の場合、すなわち未発行の場合(S1503にてYES)、S1504に進む。認可トークンが発行済みの場合(S1503にてNO)、S1507に進む。認可トークンが未発行の場合、連携サービス205は、まず管理者ユーザIDでアクセス管理サービス204にログインする(S1504)。S1504はサブルーチンであり、図17にそのサブルーチンを示す。
【0063】
連携サービス205からアクセス管理サービス204に対し、ユーザログインが呼び出される(S1701)。引数として、テナント管理者ユーザID、テナント管理者パスワードが渡される。ログインに成功すると、その応答としてテナント管理者の認証トークンが返される(S1702)。なお、ログインに失敗した場合には、エラー終了となる。
【0064】
ユーザログイン処理の後、連携サービス205は、アクセス管理サービス204に対して、一般ユーザ作成の要求を送信する(S1505)。このとき、引数として、テナント管理者の認証トークン、およびユーザ情報が渡される。ユーザ情報には、ユーザID602、およびパスワード603が含まれる。アクセス管理サービス204において一般ユーザの作成に成功すると、アクセス管理サービス204から連携サービス205に作成が成功した旨の応答が返される(S1506)。この後、図16の記号Aに続く。
【0065】
一方、認可トークンが発行済みの場合(S1503にてNO)、連携サービス205はアクセス管理サービス204に、認可トークン情報取得要求を送信する(S1507)。このとき、引数として、インボーカID、インボーカパスワード、一般ユーザID、一般ユーザパスワード、および一般ユーザの認可トークンが渡される。まず、アクセス管理サービス204は、ユーザテーブル700およびユーザロールテーブル710に照会して、連携サービス205から受信したインボーカIDとインボーカパスワードが正しいかどうかを検証する。これは、アクセス管理サービス204の呼び出し元である連携サービス205が、正しいインボーカIDとインボーカパスワードを使用しているかを検証するためである。
【0066】
検証に成功した場合、アクセス管理サービス204は、渡された一般ユーザIDと一般ユーザパスワードを用いて、インボーカによる代理認証を試みる。アクセス管理サービス204は、ユーザテーブル700およびユーザロールテーブル710に照会して、一般ユーザIDが存在し、一般ユーザパスワードが正しいかどうかを検証する。一般ユーザIDと一般ユーザパスワードが正しいと判定された場合、代理認証は成功となる。この場合、アクセス管理サービス204は、要求された一般ユーザに対する認可トークン、発行日時、有効期限をトークンテーブル800から取得して連携サービス205に返す(S1508)。代理認証が失敗した場合は、アクセス管理サービス204は、その旨を連携サービス205へ返す。
【0067】
連携サービス205は、S1508の戻りが一般ユーザの代理認証エラーなどの例外でないかを判定する(S1509)。一般ユーザの代理認証のエラーと判定された場合(S1509にてYES)、S1510に進む。エラーではない場合(S1509にてNO)、図16の記号Bに進む。一般ユーザの代理認証のエラーと判定された場合、連携サービス205は、管理者ユーザIDでアクセス管理サービス204にログインする(S1510)。S1510はS1504と同様、図17に示すサブルーチンである。ユーザログイン処理の後、連携サービス205は、アクセス管理サービス204にユーザ情報取得要求を送信する(S1511)。このとき、引数として、テナント管理者の認証トークン、および一般ユーザIDが渡される。アクセス管理サービス204は、ユーザテーブル700から要求されたユーザIDを検索してユーザ情報を連携サービス205に返す(S1512)。このとき、削除されたユーザアカウントと同一のユーザアカウント(ユーザID)にて、再作成されることとなる。アクセス管理サービス204は、対象ユーザが存在しないなど、例外が発生した場合には、その旨を連携サービス205へ返す。
【0068】
連携サービス205は、S1512の戻りが、対象ユーザが存在しないという例外でないかを判定する(S1513)。対象ユーザが存在しないと判定された場合(S1513にてYES)、S1505に進み、連携サービス205は、以前は存在したが自動削除されてしまったユーザアカウントを再作成する。それ以外の場合(S1513にてNO)、S1513で対象ユーザは存在すると判定されているが、すでにS1509で該当ユーザの認証エラーとなっている。そのため、連携サービス205は、エラー処理として認可トークン取得要求の応答として、プリンタ管理サービス203へ“Failure”を戻す(S1514)。
【0069】
図16に移り、記号Bの続きから説明する。連携サービス205は、S1508で戻された認可トークンがすでにトークンテーブル800から削除済みか、または期限切れでないかを判定する(S1601)。削除済み、あるいは期限切れではない場合、すなわち認可トークンが有効であると判定された場合(S1601にてNO)、S1604へ進む。削除済みあるいは期限切れであると判定された場合(S1601にてYES)、S1602へ進む。
【0070】
記号Aから進む場合、新規作成したユーザアカウントに対し、連携サービス205はアクセス管理サービス204に認可トークン取得を要求する(S1602)。S1601から進む場合、削除済みあるいは期限切れのため、連携サービス205は、アクセス管理サービス204に認可トークンの再発行を要求する(S1602)。このとき、引数として、インボーカID、インボーカパスワード、一般ユーザID、一般ユーザパスワード、および有効期限を渡す。
【0071】
アクセス管理サービス204は、認可トークンを発行または再発行して、トークンテーブル800に記録し、応答としてトークンID801、発行日時803、および有効期限802を連携サービス205へ戻す(S1603)。最後に、連携サービス205はプリンタ管理サービス203に、認可トークン取得要求の応答を返す(S1604)。この際、発行また再発行された一般ユーザの認可トークンを戻す。プリンタ管理サービス203は、発行された認可トークンをID管理テーブル600の認可トークン604のカラムに格納する。以降、プリンタ管理サービス203は、図11に示した後続の処理を継続する。
【0072】
図13、14において、使用されていないユーザアカウントの自動削除、およびトークンの自動削除の方法を示した。また、図15〜17に、自動削除されたユーザアカウントの要求時の自動再作成および認可トークンの自動発行の方法を示した。これらの両者を組み合わせることにより、上述したような第2の利用方法において、大量の無料ユーザアカウントが登録される場合に、ユーザアカウント総数を抑えて、アクセス管理サービス204の管理データサイズを節約できる。
【0073】
また、第2の利用方法を利用する外部サービスの大量のユーザアカウントを1つのテナントに収容し、そのデータサイズを節約できるので、第1の利用方法で利用しているテナントへの影響を少なくすることができる。これらにより、第2の利用方法で大量のユーザアカウントを登録する際の、アクセス管理サービスのユーザアカウント・データベースの肥大化、運用コストの増大、といった課題を解決する効果が得られる。また、ユーザアカウントが自動削除後でも同一のユーザIDで再作成されるため、ユーザIDをキーとして記録されているログサービス207のログが、過去に遡って一貫性が保たれるという効果も得られる。
【0074】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
ユーザアカウントおよび当該ユーザアカウントに対応するトークンを管理するアクセス管理サーバと、複数のサービス間の処理を連携させる連携サーバとを含むアクセス管理システムであって、
前記アクセス管理サーバは、
前記連携サーバの要求に従って、管理しているユーザアカウントに対応するトークンを発行する発行手段と、
管理しているユーザアカウントのうち、予め定義された削除する条件を満たすユーザアカウントを削除するアカウント削除手段と
を有し、
前記連携サーバは、
別のサーバから前記アクセス管理サーバに管理されたユーザアカウントに対応するトークンの取得を要求された際に、当該ユーザアカウントが前記アカウント削除手段にて削除されていない場合、前記ユーザアカウントに対応する発行済のトークンを取得し、当該ユーザアカウントが前記アカウント削除手段にてすでに削除されていた場合、当該ユーザアカウントを前記アクセス管理サーバに再び登録させ、再び登録させたユーザアカウントに対応して発行されたトークンを取得する取得手段
を有することを特徴とするアクセス管理システム。
【請求項2】
前記アクセス管理サーバは、
前記ユーザアカウントに対応して発行されたトークンのうち、期限切れのトークンを削除するトークン削除手段を更に有し、
前記連携サーバは、
前記取得手段にて取得された発行済のトークンが期限切れであった場合、トークンの再発行を前記発行手段に要求する要求手段を更に有し、
前記要求手段は、前記取得手段にて再び登録させたユーザアカウントに対応するトークンが、前記トークン削除手段にて削除されていた場合、当該再び登録したユーザアカウントに対応するトークンの再発行を前記発行手段に要求することを特徴とする請求項1に記載のアクセス管理システム。
【請求項3】
前記アクセス管理サーバは、
前記ユーザアカウントに当該ユーザアカウントが属するテナント情報を対応づけて管理し、当該テナント情報ごとに前記アカウント削除手段にて削除する条件を設定し、
前記アクセス管理サーバが管理するユーザアカウントのうち、前記別のサーバが管理しているユーザアカウントと、前記別のサーバが管理していないユーザアカウントとは異なるテナント情報を対応づけて管理し、当該別のサーバが管理していないユーザアカウントは削除しないように制御することを特徴とする請求項1または2に記載のアクセス管理システム。
【請求項4】
前記アカウント削除手段にて削除する条件は、
前記アカウント削除手段による削除を実行しない、
最後にログインしてから所定の期間が経過したユーザアカウントを削除する、
予め定義されたアカウント数を超えた場合にログイン日時が古いものから削除する
の内いずれか1つであることを特徴とする請求項1乃至3のいずれか一項に記載のアクセス管理システム。
【請求項5】
前記取得手段は、前記アカウント削除手段にて削除されたユーザアカウントと同一のユーザアカウントを再び登録させ、当該ユーザアカウントにて行われた処理のログを対応付けて保持させることを特徴とする請求項1乃至4のいずれか一項に記載のアクセス管理システム。
【請求項6】
前記アカウント削除手段にて削除するタイミングは、所定の周期ごと、もしくは管理者の指示に起因して行われることを特徴とする請求項1乃至5のいずれか一項に記載のアクセス管理システム。
【請求項7】
前記連携サーバは、前記別のサーバが発行したトークンを用いて、前記別のサーバが提供するサービスを受けることを特徴とする請求項1乃至6のいずれか一項に記載のアクセス管理システム。
【請求項8】
ユーザアカウントおよび当該ユーザアカウントに対応するトークンを管理するアクセス管理サーバと、複数のサービス間の処理を連携させる連携サーバとを含むアクセス管理システムにおけるアクセス管理サーバであって、
前記連携サーバの要求に従って、管理しているユーザアカウントに対応するトークンを発行する発行手段と、
管理しているユーザアカウントのうち、予め定義された削除する条件を満たすユーザアカウントを削除するアカウント削除手段と
を有することを特徴とするアクセス管理サーバ。
【請求項9】
ユーザアカウントおよび当該ユーザアカウントに対応するトークンを管理するアクセス管理サーバと、複数のサービス間の処理を連携させる連携サーバとを含むアクセス管理システムにおける連携サーバであって、
別のサーバから前記アクセス管理サーバに管理されたユーザアカウントに対応するトークンの発行を要求された際に、当該ユーザアカウントが前記アカウント削除手段にて削除されていない場合、前記ユーザアカウントに対応する発行済みのトークンを取得し、当該ユーザアカウントが前記アカウント削除手段にてすでに削除されていた場合、当該ユーザアカウントを前記アクセス管理サーバに再び登録させ、再び登録させたユーザアカウントに対応して発行されたトークンを取得する取得手段
を有することを特徴とする連携サーバ。
【請求項10】
ユーザアカウントおよび当該ユーザアカウントに対応するトークンを管理するアクセス管理サーバと、複数のサービス間の処理を連携させる連携サーバとを含むアクセス管理システムにおけるアクセス管理方法であって、
前記アクセス管理サーバにおいて、
発行手段が、前記連携サーバの要求に従って、管理しているユーザアカウントに対応するトークンを発行する発行工程と、
アカウント削除手段が、管理しているユーザアカウントのうち、予め定義された削除する条件を満たすユーザアカウントを削除するアカウント削除工程と
を有し、
前記連携サーバにおいて、
取得手段が、別のサーバから前記アクセス管理サーバに管理されたユーザアカウントに対応するトークンの取得を要求された際に、当該ユーザアカウントが前記アカウント削除工程にて削除されていない場合、前記ユーザアカウントに対応する発行済のトークンを取得し、当該ユーザアカウントが前記アカウント削除工程にてすでに削除されていた場合、当該ユーザアカウントを前記アクセス管理サーバに再び登録させ、再び登録させたユーザアカウントに対応して発行されたトークンを取得する取得工程
を有することを特徴とするアクセス管理方法。
【請求項11】
コンピュータを、
複数のサービス間の処理を連携させる連携サーバの要求に従って、管理しているユーザアカウントに対応するトークンを発行する発行手段、
管理しているユーザアカウントのうち、予め定義された削除する条件を満たすユーザアカウントを削除するアカウント削除手段
として機能させるためのプログラム。
【請求項12】
コンピュータを、
別のサーバからアクセス管理サーバに管理されたユーザアカウントに対応するトークンの発行を要求された際に、当該ユーザアカウントが前記アクセス管理サーバにて削除されていない場合、前記ユーザアカウントに対応する発行済みのトークンを取得し、当該ユーザアカウントが前記アクセス管理サーバにてすでに削除されていた場合、当該ユーザアカウントを前記アクセス管理サーバに再び登録させ、再び登録させたユーザアカウントに対応して発行されたトークンを取得する取得手段
として機能させるためのプログラム。

【図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

【図17】
image rotate


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