(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024176464
(43)【公開日】2024-12-19
(54)【発明の名称】情報処理システムおよびプログラム
(51)【国際特許分類】
G06F 21/33 20130101AFI20241212BHJP
G06F 21/62 20130101ALI20241212BHJP
【FI】
G06F21/33
G06F21/62 318
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023095009
(22)【出願日】2023-06-08
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100125346
【弁理士】
【氏名又は名称】尾形 文雄
(72)【発明者】
【氏名】丹代 亮
(57)【要約】
【課題】アクセストークンを有効期限により管理する場合と比較して、更新トークンを用いてアクセストークンを更新すると共にトークンが不正に使用される機会を減らすことにより、セキュリティリスクを低減させる。
【解決手段】1または複数のプロセッサを備え、1または複数のプロセッサは、サービスを利用する際に用いられるアクセストークンの発行要求を受け付け、アクセストークンおよびアクセストークンの有効期限が切れた際にアクセストークンを更新するために用いられる更新トークンの発行を指示し、指示により発行されたアクセストークンおよび更新トークンを取得し、予め定めた更新条件に基づいて、更新トークンを用いてアクセストークンを更新し、予め定めた破棄に関する条件に基づいて、更新トークンを破棄することを特徴とする情報処理システム。
【選択図】
図15
【特許請求の範囲】
【請求項1】
1または複数のプロセッサを備え、
前記1または複数のプロセッサは、
サービスを利用する際に用いられるアクセストークンの発行要求を受け付け、
前記アクセストークンおよび当該アクセストークンの有効期限が切れた際に当該アクセストークンを更新するために用いられる更新トークンの発行を指示し、
前記指示により発行されたアクセストークンおよび更新トークンを取得し、
予め定めた更新条件に基づいて、前記更新トークンを用いて前記アクセストークンを更新し、
予め定めた破棄に関する条件に基づいて、前記更新トークンを破棄すること
を特徴とする情報処理システム。
【請求項2】
前記予め定めた破棄に関する条件には、サービスの利用者が前記サービスを利用せずに、一定の期間が経過したことが含まれることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記期間は、利用する前記サービスの種類に応じて定められることを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記期間は、前記サービスの利用者による前記サービスの最終利用日時からの経過日時であることを特徴とする請求項2に記載の情報処理システム。
【請求項5】
前記プロセッサは、予め定められた期間ごとに、前記サービスの利用者による前記サービスの利用状況に基づいて前記破棄に関する条件を判断することを特徴とする請求項1に記載の情報処理システム。
【請求項6】
前記プロセッサは、前記サービスの利用者が、一のサービスまたは前記一のサービスに関連する他のサービスのうち、少なくともいずれか一つを利用している場合に、前記破棄に関する条件を満たさないと判断することを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記プロセッサは、前記サービスの利用者が、同一のアクセストークンを用いて利用可能なサービスのうち、少なくともいずれか一つを利用している場合に、前記破棄に関する条件を満たさないと判断することを特徴とする請求項5に記載の情報処理システム。
【請求項8】
前記プロセッサは、特定の関係にある複数の情報処理装置のうち、一の情報処理装置において、前記破棄に関する条件を満たすと判断した場合であっても、特定の関係にある他の情報処理装置においてサービスを利用している場合に、当該破棄に関する条件を満たさないと判断することを特徴とする請求項5に記載の情報処理システム。
【請求項9】
コンピュータに、
サービスを利用する際に用いられるアクセストークンの発行要求を受け付ける機能と、
前記アクセストークンおよび当該アクセストークンの有効期限が切れた際に当該アクセストークンを更新するために用いられる更新トークンの発行を指示する機能と、
前記指示により発行されたアクセストークンおよび更新トークンを取得する機能と、
予め定めた更新条件に基づいて、前記更新トークンを用いて前記アクセストークンを更新する機能と、
予め定めた破棄に関する条件に基づいて、前記更新トークンを破棄する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムおよびプログラムに関する。
【背景技術】
【0002】
特許文献1では、既存の認証機構を用いるサービスの利用可否を、利用期限に基づき判定できるようにすることを目的に、クライアントの提供するサービスの利用期限を記憶する記憶部と、クライアントから、サービスの利用に用いられるアクセストークンの発行要求を受信する受信部と、発行要求の受信に応じて、利用期限に基づき、アクセストークンを発行する発行部と、クライアントからのアクセストークンの受信に応じて、現在の日時がアクセストークンに係るサービスの利用期限を超過していない場合に、アクセストークンが有効であると判断し、日時が前記利用期限を超過している場合に、アクセストークンが有効でないと判断する判断部と、を有する、認証システムに関する発明が開示されている。
また、特許文献2では、サービス提供期間が制限されているデバイスの使用後に、サービス提供用の認可情報を適切に破棄することを目的に、デバイスに対するサービスの提供を仲介するサーバ装置であって、サービスの提供用の認可情報を取得する認可情報取得部と、デバイスからデバイス情報を受信して管理するデバイス管理部と、デバイスを使用するユーザに関するユーザ情報と、認可情報と、デバイス情報とを関連付けて管理するユーザ情報管理部と、デバイスが、サービスのサービス提供期間が制限されている制限付きデバイスであるか否かを判定するデバイス判別部と、を有し、ユーザ情報管理部は、デバイスが制限付きデバイスであり且つ制限付きデバイスへのサービス提供期間の開始から一定期間が経過した場合に、デバイス情報に関連する認可情報の無効化及び削除を行うことを特徴とするサーバ装置に関する発明が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第6354407号
【特許文献2】特開2021-196908号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
サービスを利用するためにアクセストークンが要求されるシステムにおいて、長期間利用されるサービスでは、アクセストークンを長期間保持しておくことが、ユーザの利便性を確保する上で望ましい。そこで、更新トークンを用いてアクセストークンを更新することが行われる。一方、アクセストークンを長期間保持すると、権限を有しない第三者により不正にアクセストークンが使用される機会も増加すると考えられ、情報漏洩のセキュリティリスクが増加する。
【0005】
本発明は、アクセストークンを有効期限により管理する場合と比較して、更新トークンを用いてアクセストークンを更新すると共にトークンが不正に使用される機会を減らすことにより、セキュリティリスクを低減させることを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載された発明は、1または複数のプロセッサを備え、前記1または複数のプロセッサは、サービスを利用する際に用いられるアクセストークンの発行要求を受け付け、前記アクセストークンおよび当該アクセストークンの有効期限が切れた際に当該アクセストークンを更新するために用いられる更新トークンの発行を指示し、前記指示により発行されたアクセストークンおよび更新トークンを取得し、予め定めた更新条件に基づいて、前記更新トークンを用いて前記アクセストークンを更新し、予め定めた破棄に関する条件に基づいて、前記更新トークンを破棄することを特徴とする情報処理システムである。
請求項2に記載された発明は、前記予め定めた破棄に関する条件には、サービスの利用者が前記サービスを利用せずに、一定の期間が経過したことが含まれることを特徴とする請求項1に記載の情報処理システムである。
請求項3に記載された発明は、前記期間は、利用する前記サービスの種類に応じて定められることを特徴とする請求項2に記載の情報処理システムである。
請求項4に記載された発明は、前記期間は、前記サービスの利用者による前記サービスの最終利用日時からの経過日時であることを特徴とする請求項2に記載の情報処理システムである。
請求項5に記載された発明は、前記プロセッサは、予め定められた期間ごとに、前記サービスの利用者による前記サービスの利用状況に基づいて前記破棄に関する条件を判断することを特徴とする請求項1に記載の情報処理システムである。
請求項6に記載された発明は、前記プロセッサは、前記サービスの利用者が、一のサービスまたは前記一のサービスに関連する他のサービスのうち、少なくともいずれか一つを利用している場合に、前記破棄に関する条件を満たさないと判断することを特徴とする請求項5に記載の情報処理システムである。
請求項7に記載された発明は、前記プロセッサは、前記サービスの利用者が、同一のアクセストークンを用いて利用可能なサービスのうち、少なくともいずれか一つを利用している場合に、前記破棄に関する条件を満たさないと判断することを特徴とする請求項5に記載の情報処理システムである。
請求項8に記載された発明は、前記プロセッサは、特定の関係にある複数の情報処理装置のうち、一の情報処理装置において、前記破棄に関する条件を満たすと判断した場合であっても、特定の関係にある他の情報処理装置においてサービスを利用している場合に、当該破棄に関する条件を満たさないと判断することを特徴とする請求項5に記載の情報処理システムである。
請求項9に記載された発明は、コンピュータに、サービスを利用する際に用いられるアクセストークンの発行要求を受け付ける機能と、前記アクセストークンおよび当該アクセストークンの有効期限が切れた際に当該アクセストークンを更新するために用いられる更新トークンの発行を指示する機能と、前記指示により発行されたアクセストークンおよび更新トークンを取得する機能と、予め定めた更新条件に基づいて、前記更新トークンを用いて前記アクセストークンを更新する機能と、予め定めた破棄に関する条件に基づいて、前記更新トークンを破棄する機能と、を実現させるためのプログラムである。
【発明の効果】
【0007】
請求項1の発明によれば、アクセストークンを有効期限により管理する場合と比較して、更新トークンを用いてアクセストークンを更新すると共にトークンが不正に使用される機会を減らすことにより、セキュリティリスクを低減させることができる。
請求項2の発明によれば、利用者のサービス利用状況を確認してトークンを破棄することができる。
請求項3の発明によれば、一定の期間が固定されている場合と比較して、トークンの破棄の期限をサービスの種類に応じて柔軟に定めることができる。
請求項4の発明によれば、利用者によるサービスの最終利用日時からの経過日時に応じてトークンを破棄することができる。
請求項5の発明によれば、予め定めた期間ごとに利用者のサービス利用状況を確認してトークンを破棄することができる。
請求項6の発明によれば、サービスごとに利用状況を確認する場合と比較して、関連するサービスの利用状況を確認してトークンを破棄することができる。
請求項7の発明によれば、サービスごとに利用状況を確認する場合と比較して、同一のアクセストークンを用いて利用可能なサービスの利用状況を確認してトークンを破棄することができる。
請求項8の発明によれば、情報処理装置ごとに利用状況を確認する場合と比較して、複数の情報処理装置の利用状況を確認してトークンを破棄することができる。
請求項9の発明によれば、本発明のプログラムをインストールしたコンピュータにより、アクセストークンを有効期限により管理する場合と比較して、更新トークンを用いてアクセストークンを更新すると共にトークンが不正に使用される機会を減らすことにより、セキュリティリスクを低減させることができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態が適用される情報処理システム全体の構成を示す図である。
【
図2】情報処理装置のハードウェア構成を示す図である。
【
図3】サービス提供サーバおよび認可サーバのハードウェア構成を示す図である。
【
図6】サービスアクセス管理DBの例を示す図である。
【
図10】サービス関連管理DBの例を示す図である。
【
図11】ログイン処理の例を表すシーケンス図である。
【
図12】トークンの取得処理の例を表すシーケンス図である。
【
図13】認可が必要なサービスのサービス実行処理の例を表すシーケンス図である。
【
図14】アクセストークンの再取得処理の例を表すシーケンス図である。
【
図15】更新トークンの整理処理の例を表すシーケンス図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
<情報処理システムの構成>
図1は、本実施形態が適用される情報処理システムの構成を示す図である。情報処理システム1は、情報処理装置100と、サービス提供サーバ200と、認可サーバ300とを備える。各装置100、200、300は、ネットワークを介して接続されている。
【0010】
情報処理装置100は利用者が使用する装置である。情報処理装置100はサービス提供サーバ200に接続しサービスを実行させる。例えば、情報処理装置100としては画像処理装置を、サービス提供サーバ200としてはSMTPサーバを用いてもよい。本実施形態によれば、画像処理装置によりスキャンした画像を電子メールに添付し、SMTPサーバにより宛先へ送信させる。また、情報処理装置100は、認可サーバ300に接続しサービス提供サーバ200のサービスを利用するために必要なアクセストークンを取得する。アクセストークンを発行するシステムとしては、例えばOAuth認可システムが挙げられる。
【0011】
サービス提供サーバ200は、利用者の要求に応じてサービスを提供するサーバである。例えば、上記のように情報処理装置100を画像処理装置とし、サービス提供サーバ200をSMTPサーバとする場合、SMTPサーバは画像処理装置から受信した電子メールを宛先へ送信する。なお、サービス提供サーバ200はサービスを提供するために、認可サーバ300により発行されたアクセストークンを必要とする。
【0012】
認可サーバ300は、アクセストークンを発行するサーバである。認可サーバ300は、認可フローにおいて情報処理装置100からの要求に応じてアクセストークンを発行し、発行したアクセストークンを情報処理装置100へ送信する。なお、認可フローとはアクセストークンを取得するための手順をいう。認可サーバ300は、アクセストークンと共に更新トークンを発行し、発行した更新トークンをアクセストークンと共に情報処理装置100へ送信する。以下、アクセストークンおよび更新トークンを区別しない場合、トークンと記載する。アクセストークンはセキュリティ上の観点から有効期限が設定される。更新トークンは、アクセストークンの有効期限が切れた際にアクセストークンを再発行するために用いられるトークンである。更新トークンには有効期限が設定される。更新トークンの有効期限はアクセストークンよりも長く設定される。
【0013】
また、認可サーバ300は、利用者による更新トークンを用いた要求に応じてアクセストークンを再発行する。更新トークンを用いた要求に基づくアクセストークンの発行では、認可フローを必要としない。アクセストークンが再発行される場合、アクセストークンだけでなく更新トークンも再発行される。トークンの再発行により、各トークンの有効な期間は、ぞれぞれのトークンに設定される有効期限に従って延長される。認可サーバ300は、トークンの発行に際し利用者を認証し、認証に成功した場合トークンを発行する。
【0014】
<情報処理装置のハードウェア構成>
図2は、情報処理装置100のハードウェア構成例を示す図である。
図2に示す情報処理装置100は、演算手段である1または複数のプロセッサ101と、記憶手段である主記憶装置(メイン・メモリ)102および補助記憶装置103と、表示情報を視認させるための表示機構104と、利用者からの操作を受け付けるための入力デバイス105と、情報通信に用いられるネットワーク・インターフェイス106とを備える。プロセッサ101は、補助記憶装置103に格納されたプログラムを主記憶装置102に読み込んで実行することにより、情報処理装置100の各機能を実現する。プロセッサ101としては、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などが用いられる。主記憶装置102としては、例えばRAM(Random Access Memory)が用いられる。補助記憶装置103としては、例えば磁気ディスク装置やSSD(Solid State Drive)等が用いられる。表示機構104としては、例えばディスプレイ等が用いられる。入力デバイス105としては、例えばキーボードやマウス、タッチパネル等が用いられる。なお、
図2に示す情報処理装置100の構成は一例に過ぎず、本実施形態で用いられる情報処理装置100は
図2の構成例に限定されるものではない。例えば、記憶装置として、フラッシュ・メモリ等の不揮発性のメモリやROM(Read Only Memory)を備える構成としても良い。
【0015】
<サービス提供サーバおよび認可のハードウェア構成>
図3は、サービス提供サーバ200および認可サーバ300のハードウェア構成例を示す図である。
図3に示すサービス提供サーバ200、認可サーバ300は、演算手段である1または複数のプロセッサ201,301と、記憶手段である主記憶装置(メイン・メモリ)202,302および補助記憶装置203,303と、情報通信に用いられるネットワーク・インターフェイス204,304とを備える。プロセッサ201,301は、補助記憶装置203,303に格納されたプログラムを主記憶装置202,302に読み込んで実行することにより、サービス提供サーバ200、認可サーバ300の各機能を実現する。プロセッサ201,301としては、例えば、CPU、MPU、GPU、DSP等が用いられる。主記憶装置202,302としては、例えばRAMが用いられる。補助記憶装置203,303としては例えば磁気ディスク装置やSSD等が用いられる。なお、
図3に示すサーバの構成は一例に過ぎず、本実施形態で用いられるサーバは
図3の構成例に限定されるものではない。例えば、記憶装置としてフラッシュ・メモリ等の不揮発性メモリやROMを備える構成としても良い。
【0016】
<情報処理装置の機能構成>
図4は、情報処理装置100の機能構成の例を示す図である。情報処理装置100は、記憶部110と、ログイン状況管理部121と、サービス管理部122と、アクセス制御部123と、認証管理部124と、トークン管理部125と、情報入出力部126と、通信部127とを備える。情報処理装置100の各機能は、プロセッサ101が、補助記憶装置103に格納されたプログラムを主記憶装置102に読み込んで実行することにより実現される。情報処理装置100は表示機構104を介して各種の画面を表示し、入力デバイス105を介して利用者からの入力を受け付ける。また、各種のデータベースは、補助記憶装置103に保持される。
【0017】
記憶部110は各種のデータベース(以下、「DB」とする。)から構成される。記憶部110は、利用者認証管理DB111と、サービスアクセス管理DB112と、ログイン状況管理DB113と、トークン管理DB114と、サービス認証管理DB115と、サービス関連管理DB116とを備える。
【0018】
図5は、利用者認証管理DB111の例を示す図である。利用者認証管理DB111は、利用者の認証情報を管理するデータベースである。
図5には、利用者認証管理DB111にて管理される情報を格納するテーブルが記載されている。
図5に示すテーブルでは、例えば、利用者ID欄701とパスワード欄702が設けられ、利用者IDとパスワードが格納されている。なお、利用者IDは利用者を識別する情報である。また、パスワードは利用者を認証するための情報である。ここでは、例えば利用者IDがaaaで定められる利用者(以下、「利用者aaa」とする。)のパスワードはpass01であることが記録されている。
【0019】
図6は、サービスアクセス管理DB112の例を示す図である。サービスアクセス管理DB112は、利用者が利用できるサービスを管理するデータベースである。
図6には、サービスアクセス管理DB112にて管理される情報を格納するテーブルが記載されている。
図6に示すテーブルでは、例えば、利用者ID欄711とサービスID欄712が設けられ、利用者IDとサービスIDが格納されている。なお、サービスIDは利用者が利用できるサービスを識別する情報である。ここでは、例えば利用者aaaは、サービスIDがsmtpで定められるサービス(以下、「SMTPサービス」とする。)を利用できることが記録されている。
【0020】
図7は、ログイン状況管理DB113の例を示す図である。ログイン状況管理DB113は、利用者によるサービスの最終利用日時を管理するデータベースである。
図7には、ログイン状況管理DB113にて管理される情報を格納するテーブルが記載されている。
図7に示すテーブルでは、例えば、利用者ID欄721と、サービスID欄722と、最終利用日時欄723とが設けられ、利用者IDと、サービスIDと、最終利用日時に関する情報が格納されている。なお、最終利用日時とは、利用者が最後にサービスを利用した日時を表す。ここでは、例えば利用者aaaは、SMTPサービスを2022年12月1日0時0分3秒に利用したことが記録されている。
【0021】
図8は、トークン管理DB114の例を示す図である。トークン管理DB114は、アクセストークンおよび更新トークンを管理するデータベースである。
図8には、トークン管理DB114にて管理される情報を格納するテーブルが記載されている。
図8に示すテーブルには、例えば、利用者ID欄731と、サービスID欄732と、アクセストークン欄733と、更新トークン欄734と、機能ID欄735とが設けられ、利用者IDと、サービスIDと、アクセストークンと、更新トークンと、機能IDが格納されている。また、機能IDは取得したアクセストークンで利用を許可されたサービスを表す識別情報である。
【0022】
図9は、サービス認証管理DB115の例を示す図である。サービス認証管理DB115は、破棄に関する条件を管理するデータベースである。
図9には、サービス認証管理DB115にて管理される情報を格納するテーブルが記載されている。
図9に示すテーブルでは、例えば、サービスID欄741と、ホスト名欄742と、更新トークンの破棄に関する条件欄743が設けられ、サービスIDと、ホスト名と、破棄に関する条件が格納されている。なお、ホスト名とは、情報処理装置100によるトークンの発行要求に応じてトークンを発行する認可サーバ300を識別する情報である。また、破棄に関する条件は、更新トークンを有効期限以外の条件で破棄するための条件である。破棄に関する条件は、システムの管理者等が定めることができる。例えば、サービスの利用者がサービスを利用せずに、一定の期間が経過した場合に更新トークンを破棄する、といった条件を定めることができる(以下、一定の期間を「破棄期間」とする。)。破棄期間は更新トークンの有効期限より短く設定される。また、破棄期間は、利用するサービスの種類に応じて定めることができる。ここでは、例えばSMTPサービスが、XXX日間利用されない場合に、更新トークンが破棄されることを記録している。したがって、更新トークンが有効期限内であっても破棄に関する条件を満たす場合、更新トークンは破棄されることとなる。なお、これらの破棄に関する条件は一例に過ぎず、本実施形態で用いられる破棄に関する条件に限定されるものではない。
【0023】
図10は、サービス関連管理DB116の例を示す図である。サービス関連管理DB116は、一のサービスと、それに関連するサービスを紐づけて管理するデータベースである。
図10には、サービス関連管理DB116にて管理される情報を格納するテーブルが記載されている。
図10に示すテーブルでは、例えばサービスID欄751と関連先サービスID欄752が設けられ、サービスIDと関連先サービスIDが格納されている。関連先サービスとは、一のサービスと関連があるサービスをいう。例えば、一の利用者が、一のサービスとしてメール送信のサービスを利用している場合、メール受信のサービスについても利用していると考えられる。したがって、メール送信のサービスとメール受信のサービスは関連しているサービスといえる。
図10に示すテーブルにおいては、SMTPサービスとサービスIDがpopで定められるサービス(以下、「POPサービス」とする。)は関連するサービスであることを記録している。
【0024】
ログイン状況管理部121は、利用者のログイン状況を管理する。具体的には、ログイン状況管理部121は、利用者が一のサービスにログインした際にログイン状況管理DB113の最終利用日時を更新する。また、ログイン状況管理部121は、更新トークンの整理処理が行われる場合、ログイン状況管理DB113を読み出し、ログイン状況管理DB113のテーブルに格納されている情報をアクセス制御部123へ送信する。
【0025】
サービス管理部122は、利用者が利用可能なサービスを管理する。具体的には、サービス管理部122は、利用者が情報処理装置100へのログイン処理を済ませると、サービスアクセス管理DB112を読み出し、利用者に利用可能なサービスを表示する。利用者からサービスが選択されると、サービス管理部122は、選択されたサービスが認可を必要とするか否か確認し、必要とする場合、認可に必要なトークンを発行する認可サーバ300を示すホスト名を特定する。また、サービス管理部122は、更新トークンの整理処理が行われる場合、サービス認証管理DB115を読み出し、サービス認証管理DB115のテーブルに格納されている情報をアクセス制御部123へ送信する。
【0026】
アクセス制御部123は、ユーザがサービスを利用するためのアクセス制御を行う。具体的に、アクセス制御部123は、情報処理装置100の動作を制御する役割を有し、利用者によるログイン処理、トークンの発行要求処理、サービスの実行処理、アクセストークンの再発行処理、およびトークンの整理処理に際し、各管理部に指示を送信する。また、アクセス制御部123は各管理部から応答を受信する。例えば、アクセス制御部123は、アクセストークンの発行要求を受け付け、アクセストークンの発行を指示し、発行されたアクセストークンを取得する。また、予め定めた更新条件に基づいて、更新トークンを用いてアクセストークンを更新することを指示し、予め定めた破棄に関する条件に基づいて、更新トークンを破棄することを指示する。詳細についてはシーケンス図を用いて後述する。
なお、予め定めた更新条件の一例として、利用者から利用するサービスの選択を受け付けることが挙げられる。また更新条件はこれに限定されない。例えば、一定期間ごとにサービスを提供する場合には、一定期間の経過を予め定めた更新条件として定めても良い。
【0027】
また、アクセス制御部123は、更新トークンの整理処理を行う際にログイン状況管理DB113、トークン管理DB114、およびサービス認証管理DB115の各々のテーブルに格納されている情報を、ログイン状況管理部121、サービス管理部122、および後述するトークン管理部125から受信し、更新トークンが破棄に関する条件を満たしているか否か判断する。
【0028】
認証管理部124は、利用者によるログイン処理の要求やトークンの発行要求、サービスの実行処理の要求があった場合、利用者認証管理DB111を読み出し、利用者により入力された認証情報と一致するか検証を行う。
【0029】
トークン管理部125は、アクセストークンおよび更新トークンを管理する。具体的には、トークン管理部125は、アクセス制御部123からトークンの発行要求を指示されると、認可サーバ300にトークンの発行要求を行う。トークン管理部125は、認可サーバ300からトークンを取得し、取得したトークンをトークン管理DB114に格納する。また、利用者によるサービス実行処理時、取得したアクセストークンをアクセス制御部123へ送信する。さらに、トークン管理部125は、更新トークンの整理処理が行われる場合、トークン管理DB114を読み出しトークン管理DB114のテーブルに格納されている情報をアクセス制御部123へ送信する。
【0030】
情報入出力部126は、情報処理装置100を利用する利用者にサービス選択画面等を表示し、利用者から、利用者の認証情報や利用するサービスの選択の入力を受け付けるユーザインターフェイスである。
【0031】
通信部127は、他の装置との間の通信を制御する。例えば、トークン管理部125が認可サーバ300にトークンの発行要求を行う場合や、サービス提供サーバ200にアクセストークンを送信する際、通信部127を介して情報の送受信を行う。
【0032】
<情報処理システムの動作概要の説明>
情報処理システム1の動作概要について説明する。なお、本実施形態は利用者がサービスの提供を受ける場合に認可を得ることが必要であることを前提とする。利用者は認可フローを実行して取得されるアクセストークンを用いることでサービスの提供を受けることができる。
【0033】
図11は、利用者によるログイン処理を表すシーケンス図を示す図である。アクセス制御部123は、利用者から情報入出力部126を介してログイン要求を受け付ける(S101)。アクセス制御部123は、認証管理部124に認証情報の検証を指示する(S102)。認証管理部124は、利用者認証管理DB111を読み込み、利用者により入力された情報と利用者認証管理DB111で管理されている情報が一致するか検証する(S103)。例えば利用者により入力された利用者IDおよびパスワードが、利用者認証管理DB111にて管理されている利用者IDおよびパスワードと一致するか否かを判断すればよい。認証管理部124は認証が成功した場合、アクセス制御部123に認証が成功したことを示す認証結果を送信する(S104)。一方、認証が失敗した場合、以後の動作は行われない。アクセス制御部123は、認証管理部124から認証が成功したことを示す認証結果を受信すると、情報入出力部126に利用者にサービスを選択させる画面を表示させる(S105)。また、アクセス制御部123は、ログイン状況管理部121にログイン状況管理DB113を更新することを指示する(S106)。ログイン状況管理部121はログイン状況管理DB113で管理されている最終利用日時を更新する(S107)。
【0034】
図12は、トークンの取得処理を表すシーケンス図を示す図である。
利用者はアクセストークンを取得するために認可フローを実行する必要がある。より具体的に、アクセス制御部123は、利用者から情報入出力部126を介して利用するサービスの選択を受け付ける(S201)。アクセス制御部123は、認証管理部124に認証情報の検証を指示する(S202)。認証管理部124は、上記S103と同様に認証情報の検証を行う(S203)。認証管理部124は、認証が成功した場合、アクセス制御部123に認証が成功したことを示す認証結果を送信する(S204)。アクセス制御部123は、認証管理部124から認証が成功したことを示す認証結果を受信すると、サービス管理部122に利用者に選択されたサービスが認可を必要とするか検証を行うことを指示する(S205)。利用者により選択されたサービスが認可を必要とする場合、サービス管理部122は、認可に必要なトークンを発行する認可サーバ300を示すホスト名を特定する(S206)。サービス管理部122は、特定したホスト名をアクセス制御部123に送信する(S207)。
【0035】
アクセス制御部123は、トークン管理部125にS206で特定したホスト名に対応する認可サーバ300に対し、トークンの発行要求を行うことを指示する(S208)。トークン管理部125は、認可サーバ300にトークンの発行要求を行い、認可サーバ300からトークンを取得する(S209)。アクセス制御部123は、トークン管理部125に、取得したトークンをトークン管理DB114に格納することを指示する(S210)。トークン管理部125は、取得したトークンをトークン管理DB114に格納する(S211)。
【0036】
図13は、利用者によるサービスの実行処理を表すシーケンス図を示す図である。
アクセス制御部123は、利用者から情報入出力部126を介して利用するサービスの選択を受け付ける(S301)。アクセス制御部123は認証管理部124にサービスを利用する利用者が認証済みであるか確認することを指示する(S302)。認証管理部124は、利用者が認証済みであるか確認する(S303)。例えば、利用者によりログイン処理が行われていれば、認証済みであると判断すればよい。認証管理部124は認証済みであることを確認し、認証済みであることを示す認証結果をアクセス制御部123に送信する(S304)。アクセス制御部123は、トークン管理部125に、S209で取得したアクセストークンを送信することを指示する(S305)。アクセス制御部123はトークン管理部125からアクセストークンを取得する(S306)。アクセス制御部123は、アクセストークンをサービス提供サーバ200に送信し利用者にサービスを提供する(S307)。
【0037】
上述したように、セキュリティ上の観点からアクセストークンは有効期限が設定され、有効期限が切れたアクセストークンは破棄される。アクセストークンが破棄された後に利用者が再びサービスの提供を受けるためにはアクセストークンを再取得する必要がある。
【0038】
図14は、アクセストークンの再取得処理を表すシーケンス図を示す図である。アクセストークンの再取得は予め定めた更新条件に基づいて行われる。なお、本処理において、利用者はアクセストークンを取得するために認可フローを実行する必要はない。
アクセス制御部123は、利用者から情報入出力部126を介して利用するサービスの選択を受け付ける(S401)。アクセス制御部123は、トークン管理部125に利用者に選択されたサービスに対応するアクセストークンが有効か否かを確認することを指示する(S402)。トークン管理部125は利用者に選択されたサービスに対応するアクセストークンが有効か否かを確認する(S403)。例えばアクセス制御部123が、利用者IDおよび選択されたサービスに対応するサービスIDをトークン管理部125に送信する。トークン管理部125はトークン管理DB114を読み込み、アクセス制御部123から受信した利用者IDおよびサービスIDに対応するアクセストークンを特定し、アクセストークンの有効期限を確認すればよい。アクセストークンの有効期限が切れている場合、トークン管理部125はアクセストークンの有効期限が切れていることを示す結果をアクセス制御部123に送信する(S404)。アクセス制御部123は、トークン管理部125から有効期限が切れていることを示す結果を受信すると、トークン管理部125にアクセストークンの再発行要求を行うことを指示する(S405)。トークン管理部125は、認可サーバ300に更新トークンを用いてトークンの発行要求を行い、トークンを取得する(S406)。
【0039】
図15は更新トークンの整理処理を表すシーケンス図を示す図である。本実施形態では、破棄に関する条件について破棄期間を用いることとする。
アクセス制御部123は、トークン管理部125にトークン管理DB114にて管理される情報を送信することを指示する(S501)。トークン管理部125は、トークン管理DB114を読み込み、取得した情報をアクセス制御部123に送信する(S502)。例えばトークン管理DB114にて管理される利用者ID、サービスID、および更新トークンに関する情報を取得し送信する。また、アクセス制御部123は、サービス管理部122にサービス認証管理DB115にて管理される情報を送信することを指示する(S503)。サービス管理部122は、サービス認証管理DB115を読み込み、取得した情報をアクセス制御部123に送信する(S504)。例えばサービス認証管理DB115にて管理されるサービスID、ホスト名、および破棄に関する条件を取得し送信する。さらに、アクセス制御部123は、ログイン状況管理部121にログイン状況管理DB113にて管理される情報を送信することを指示する(S505)。ログイン状況管理部121は、ログイン状況管理DB113を読み込み、取得した情報をアクセス制御部123に送信する(S506)。例えばログイン状況管理DB113にて管理される利用者ID、サービスID、および最終利用日時に関する情報を取得し送信する。
【0040】
アクセス制御部123は、S501からS506で得られた情報を基に、破棄に関する条件を満たす更新トークンを判断する(S507)。より具体的に、アクセス制御部123は、サービス認証管理DB115にて管理されるサービスIDを用いて、サービスごとに破棄期間を確認する。また、アクセス制御部123は、ログイン状況管理DB113にて管理される利用者IDおよびサービスIDを用いて、利用者によるサービスの最終利用日時を確認し、利用者によるサービスの最終利用日時からトークンの整理処理の実行日時までの期間(以下、利用者によるサービスの最終利用日時からトークンの整理処理の実行日時までの期間を「非利用期間」とする。)を特定する。さらに、アクセス制御部123は、トークン管理部125にて管理される更新トークンについて、破棄期間と非利用期間を比較することにより破棄に関する条件を判断する。より具体的に、例えば、更新トークンの破棄期間を7日間と設定する。利用者によるサービスの最終利用日時からトークンの整理処理の実行日時まで10日間サービスの利用がなかった場合、非利用期間は10日間と特定され、破棄期間<非利用期間となるため、アクセス制御部123は破棄に関する条件を満たすと判断する。アクセス制御部123は、更新トークンが破棄に関する条件を満たすと判断した場合、トークン管理部125に更新トークンを破棄することを指示する(S508)。トークン管理部125は、トークン管理DB114にて管理される更新トークンを破棄する(S509)。
【0041】
また、アクセス制御部123は、更新トークンが破棄に関する条件を満たさないと判断した場合、トークン管理部125に更新トークンを再発行することを指示する。なお、更新トークンの取得先は、サービス認証管理DB115から取得したホスト名を用いればよい。また、本処理において、利用者は認可フローを実行する必要はない。
【0042】
上記トークンの整理処理は、予め定めた期間ごとに行うことを定めることができる。また、予め定めた期間は、システム管理者等によって定めることができる。さらに、破棄に関する条件として更新トークンの有効期限よりも短い破棄期間を設定することにより、破棄に関する条件を満たす場合、更新トークンが有効期限内であっても更新トークンを破棄することができ、利用されないトークンが存続する期間が短くなるため、第三者がトークンを不正に使用できる機会を減らすことができる。
【0043】
上述した実施例では、破棄期間と非利用期間を比較することにより破棄に関する条件を判断した。一方、サービスの最終利用日時を用いずに、破棄期間を用いて破棄に関する条件を判断しても良い。例えば、前回の整理処理の実行日時から今回の整理処理の実行日時までに、サービスを利用せずに破棄期間が経過してしまった期間がある場合、破棄に関する条件を判断する直前に利用者がサービスを利用していた場合であっても、更新トークンは破棄の条件を満たすとして、更新トークンを破棄することを定めても良い。より具体的に、例えば、更新トークンの破棄期間を7日間と設定し、破棄に関する条件を判断するための期間を30日と設定する。この場合、破棄に関する条件を判断する直前の7日以内に利用者がサービスを利用していた場合であっても、過去30日間の何れかの期間においてサービスを利用せずに7日間が経過してしまった期間がある場合、更新トークンが破棄される。
【0044】
<変形例>
上述した例では、利用者のサービスごとの利用状況を用いて破棄に関する条件を判断した。ただし、本実施形態では、利用者の複数のサービス利用状況を用いて破棄に関する条件を判断しても良い。
例えば、相互に関連するサービスを設定し、設定された関連する複数のサービスの一つが利用されていれば、各サービスについて破棄に関する条件を満たさないと判断しても良い。この場合、更新トークンの整理処理において、アクセス制御部123はS501~S506の動作に加えて、サービス関連管理DB116にて管理される関連先サービスIDを用いて関連先サービスを取得する。これにより、アクセス制御部123は、利用者の複数のサービス利用状況を取得することができ、利用者の複数のサービス利用状況を用いて破棄に関する条件を判断することが可能となる。サービスの例としては、例えばメール送信のサービスやメール受信のサービスが挙げられる。通常、利用者はメール送信のサービスを利用している場合、メール受信のサービスも利用していると考えられる。したがって、メール送信のサービスとメール受信のサービスは関連しているサービスといえる。例えば、利用者がメール送信のサービスを利用せず、メール送信のサービスに対応する更新トークンが、破棄に関する条件を満たすこととなった場合、メール受信のサービスを継続的に利用していてもメール送信のサービスに対応する更新トークンは破棄される。そこで、利用者がメール送信のサービスを利用していない場合であっても、メール送信のサービスに関連するサービスとしてメール受信のサービスを利用している場合には、更新トークンは破棄に関する条件を満たさないと判断することを定めても良い。より具体的に、アクセス制御部123が、ログイン状況管理部121を介してSMTPサービスについて、サービスの最終利用日時を取得する。また、アクセス制御部123は、サービス関連管理DB116にてSMTPサービスの関連先サービスとして設定されたサービス、例えばPOPサービスについてもログイン状況管理部121を介してサービスの最終利用日時を取得する。これにより、複数のサービス利用状況を用いて破棄に関する条件を判断することが可能となり、SMTPサービスを利用せず破棄期間が経過している場合であっても、POPサービスを破棄期間内に利用していれば、SMTPサービスに対応する更新トークンは破棄に関する条件を満たさないと判断する。これにより、更新トークンの破棄は行われない。
【0045】
また、同一のアクセストークンを用いて利用可能なサービスが複数ある場合、かかる複数のサービスの一つの利用状況が更新トークンの破棄に関する条件を満たさないものであるならば、同一のアクセストークンが用いられる全てのサービスについて破棄に関する条件を満たさないと判断しても良い。例えば、メールの送受信のサービスと印刷のサービスとが同一のアクセストークンを用いて利用可能に設定されている場合を考える。このとき、破棄期間内にメール送信のサービスやメール受信のサービスは利用していないが、印刷のサービスは利用しているといった場合、メール送信のサービスやメール受信のサービスに対応する更新トークンは破棄に関する条件を満たさないと判断する。例えば、アクセス制御部123は、S506の動作において、ログイン状況管理DB113から同一のアクセストークンを用いて利用可能な複数のサービスについて、サービスの最終利用日時を取得する。アクセス制御部123は、S507の動作において、取得した複数のサービスのうち、少なくとも一つ破棄に関する条件を満たさないものがあるか判断すればよい。
【0046】
さらに、特定の関係にある複数の情報処理装置100のサービスの利用状況を用いて破棄に関する条件を判断しても良い。ここで、特定の関係にある複数の情報処理装置100とは、データ交換により利用者によるサービスの利用状況に関する情報を共有するように設定された複数の情報処理装置100である。この変形例は、一のLAN(Local Area Network)に接続された情報処理装置100、営業所やオフィスなど(以下、「拠点」とする。)に設置された情報処理装置100などに対して適用し得る。利用者によるサービスの利用状況に関する情報の共有は、例えば、各情報処理装置100が自装置の情報を交換することにより実現しても良いし、各情報処理装置100が接続されたネットワーク上のサーバにより一元管理することで実現しても良い。
【0047】
一例として、一の拠点内に複数の情報処理装置100が設置され、利用者は複数の情報処理装置100を利用していた場合を考える。複数の情報処理装置100を区別するために、拠点内の一の情報処理装置100を情報処理装置100Aとし、他の一の情報処理装置100を情報処理装置100Bとする。なお、情報処理装置100が設置される地点は、一の拠点内において、設置可能な地点であれば制限されることはない。例えば、一つのフロアの2か所に情報処理装置100Aと情報処理装置100Bとが設置されていても良いし、異なるフロアに個別に情報処理装置100Aと情報処理装置100Bとが設置されていても良い。
【0048】
利用者が、一のサービスを利用するために情報処理装置100A、100Bのどちらも利用することができる場合であって、情報処理装置100Aにおけるサービスの利用頻度は高いが、情報処理装置100Bにおけるサービスの利用頻度は低いといった場合を考える。この場合、更新トークンの破棄に関する条件を装置ごとに判断すると、情報処理装置100Bにおける更新トークンに関して破棄に関する条件を満たした場合、情報処理装置100Aで同一のサービスを利用していても、情報処理装置100Bで管理されている更新トークンは破棄される。この場合、利用者が情報処理装置100Bを用いてサービスを利用するには、再度認可フローを実行してアクセストークンを取得しなければならず、手間が増大する。利用者が情報処理装置100Aを用いてサービスを利用しており、更新トークンの破棄に関する条件を満たさない場合には、情報処理装置100Bにおいて破棄期間を超えてサービスを利用していない場合であっても、情報処理装置100Bにおける更新トークンについても破棄に関する条件を満たさないと判断する。これにより、情報処理装置100Bにて管理されている更新トークンの破棄は行われない。
【0049】
以上、本発明の実施形態について説明したが、本発明の技術的範囲は上記実施形態には限定されない。例えば本実施形態では、破棄に関する条件として破棄期間を用いたが、利用者の認証情報が削除されている場合に更新トークンを破棄すると定めても良い。利用者の認証情報の削除の要因として例えば、利用者の異動や退職等が考えられる。より具体的に、通常、利用者が退職した場合には利用者に関する情報は削除されると考えられる。そのような場合、破棄に関する条件を判断する際に、存在しない利用者の認証情報、例えば利用者IDを検出し、更新トークンを破棄するといった動作をさせることができる。また、上述した例では、予め定められた期間ごとに破棄に関する条件を判断し更新トークンを破棄したが、破棄に関する条件として破棄期間を設定した場合、サービスの最終利用日時からの経過時間が破棄期間に達した場合に自動的に更新トークンを破棄するという態様を取ることもできる。その他、本発明の技術思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。
【0050】
<付記>
(((1)))
1または複数のプロセッサを備え、前記1または複数のプロセッサは、サービスを利用する際に用いられるアクセストークンの発行要求を受け付け、前記アクセストークンおよび当該アクセストークンの有効期限が切れた際に当該アクセストークンを更新するために用いられる更新トークンの発行を指示し、前記指示により発行されたアクセストークンおよび更新トークンを取得し、予め定めた更新条件に基づいて、前記更新トークンを用いて前記アクセストークンを更新し、予め定めた破棄に関する条件に基づいて、前記更新トークンを破棄することを特徴とする情報処理システム。
(((2)))
前記予め定めた破棄に関する条件には、サービスの利用者が前記サービスを利用せずに、一定の期間が経過したことが含まれることを特徴とする(((1)))に記載の情報処理システム。
(((3)))
前記期間は、利用する前記サービスの種類に応じて定められることを特徴とする(((2)))に記載の情報処理システム。
(((4)))
前記期間は、前記サービスの利用者による前記サービスの最終利用日時からの経過日時であることを特徴とする(((2)))または(((3)))に記載の情報処理システム。
(((5)))
前記プロセッサは、予め定められた期間ごとに、前記サービスの利用者による前記サービスの利用状況に基づいて前記破棄に関する条件を判断することを特徴とする(((1)))から(((4)))のいずれかに記載の情報処理システム。
(((6)))
前記プロセッサは、前記サービスの利用者が、一のサービスまたは前記一のサービスに関連する他のサービスのうち、少なくともいずれか一つを利用している場合に、前記破棄に関する条件を満たさないと判断することを特徴とする(((1)))から(((5)))のいずれかに記載の情報処理システム。
(((7)))
前記プロセッサは、前記サービスの利用者が、同一のアクセストークンを用いて利用可能なサービスのうち、少なくともいずれか一つを利用している場合に、前記破棄に関する条件を満たさないと判断することを特徴とする(((1)))から(((6)))のいずれかに記載の情報処理システム。
(((8)))
前記プロセッサは、特定の関係にある複数の情報処理装置のうち、一の情報処理装置において、前記破棄に関する条件を満たすと判断した場合であっても、特定の関係にある他の情報処理装置においてサービスを利用している場合に、当該破棄に関する条件を満たさないと判断することを特徴とする(((1)))から(((7)))のいずれかに記載の情報処理システム。
(((9)))
コンピュータに、サービスを利用する際に用いられるアクセストークンの発行要求を受け付ける機能と、前記アクセストークンおよび当該アクセストークンの有効期限が切れた際に当該アクセストークンを更新するために用いられる更新トークンの発行を指示する機能と、前記指示により発行されたアクセストークンおよび更新トークンを取得する機能と、予め定めた更新条件に基づいて、前記更新トークンを用いて前記アクセストークンを更新する機能と、予め定めた破棄に関する条件に基づいて、前記更新トークンを破棄する機能と、を実現させるためのプログラム。
【0051】
(((1)))の発明によれば、アクセストークンを有効期限により管理する場合と比較して、更新トークンを用いてアクセストークンを更新すると共にトークンが不正に使用される機会を減らすことにより、セキュリティリスクを低減させることができる。
(((2)))の発明によれば、利用者のサービス利用状況を確認してトークンを破棄することができる。
(((3)))の発明によれば、一定の期間が固定されている場合と比較して、トークンの破棄の期限をサービスの種類に応じて柔軟に定めることができる。
(((4)))の発明によれば、利用者によるサービスの最終利用日時からの経過日時に応じてトークンを破棄することができる。
(((5)))の発明によれば、予め定めた期間ごとに利用者のサービス利用状況を確認してトークンを破棄することができる。
(((6)))の発明によれば、サービスごとに利用状況を確認する場合と比較して、関連するサービスの利用状況を確認してトークンを破棄することができる。
(((7)))の発明によれば、サービスごとに利用状況を確認する場合と比較して、同一のアクセストークンを用いて利用可能なサービスの利用状況を確認してトークンを破棄することができる。
(((8)))の発明によれば、情報処理装置ごとに利用状況を確認する場合と比較して、複数の情報処理装置の利用状況を確認してトークンを破棄することができる。
(((9)))の発明によれば、本発明のプログラムをインストールしたコンピュータにより、アクセストークンを有効期限により管理する場合と比較して、更新トークンを用いてアクセストークンを更新すると共にトークンが不正に使用される機会を減らすことにより、セキュリティリスクを低減させることができる。
【符号の説明】
【0052】
100…情報処理装置、200…サービス提供サーバ、300…認可サーバ、110…記憶部、111…利用者認証管理DB、112…サービスアクセス管理DB、113…ログイン状況管理DB、114…トークン管理DB、115…サービス認証管理DB、116…サービス関連管理DB、121…ログイン状況管理部、122…サービス管理部、123…アクセス制御部、124…認証管理部、125…トークン管理部、126…情報入出力部、127…通信部