JP2013182375A - サービス利用管理方法、プログラム、および情報処理装置 - Google Patents

サービス利用管理方法、プログラム、および情報処理装置 Download PDF

Info

Publication number
JP2013182375A
JP2013182375A JP2012045245A JP2012045245A JP2013182375A JP 2013182375 A JP2013182375 A JP 2013182375A JP 2012045245 A JP2012045245 A JP 2012045245A JP 2012045245 A JP2012045245 A JP 2012045245A JP 2013182375 A JP2013182375 A JP 2013182375A
Authority
JP
Japan
Prior art keywords
information
token
server
user
certification information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012045245A
Other languages
English (en)
Other versions
JP5845973B2 (ja
Inventor
Akio Shimono
暁生 下野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012045245A priority Critical patent/JP5845973B2/ja
Priority to EP13155908.0A priority patent/EP2634720B1/en
Priority to US13/778,857 priority patent/US9203828B2/en
Publication of JP2013182375A publication Critical patent/JP2013182375A/ja
Application granted granted Critical
Publication of JP5845973B2 publication Critical patent/JP5845973B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】サービスの利用権を証明する情報の連鎖発行回数を把握可能とする。
【解決手段】受信手段2aが、証明情報を、ユーザ4の使用する端末装置5から受信する。証明情報には、発行元が提供するサービスに対するユーザの利用権を証明する証明情報であり、一証明情報に基づき他の証明情報を連鎖的に発行する処理が行われた回数と、発行元の識別子とが含まれる。生成手段2bが、受信した証明情報の発行元の識別子が、情報処理装置2以外の識別子の場合に、情報処理装置2が提供するサービスに対するユーザ4の利用権を証明する証明情報を生成する。その証明情報には、受信した証明情報に示される回数に1を加算した回数と、情報処理装置2の識別子とが含まれる。送信手段2cが、生成した証明情報を、端末装置5に送信する。
【選択図】図1

Description

本発明はサービス利用管理方法、プログラム、および情報処理装置に関する。
コンピュータネットワーク上のサーバからサービスの提供を受けるユーザは、複数のサーバそれぞれが提供するサービスを利用する場合がある。このような場合において、ユーザが、サービスの提供を利用する度に、各サーバで個別に個人認証を受けていたのでは、ユーザの手間が大きい。またこのような場合、各サーバにおいて、自己がサービスを提供するすべてのユーザのアカウント情報を個別に管理することとなり、サーバの管理者にとっての管理負担も過大となる。
そこで、シングル・サイン・オンという技術がある。シングル・サイン・オンは、一度の認証処理によって複数のコンピュータ上のリソースを利用できるようにする認証技術である。一般的に、シングル・サイン・オンでは、ユーザが認証を受けたサーバと所定の関係を有するサーバにおいて、そのユーザに対して、そのサーバでのユーザ認証を経ずにサービスが提供される。例えば、複数のドメインに存在する複数のネットワークにアクセスするためのシングル・サイン・オンを可能にする技術がある。
特表2008−506139号公報
ユーザ認証を行ったサーバは、例えば、サービスを利用する権利があることを証明する情報(以下、証明情報と呼ぶ)を、ユーザ宛に発行することができる。この場合、ユーザは、発行された証明情報を付与した要求をサーバに送信することで、サーバからサービスの提供を受けることができる。ここで、あるサーバが発行した証明情報を、別のサーバでも利用できるようにすれば、ユーザは、1つのサーバで認証を受けるだけで、複数のサーバのサービスを利用可能となる。
例えば、ユーザは、認証を受けた第1のサーバで発行された証明情報を、第2のサーバに送信する。第2のサーバは、処理要求に付与された証明情報に基づいて、そのユーザがサービスを利用する権利を有していることを認証し、自己のサービスを利用するための証明情報をそのユーザに対して連鎖的に発行する。すると、第2のサーバで発行された証明情報を用いて、ユーザは、第2のサーバからサービスの提供を受けることが可能となる。このようなシステムを構築すると、ユーザは、第2のサーバで連鎖的に発行された証明情報を用いて、第3のサーバから連鎖的な証明情報の発行を受け、第3のサーバからサービスの提供を受けることも可能となる。
しかし、このような連鎖的な証明情報の発行を無制限に許容すると、ユーザがサービスの提供を受けることができるサーバの範囲が無制限に広がってしまう。これは、サーバの管理者の立場から見ると、信頼できないユーザにまで、そのサーバを利用可能なユーザの範囲が広がってしまう可能性があることを意味する。このような連鎖的な証明情報の発行の無制限な繰り返しを抑止するには、連鎖的な証明情報の発行の回数を制限することが考えられるが、現在は、連鎖的な証明情報の発行回数を把握する技術がない。
1つの側面では、本発明は、サービスの利用権を証明する情報の連鎖的な発行回数を把握可能とするサービス利用管理方法、プログラム、および情報処理装置を提供することを目的とする。
1つの案では、情報処理装置が、発行元の装置が提供するサービスに対するユーザの利用権を証明する証明情報であり、一の証明情報に基づき他の証明情報を発行する連鎖的な発行処理が行われた回数と、発行元の装置の識別子とを含む証明情報を、ユーザの使用する端末装置から受信し、受信した証明情報の発行元の装置の識別子が、情報処理装置以外の識別子である場合に、受信した証明情報に示される回数に1を加算した回数と、情報処理装置の識別子とを含み、情報処理装置が提供するサービスに対するユーザの利用権を証明する証明情報を生成し、生成した証明情報を、端末装置に送信する、サービス利用管理方法が提供される。
1態様によれば、サービスの利用権を証明する情報の連鎖発行回数を把握できる。
第1の実施の形態に係るシステムの構成の一例を示す図である。 第1の実施の形態における連鎖的な証明情報の発行処理の手順の一例を示すシーケンス図である。 第2の実施の形態のシステム構成例を示す図である。 本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。 複数のサービスを連携させて実行する業務の一例を示す図である。 第2の実施の形態における各装置の機能の一例を示す図である。 信頼関係情報記憶部の格納情報の一例を示す図である。 トークンに含まれる情報の一例を示す図である。 トークンを連鎖的に発行することによるサービス提供処理の第1の例を示すシーケンス図である。 トークンを連鎖的に発行することによるサービス提供処理の第2の例を示すシーケンス図である。 関係に基づくトークン発行処理の手順の一例を示すフローチャートである。 有効性判定処理の手順の一例を示すフローチャートである。 トークン生成処理の手順の一例を示すフローチャートである。 発行されるトークンの推移例を示す第1の図である。 発行されるトークンの推移例を示す第2の図である。 第3の実施の形態におけるトークンに含まれる情報の一例を示す図である。 発行履歴の一例を示す図である。 第3の実施の形態における有効性判定処理の手順の一例を示すフローチャートである。 第3の実施の形態におけるトークン生成処理の手順の一例を示すフローチャートである。 第3の実施の形態において発行されるトークンの推移例を示す第1の図である。 第3の実施の形態において発行されるトークンの推移例を示す第2の図である。 第4の実施の形態における信頼関係情報記憶部の格納情報の一例を示す図である。 第4の実施の形態におけるユーザ管理テーブルのデータ構造の一例を示す図である。 第4の実施の形態における関係定義テーブルのデータ構造の一例を示す図である。 役割割当ポリシ定義テーブルのデータ構造の一例を示す図である。 サービス定義テーブルのデータ構造の一例を示す図である。 第4の実施の形態におけるトークンに含まれる情報の一例を示す図である。 自身が認証したユーザへのトークン発行処理の手順の一例を示すフローチャートである。 関係に基づくトークン発行処理の手順の一例を示すフローチャートである。 第4の実施の形態におけるトークン生成処理の手順の一例を示すフローチャートである。 第5の実施の形態におけるトークンに含まれる情報の一例を示す図である。 第5の実施の形態におけるトークン生成処理の手順の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、他の装置でユーザ認証されたユーザに対して発行された証明情報に基づいて、自装置で提供するサービスを利用する権利を証明する証明情報を連鎖的に発行する際に、連鎖的な証明情報の発行を行った回数をカウントアップするものである。
図1は、第1の実施の形態に係るシステムの構成の一例を示す図である。第1の実施の形態では、ネットワーク6を介して複数の情報処理装置1〜3と、ユーザ4が使用する端末装置5とが接続されている。情報処理装置1〜3は、端末装置5からの要求に応じて、サービスを提供する。ユーザ4は、端末装置5を用いて情報処理装置1〜3で提供されるサービスを利用する。また、情報処理装置1〜3は、予め登録されたアカウント情報に基づくユーザ認証機能を有している。そして情報処理装置1〜3は、ユーザ認証を行ったユーザに対して、自装置内で提供するサービスに対するユーザの利用権を証明する証明情報を発行することができる。
さらに情報処理装置1〜3は、他の装置で発行された証明情報に基づいて、連鎖的に、装置内で提供するサービスに対するユーザの利用権を証明する証明情報を発行することもできる。連鎖的に証明情報を発行する場合、情報処理装置1〜3は、連鎖的な証明情報の発行を行った回数を、認証情報内に設定する。図1には、代表的に、情報処理装置2における連鎖的な証明情報の発行を行うための機能を示している。
情報処理装置2は、連鎖的な証明情報の発行を行うために、受信手段2a、生成手段2b、および送信手段2cを有する。
受信手段2aは、発行元の装置が提供するサービスに対するユーザの利用権を証明する証明情報を、ユーザ4の使用する端末装置5から受信する。証明情報は、一の証明情報に基づき他の証明情報を発行する連鎖的な処理が行われた回数と、発行元の装置の識別子とが含まれる。
生成手段2bは、受信した証明情報の発行元の装置の識別子が、情報処理装置以外の識別子の場合に、情報処理装置2が提供するサービスに対するユーザ4の利用権を証明する証明情報を生成する。生成される証明情報には、受信した証明情報に示される回数に1を加算した回数と、情報処理装置2の識別子とが含まれる。
送信手段2cは、生成した証明情報を、端末装置5に送信する。
なお情報処理装置2と同様の機能を、他の情報処理装置1,3も有している。また受信手段2a、生成手段2b、および送信手段2cは、情報処理装置が有するCPU(Central Processing Unit)により実現することができる。また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、ユーザ4が情報処理装置3でユーザ認証を受け、情報処理装置1のサービスを利用する場合を例に採り、連鎖的な証明情報の発行処理の手順について説明する。
図2は、第1の実施の形態における連鎖的な証明情報の発行処理の手順の一例を示すシーケンス図である。図2の例では、情報処理装置1で提供されるサービスを「サービスA」、情報処理装置2で提供されるサービスを「サービスB」、情報処理装置3で提供されるサービスを「サービスC」とする。以下、図2に示す処理をステップ番号に沿って説明する。
[ステップS1]ユーザ4は、端末装置5に対して、情報処理装置3へのログイン操作を行う。例えばユーザ4は、認証情報(ユーザIDとパスワード)を端末装置5に入力する。
[ステップS2]端末装置5は、情報処理装置3に対して、認証情報を送信する。
[ステップS3]情報処理装置3は、認証情報に基づいて、ユーザ認証を行う。例えば情報処理装置3は、予め登録されたアカウント情報の中に、端末装置5から送られた認証情報に合致するアカウント情報があるか否かを判断する。情報処理装置3は、該当するアカウント情報があれば、ユーザ4を、そのアカウント情報に対応するユーザであると認証する。
[ステップS4]情報処理装置3は、ユーザ認証に成功すると、認証結果を端末装置5に応答する。
[ステップS5]端末装置5は、認証結果をモニタなどに表示する。
[ステップS6]ユーザ認証が成功したことを認識したユーザ4は、端末装置5に対して、サービスAへのアクセスが必要となる操作を行う。
[ステップS7]端末装置5は、ユーザ4の操作に応答し、ユーザ認証を行った情報処理装置3に対して証明情報発行要求を送信する。例えば、証明情報発行要求の送信は、認証情報送信と同じセッションで行われる。
[ステップS8]情報処理装置3は、ユーザ認証を行ったユーザ4からの証明情報発行要求に応じて、サービスCをユーザ4が利用する権利を証明する証明情報を発行する。例えば情報処理装置3は、認証情報を受信したセッションと同じセッションで証明情報発行要求を受信したことで、ユーザ認証を行ったユーザからの証明情報発行要求であると認識する。このとき発行される証明情報には、連鎖的な証明情報の発行処理の回数として「0」が設定される。また、証明情報には、発行元の装置の識別子として、情報処理装置3の識別子が含まれる。
[ステップS9]情報処理装置3は、発行したサービスC用の証明情報を端末装置5に送信する。
[ステップS10]端末装置5は、サービスC用の証明情報を情報処理装置2に送信する。例えば端末装置5は、証明情報発行要求にサービスC用の証明情報を付与し、サービスC用の証明情報を含む証明情報発行要求を、情報処理装置2に送信する。
[ステップS11]情報処理装置2は、自身以外の情報処理装置3が発行した証明情報であることを確認し、自身のサービスBを利用する権利を証明する証明情報を、連鎖的に発行する。このとき発行される証明情報には、連鎖的な証明情報の発行処理の回数として「1」が設定される。
例えば情報処理装置2では、端末装置5から送られた証明情報を、受信手段2aが受信する。受信手段2aは、受信した証明情報を、生成手段2bに転送する。
生成手段2bは、取得した証明情報に、発行元の装置の識別子として情報処理装置3の識別子が設定されていることで、自身以外の装置で発行された証明情報であると認識する。次に生成手段2bは、情報処理装置2が提供するサービスBに対するユーザ4の利用権を証明する証明情報を生成する。生成される証明情報には、受信した証明情報に示される回数に1を加算した回数と、情報処理装置2の識別子とが含まれる。受信したサービスC用の証明情報に示される回数は「0」であるため、生成手段2bが生成した証明情報には回数「1」が設定される。生成手段2bは、生成された証明情報を送信手段2cに渡す。
[ステップS12]情報処理装置2の送信手段2cは、生成手段2bが生成した証明情報を、端末装置5に送信する。
[ステップS13]端末装置5は、サービスB用の証明情報を情報処理装置1に送信する。例えば端末装置5は、証明情報発行要求にサービスB用の証明情報を付与し、サービスB用の証明情報を含む証明情報発行要求を、情報処理装置1に送信する。
[ステップS14]情報処理装置1は、自身以外の情報処理装置2が発行した証明情報であることを確認し、自身のサービスAを利用する権利を証明する証明情報を、連鎖的に発行する。このとき発行される証明情報には、連鎖的な証明情報の発行処理の回数として「2」が設定される。情報処理装置1による連鎖的な証明情報の発行処理の詳細は、情報処理装置2におけるステップS11の処理と同様である。
[ステップS15]情報処理装置1は、サービスA用の証明情報を端末装置5に送信する。
[ステップS16]端末装置5は、サービスA用の証明情報を付与したサービス要求を、情報処理装置1に送信する。
[ステップS17]情報処理装置1は、サービスA用の証明情報が付与されていることで、サービスAを利用する権利を有するユーザからのサービス要求であると判断し、サービス要求に従った処理を実行する。そして情報処理装置1は、処理の実行結果を端末装置5に応答する。
[ステップS18]端末装置5は、情報処理装置1から応答された処理結果を表示する。
このようにして、連鎖的な証明情報の発行を行う際に、その証明情報に、連鎖的な証明情報の発行を行った回数を付与することができる。その結果、各情報処理装置では、連鎖的な証明情報の発行が行われた回数を把握可能となり、その回数に基づいて、さまざまな制御を行うことができる。例えば、受信した証明情報に示される、連鎖的な証明情報の発行が行われた回数が、予め設定された閾値を超えた場合、証明情報の発行を抑止することができる。
しかも第1の実施の形態では、各情報処理装置1〜3は、受信した証明情報の発行元の装置が、他の装置である場合にのみ、連鎖的な証明情報の発行処理の回数をインクリメントした証明情報の発行を行う。これにより、同一の情報処理装置が繰り返し証明情報を発行することで発行回数がカウントアップされることを抑止できる。その結果、関連する装置間の連鎖的な証明情報の発行回数を、正確に把握することが可能となる。すなわち、同一の情報処理装置が繰り返し証明情報を発行しても、それによって、ユーザがサービスの提供を受けることが可能なサーバの範囲が広がるわけではない。そのため、同一の情報処理装置が繰り返し証明情報を発行した場合の発行回数のカウントアップを抑止することで、ユーザがサービスの提供を受けることができるサーバの範囲が広がった場合にのみ、発行回数がカウントアップされる。このようにして得られた発行回数は、ユーザがサービスの提供を受けることが可能なサーバの範囲を適切に表していることとなる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、サービスを利用する権利を証明する証明情報に、証明情報の連鎖発行回数のカウンタを設けるものである。なお、第2の実施の形態では、証明情報の一例としてトークンを用いる。トークンには、発行者や連鎖発行回数以外に、電子署名を付与することができる。第2の実施の形態では、各サーバは、連鎖的なトークンの発行を行うごとに、カウンタの値をカウントアップする。
図3は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態のシステム構成例を示す図である。第2の実施の形態では、複数のサーバ100,200,300,400,・・・がネットワーク10を介して接続されている。またネットワーク10には、複数のユーザ21,22,23,24,・・・それぞれが使用する端末装置31,32,33,34,・・・が接続されている。
ユーザ21,22,23,24,・・・は、それぞれ、複数のサーバ100,200,300,400,・・・のうちの少なくとも1つのサーバに、ユーザアカウントを有している。例えばユーザ21はサーバ100にユーザアカウントを有し、ユーザ22はサーバ200にユーザアカウントを有し、ユーザ23はサーバ300にユーザアカウントを有し、ユーザ24はサーバ400にユーザアカウントを有する。
各サーバ100,200,300,400,・・・は、そのサーバにユーザアカウントを有するユーザに関するアカウント情報を管理している。アカウント情報には、ユーザの認証情報や、役割情報が含まれる。認証情報は、例えばユーザIDとパスワードとの組である。
図4は、本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。サーバ100は、CPU101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。なおサーバ100が有するCPU数は1つに限定されず、複数であってもよい。サーバ100が複数のCPUを有する場合、複数のCPUが連係動作し、装置全体を制御する。
RAM102は、サーバ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス108に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、サーバ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
通信インタフェース107は、ネットワーク10に接続されている。通信インタフェース107は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお図4には、サーバ100のハードウェア構成を示したが、他のサーバ200,300,400,・・・や、端末装置31,32,33,34,・・・も同様のハードウェアで実現することができる。さらに、第1の実施の形態に示した情報処理装置1も、図4に示したサーバ100と同様のハードウェアにより実現することができる。
次に第2の実施の形態によって提供されるサービスの一例について説明する。
図5は、複数のサービスを連携させて実行する業務の一例を示す図である。図5には、典型的なソフトウェア開発プロジェクトにおけるサービスの連携例が示されている。
例えば、元請企業1社、下請企業3社、孫請企業9社、および曾孫請企業2社によってソフトウェア開発プロジェクトが進められている。それぞれの会社には、複数のプロジェクト従事者がいる。
サーバ100は、元請企業が管理している。サーバ200,200a,200bは、下請企業が管理している。サーバ300,300a,300b,300c,300d,300e,300f,300g,300hは、孫請企業が管理している。サーバ400,400aは、曾孫請企業が管理している。各サーバには、管理している企業内のプロジェクト従事者のアカウント情報(例えばユーザIDとパスワード)が登録されている。各サーバは、登録されたアカウント情報を用いて、そのサーバを管理している企業の管理職や社員などのユーザ認証を行う。
図5の例では、ソフトウェア開発プロジェクトに関する共有情報111が、サーバ100のデータベース(DB)110に格納されている。プロジェクトを円滑に進行させるには、プロジェクトに関与するメンバーで、できるだけ多くの情報を共有することが有効である。ただし、元請企業は、情報の機密を保持する上で信頼できる相手にしか、共有情報111を開示することはできない。
図5では、直接の信頼関係を有する企業間のサーバを矢印で接続している。例えば元請企業から見たときの下請企業との関係には、子会社、関連会社、取引会社などがある。同様に下請企業から見たときの孫請企業との関係にも、さまざまな関係がある。さらに孫請企業からみたときの曾孫請企業との関係にも、さまざまな関係がある。そうすると、元請企業と曾孫請企業との間の信頼関係は、かなり希薄なものとなる。図5の例では、元請企業において、下請企業、孫請企業までは、情報の機密を保持する上で信頼できるが、曾孫請企業は信頼に値しない場合が示されている。
ここで第2の実施の形態では、システム中の各サーバは、自己が管理するアカウント情報に基づいてユーザ認証を行ったユーザに対して、自己が提供するサービスを利用する権利があることを示すトークンを発行する。また各サーバは、直接の信頼関係を有する企業の管理するサーバで発行されたトークンを有するユーザに対しても、自己が提供するサービスを利用する権利があることを示すトークンを、連鎖的に発行する。このような連鎖的なトークン発行を行うことにより、例えば元請企業のサーバ100で管理している共有情報111に対して、下請企業の社員であるユーザ22や孫請企業の社員であるユーザ23がアクセス可能となる。
ただし、元請企業から見たときの曾孫請企業については、信頼関係がない。そのため、元請企業では、曾孫請企業のサーバ400において悪意または過失により、不適切なユーザにトークンを発行する可能性があることを前提として、サービスの提供相手を制限する。第2の実施の形態では、曾孫請企業の社員であるユーザ24に対しては、共有情報111へのアクセスを遮断するために、各サーバが発行するトークンに、連鎖的なトークン発行回数を付与する。そして、サーバ100では、連鎖的なトークン発行回数が所定回数以上の場合、下請企業のサーバで発行されたトークンを有するユーザであっても、共有情報111へのアクセスサービスの提供を拒絶する。このようにして、連鎖的なトークンの発行による効率的なサービス提供を行うと共に、サービス提供相手の必要以上の拡大を抑止することができる。
次に、このようなサービス提供管理を実現するための、各サーバの機能について説明する。
図6は、第2の実施の形態における各装置の機能の一例を示す図である。端末装置31ではアプリケーション31aが実行されている。アプリケーション31aは、端末装置31がアプリケーションソフトウェアを実行することによって実現されている機能である。アプリケーション31aは、ユーザ21からの操作入力に応じて、サーバにサービス要求を送信し、各サーバで決定された役割に応じた範囲でのサービスを利用する。なおアプリケーション31aは、サーバにサービス要求を送信する前に、そのサーバにトークン発行要求を送信し、そのサーバで提供されるサービス上の役割を含むトークンを取得する。トークンは、決定された役割に応じた範囲内で、サーバで提供されるサービスを使用する権利を有しているユーザであることを証明する情報である。またアプリケーション31aは、ユーザ21がアカウントを有しているサーバに対しては、認証要求を送信し、ユーザ認証を受けることができる。
同様に端末装置32,33,34では、アプリケーション32a,33a,34aが実行されている。アプリケーション32a,33a,34aは、端末装置31のアプリケーション31aと同様の機能を有する。
サーバ100は、DB110、信頼関係情報記憶部120、認証部130、およびアクセス制御部140を有する。
DB110は、データ提供サービスによって提供するデータを記憶する。DB110としては、例えばHDD103内の記憶領域の一部が使用される。
信頼関係情報記憶部120は、サーバ100にアカウントを有するユーザの認証情報や、直接の信頼関係を有するサーバの識別子などを記憶する。信頼関係情報記憶部120としては、例えばRAM102またはHDD103の記憶領域の一部が使用される。
認証部130は、信頼関係情報記憶部120を参照し、サービスを要求したユーザを認証する。例えば認証部130は、端末装置31から送られた認証要求に応じて、認証要求に含まれる認証情報が正しいか否かを判断する。認証情報は、例えばユーザIDとクレデンシャル(信用情報)との組である。なおクレデンシャルには、例えばパスワードを用いることができる。またクレデンシャルとして、ユーザの指紋情報、手のひら静脈情報などの生体情報を用いることもできる。
また認証部130は、端末装置31からのトークン発行要求に応じて、端末装置31を使用するユーザ21に対してトークンを発行する。認証部130は、生成したトークンを、処理結果として出力する。
さらに、認証部130は、トークン発行要求に応答し、信頼関係情報記憶部120を参照し、サーバ100が提供するサービスを利用可能なユーザからのトークン発行要求であることを確認する。認証部130は、サーバ100が提供するサービスを利用可能なユーザからのトークン発行要求であれば、自身が提供するサービスを利用する権利を証明するトークンを生成する。そして認証部130は、生成したトークンを処理結果として出力する。サーバ100が提供するサービスを利用可能なユーザとは、例えばサーバ100でユーザ認証を行ったユーザや、直接の信頼関係を有するサーバで発行されたトークンを有するユーザである。なお、直接の信頼関係を有するサーバで発行されたトークンを有するユーザであっても、そのトークンに含まれる連鎖発行回数が所定の閾値を超えている場合、そのユーザに対するサーバ100が提供するサービスの提供は抑止される。
アクセス制御部140は、サーバ100で提供されるサービスを利用する権利を示すトークンを付与したサービス要求に応じて、DB110から情報を抽出し、抽出した情報を端末装置31に送信する。なお、アクセス制御部140は、端末装置31から、認証要求またはトークン発行要求を受け取った場合、認証要求またはトークン発行要求を、認証部130に渡す。アクセス制御部140は、認証部130から認証要求またはトークン発行要求に応じた処理結果を受け取った場合、受け取った結果を端末装置31に送信する。
サーバ200は、DB210、信頼関係情報記憶部220、認証部230、およびアクセス制御部240を有する。同様にサーバ300は、DB310、信頼関係情報記憶部320、認証部330、およびアクセス制御部340を有する。同様にサーバ400は、DB410、信頼関係情報記憶部420、認証部430、およびアクセス制御部440を有する。サーバ200,300,400内の各要素は、サーバ100の同名の要素と同じ機能を有する。
なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図6に示す認証部130,230,330,430は、図1に示した第1の実施の形態における受信手段2a、生成手段2b、および送信手段2cを包含する機能の一例である。
次に、信頼関係情報記憶部120に格納されている情報について詳細に説明する。
図7は、信頼関係情報記憶部の格納情報の一例を示す図である。信頼関係情報記憶部120には、ユーザ管理テーブル121、関係定義テーブル122、および連鎖閾値123が格納されている。
ユーザ管理テーブル121は、サーバ100にアカウントを有するユーザの認証情報を管理するデータテーブルである。ユーザ管理テーブル121には、ユーザIDとクレデンシャルとの欄が設けられている。ユーザIDの欄には、ユーザを一意に識別する識別子(ユーザID)が設定される。クレデンシャルの欄には、ユーザのパスワードなどのクレデンシャルが設定される。ユーザIDとクレデンシャルとの組が、そのユーザIDで示されるユーザの認証情報である。
関係定義テーブル122は、直接の信頼関係を有する企業のサーバを管理するデータテーブルである。関係定義テーブル122には、相手のURL(Uniform Resource Locator)の欄が設けられている。相手のURLの欄には、サーバ100を管理している企業と直接の信頼関係を有する企業のサーバで提供されるサービスを一意に示すURLが設定される。
連鎖閾値123は、トークン発行の連鎖発行回数の閾値である。サーバ100は、他のサーバで発行されたトークンが付与されたトークン発行要求を受信した場合、付与されているトークンの連鎖発行回数が連鎖閾値123以下の場合のみ、自己のサービスを利用する権利を示すトークンを発行する。
次に、第2の実施の形態で用いるトークンの内容について説明する。
図8は、トークンに含まれる情報の一例を示す図である。トークン40には、トークン発行者41、連鎖発行回数42、認証内容43、および電子署名44が含まれる。
トークン発行者41は、トークンを発行したサーバの識別子である。サーバの識別子としては、例えばサーバのURLが用いられる。
連鎖発行回数42は、他のサーバで発行されたトークンに基づいて、連鎖してトークンを発行した回数である。例えば、ユーザの個人認証を行ったサーバが発行したトークンには、連鎖発行回数として初期値「0」が設定される。そしてトークンを付与したトークン発行要求に応じて、サーバが自己のサービスを利用する権利があることを示すトークンを発行する際に、元となったトークンの連鎖発行回数をカウントアップした値が、新たに生成したトークンに設定される。
認証内容43は、トークン発行相手のユーザの識別子や、トークンを発行したサーバが、ユーザに提供するサービスの内容などを定義する情報である。例えばサーバが提供するサービス上でユーザがどのような役割を有するのかを、認証内容43として設定することができる。この場合、例えばサーバは、認証内容に設定された役割に応じた範囲に、サービスの提供内容を制限することができる。
電子署名44は、トークン40の正当性を保証するために、トークン40の発行者が付与する情報である。電子署名44は、トークン発行者を一意に示すと共に、トークンが改ざんされた場合に、改ざんされたことを検知可能とする情報である。
次に、トークンを連鎖的に発行することによるサービス提供例について説明する。
図9は、トークンを連鎖的に発行することによるサービス提供処理の第1の例を示すシーケンス図である。図9には、サーバ300にアカウントを有するユーザ23が、サーバ100で提供されるサービスを利用する場合の例が示されている。なお、図9に示す処理では、既にユーザ23は、端末装置33を用いてサーバ300からユーザ認証を受けているものとする。また、サーバ100が提供するサービスを「サービスA」、サーバ200が提供するサービスを「サービスB」、サーバ300が提供するサービスを「サービスC」とする。各サーバ100,200,300には、連鎖閾値「1」が設定されている。さらに、アプリケーション33aには、サーバ300とサーバ100とに、サーバ200を間に挟んだ間接的な関係が存在していることが、予め定義されているものとする。
[ステップS101]ユーザ23は、端末装置33を操作し、アプリケーション33aに対して、サービスAへのアクセスが必要となる処理を指示する。
[ステップS102]端末装置33のアプリケーション33aは、ユーザ23の操作に応答し、トークン発行要求をサーバ300に送信する。
[ステップS103]サーバ300では、アクセス制御部340がトークン発行要求を受信し、受信したトークン発行要求を認証部330に転送する。すると認証部330は、サービスCを利用する権利を有することを示すトークン(サービスC用のトークン)を発行する。発行されるトークンの発行者には、サーバ300の識別子が設定され、連鎖発行回数には初期値「0」が設定される。
[ステップS104]サーバ300の認証部330は、サービスC用のトークンを、アクセス制御部340を介して端末装置33に送信する。
[ステップS105]端末装置33のアプリケーション33aは、サービスC用のトークンを付与した、サービスBのトークン発行要求を生成する。そしてアプリケーション33aは、サービスBのトークン発行要求をサーバ200に送信する。
[ステップS106]サーバ200のアクセス制御部240がトークン発行要求を受信し、受信したトークン発行要求を認証部230に転送する。そして、認証部230が、トークンの正当性を検証する。そして、認証部230は、トークン発行要求に付与されていた、サービスC用のトークンの連鎖発行回数が、サーバ200における連鎖閾値以下であれば、サービスBを利用する権利を示すトークン(サービスB用のトークン)を発行する。図9の例では、サービスC用のトークンの連鎖発行回数「0」は、サーバ200の連鎖閾値「1」以下であるため、サービスB用のトークンが発行される。発行されるトークンの発行者には、サーバ200の識別子が設定され、連鎖発行回数には、サービスC用のトークンの連鎖発行回数に1を加算した値「1」が設定される。
[ステップS107]サーバ200の認証部230は、サービスB用のトークンを、アクセス制御部240を介して端末装置33に送信する。
[ステップS108]端末装置33のアプリケーション33aは、サービスB用のトークンを付与した、サービスAのトークン発行要求を生成する。そしてアプリケーション33aは、サービスAのトークン発行要求をサーバ100に送信する。
[ステップS109]サーバ100のアクセス制御部140がトークン発行要求を受信し、受信したトークン発行要求を認証部130に転送する。そして、認証部130が、トークンの正当性を検証する。そして、認証部130は、トークン発行要求に付与されていた、サービスB用のトークンの連鎖発行回数が、サーバ100における連鎖閾値以下であれば、サービスAを利用する権利を示すトークン(サービスA用のトークン)を発行する。図9の例では、サービスB用のトークンの連鎖発行回数「1」は、サーバ200の連鎖閾値「1」以下であるため、サービスA用のトークンが発行される。発行されるトークンの発行者には、サーバ100の識別子が設定され、連鎖発行回数には、サービスB用のトークンの連鎖発行回数に1を加算した値「2」が設定される。
[ステップS110]サーバ100の認証部130は、サービスA用のトークンを、アクセス制御部140を介して端末装置33に送信する。
[ステップS111]端末装置33のアプリケーション33aは、サービスA用のトークンを付与した、サービスAのサービス要求を生成する。そしてアプリケーション33aは、サービスAのサービス要求をサーバ100に送信する。
[ステップS112]サーバ100のアクセス制御部140は、サービス要求に応じたDB110へのアクセスを行い、処理結果を応答する。
[ステップS113]端末装置33は、サーバ100から処理結果の応答を受信すると、処理結果をモニタ11に表示する。
このようにして、トークンを連鎖的に発行し、サーバ100と直接的には関係を有していないサーバ300のユーザ23に対して、サーバ100がサービスAを提供できる。ただし、サーバ100に対する関係が、サーバ300より希薄なサーバ400のユーザ24が、サーバ100からサービスAの提供を受けようとしても、サーバ100において、トークンの発行が拒否される。以下、トークンの発行が拒否される場合の処理の例について説明する。
図10は、トークンを連鎖的に発行することによるサービス提供処理の第2の例を示すシーケンス図である。図10には、サーバ400にアカウントを有するユーザ24が、サーバ100で提供されるサービスを利用する場合の例が示されている。なお、図10に示す処理では、既にユーザ24は、端末装置34を用いてサーバ400からユーザ認証を受けているものとする。また、サーバ100が提供するサービスを「サービスA」、サーバ200が提供するサービスを「サービスB」、サーバ300が提供するサービスを「サービスC」、サーバ400が提供するサービスを「サービスD」とする。各サーバ100,200,300,400には、連鎖閾値「1」が設定されている。さらに、アプリケーション34aには、サーバ400とサーバ100とに、サーバ200,300を間に挟んだ間接的な関係が存在することが、予め定義されているものとする。
[ステップS121]ユーザ24は、端末装置34を操作し、アプリケーション34aに対して、サービスAへのアクセスが必要となる処理を指示する。
[ステップS122]端末装置34のアプリケーション34aは、ユーザ24の操作に応答し、トークン発行要求をサーバ400に送信する。
[ステップS123]サーバ400では、アクセス制御部440がトークン発行要求を受信し、受信したトークン発行要求を認証部430に転送する。すると認証部430は、サービスDを利用する権利を有することを示すトークン(サービスD用のトークン)を発行する。発行されるトークンの発行者には、サーバ400の識別子が設定され、連鎖発行回数には初期値「0」が設定される。
[ステップS124]サーバ400の認証部430は、サービスD用のトークンを、アクセス制御部440を介して端末装置34に送信する。
[ステップS125]端末装置34のアプリケーション34aは、サービスD用のトークンを付与した、サービスCのトークン発行要求を生成する。そしてアプリケーション34aは、サービスCのトークン発行要求をサーバ300に送信する。
[ステップS126]サーバ300のアクセス制御部340がトークン発行要求を受信し、受信したトークン発行要求を認証部330に転送する。そして、認証部330が、トークンの正当性を検証する。そして、認証部330は、トークン発行要求に付与されていた、サービスD用のトークンの連鎖発行回数が、サーバ300における連鎖閾値以下であれば、サービスCを利用する権利を示すトークン(サービスC用のトークン)を発行する。図10の例では、サービスD用のトークンの連鎖発行回数「0」は、サーバ300の連鎖閾値「1」以下であるため、サービスC用のトークンが発行される。発行されるトークンの発行者には、サーバ300の識別子が設定され、連鎖発行回数には、サービスD用のトークンの連鎖発行回数に1を加算した値「1」が設定される。
[ステップS127]サーバ300の認証部330は、サービスC用のトークンを、アクセス制御部340を介して端末装置34に送信する。
[ステップS128]端末装置34のアプリケーション34aは、サービスC用のトークンを付与した、サービスBのトークン発行要求を生成する。そしてアプリケーション34aは、サービスBのトークン発行要求をサーバ200に送信する。
[ステップS129]サーバ200のアクセス制御部240がトークン発行要求を受信し、受信したトークン発行要求を認証部230に転送する。そして、認証部230が、トークンの正当性を検証する。そして、認証部230は、トークン発行要求に付与されていた、サービスC用のトークンの連鎖発行回数が、サーバ200における連鎖閾値以下であれば、サービスBを利用する権利を示すトークン(サービスB用のトークン)を発行する。図10の例では、サービスC用のトークンの連鎖発行回数「1」は、サーバ200の連鎖閾値「1」以下であるため、サービスB用のトークンが発行される。発行されるトークンの発行者には、サーバ200の識別子が設定され、連鎖発行回数には、サービスC用のトークンの連鎖発行回数に1を加算した値「2」が設定される。
[ステップS130]サーバ200の認証部230は、サービスB用のトークンを、アクセス制御部240を介して端末装置34に送信する。
[ステップS131]端末装置34のアプリケーション34aは、サービスB用のトークンを付与した、サービスAのトークン発行要求を生成する。そしてアプリケーション34aは、サービスAのトークン発行要求をサーバ100に送信する。
[ステップS132]サーバ100のアクセス制御部140がトークン発行要求を受信し、受信したトークン発行要求を認証部130に転送する。そして、認証部130が、トークンの正当性を検証する。そして、認証部130は、トークン発行要求に付与されていた、サービスB用のトークンの連鎖発行回数が、サーバ100における連鎖閾値以下であれば、サービスAを利用する権利を示すトークン(サービスA用のトークン)を発行する。他方、認証部130は、サービスB用のトークンの連鎖発行回数が、サーバ100における連鎖閾値を超えていればトークンの発行を拒否する。図10の例では、サービスB用のトークンの連鎖発行回数「2」は、サーバ100の連鎖閾値「1」を超えているため、サービスA用のトークンの発行は拒否される。
[ステップS133]サーバ100の認証部130は、エラー応答を、アクセス制御部140を介して端末装置34に送信する。
[ステップS134]端末装置34は、サーバ100からのエラー応答を受信すると、エラー終了したことを示す処理結果をモニタ11に表示する。
図9、図10に示したように、サーバ100では、サーバ300でユーザ認証を受けたユーザ23に対してはサービスA用のトークンを発行するが、サーバ400でユーザ認証を受けたユーザ24に対してはトークンを発行しない。これにより、トークンの連鎖的な発行により、他のサーバで認証を受けたユーザへのサービスの提供を許容すると同時に、サービスを使用できるユーザの範囲を適切に制限することが可能となる。
次に、サーバ200で発行されたトークンを添付したトークン発行要求に応じてサーバ100が実行する、他のサーバとの間の関係に基づくトークン発行処理の手順について説明する。
図11は、関係に基づくトークン発行処理の手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS141]認証部130は、サーバ200で発行されたトークンを取得する。
[ステップS142]認証部130は、取得したトークンの有効性を判定する。この処理の詳細は後述する(図12参照)。
[ステップS143]認証部130は、有効性の判定の結果、トークンが有効であれば処理をステップS145に進める。また認証部130は、トークンが無効であれば、処理をステップS144に進める。
[ステップS144]認証部130は、エラー応答を端末装置32に送信し、処理を終了する。
[ステップS145]認証部130は、トークンを生成する。この処理の詳細は後述する(図13参照)。
[ステップS146]認証部130は、ステップS145で生成したトークンを、トークン発行要求の送信元の端末装置に送信する。
次に、有効性判定処理について詳細に説明する。
図12は、有効性判定処理の手順の一例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS151]認証部130は、取得したトークンの電子署名が正しいか否かを判断する。例えば認証部130は、サーバ200の公開鍵によって電子署名が正しい内容に復号できた場合に、電子署名が正しいと判断する。認証部130は、電子署名が正しい場合、処理をステップS152に進める。また認証部130は、電子署名が正しくない場合、処理をステップS155に進める。
[ステップS152]認証部130は、取得したトークンの発行者との間に、直接の信頼関係があるか否かを判断する。例えば認証部130は、トークンの発行者の値により、関係定義テーブル122の相手のURLの欄を検索する。認証部130は、該当するURLが検出された場合、トークンの発行者との間に直接の信頼関係があると判断する。認証部130は、直接の信頼関係がある場合、処理をステップS153に進める。また認証部130は、直接の信頼関係がない場合、処理をステップS155に進める。
[ステップS153]認証部130は、取得したトークンの連鎖発行回数は、サーバ100の信頼関係情報記憶部120の連鎖閾値123の値以下か否かを判断する。認証部130は、連鎖発行回数が連鎖閾値以下であれば、処理をステップS154に進める。また認証部130は、連鎖発行回数が連鎖閾値を超えていれば、処理をステップS155に進める。
[ステップS154]認証部130は、連鎖発行回数が連鎖閾値以下であれば、取得したトークンが有効であると判定し、有効性判定処理を終了する。
[ステップS155]認証部130は、電子署名が正しくないか、トークン発行者との間に直接の信頼関係がないか、連鎖発行回数が連鎖閾値を超えているかのいずれかの場合、取得したトークンが無効であると判定し、有効性判定処理を終了する。すなわち、署名が正しくない場合、トークン発行者との間に信頼関係がない場合、または連鎖発行回数が連鎖閾値を超えている場合には、トークンの発行が抑止される。
このようにして、他のサーバで発行されたトークンの有効性が判定される。次に、トークン生成処理の詳細について説明する。
図13は、トークン生成処理の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS161]認証部130は、取得したトークンの発行者をIとする。
[ステップS162]認証部130は、取得したトークンの連鎖発行回数をLとする。
[ステップS163]認証部130は、サーバ100自身の識別子(URLなど)と、Iとが等しいか否かを判断する。認証部130は、等しい場合、処理をステップS165に進める。また認証部130は、等しくなければ、処理をステップS164に進める。
[ステップS164]認証部130は、Lの値に1を加算し、新たなLとする。
[ステップS165]認証部130は、自身の識別子を発行者とし、Lを連鎖発行回数として、トークンを生成する。
このようにして、取得したトークンが他のサーバで発行されていれば、連鎖発行回数をカウントアップした新たなトークンが生成される。
以下、図14、図15を参照して、発行されるトークンの推移例について説明する。なお、図14、図15の例では、各サーバに設定されている連鎖閾値は「2」であるものとする。また端末装置31からのトークン発行要求が、サーバ100、サーバ200(1回目)、サーバ200(2回目)、サーバ100、サーバ200a、サーバ100の順で送信されたものとする。
図14は、発行されるトークンの推移例を示す第1の図である。第1の状態(ST1)では、端末装置31からのトークン発行要求に応じて、サーバ100からトークン51が発行されている。このトークン51の発行者にはサーバ100の識別子「a」が設定され、連鎖発行回数には初期値「0」が設定される。
第2の状態(ST2)において、端末装置31からサーバ200に、トークン51を付与したトークン発行要求が送信されたものとする。この場合、サーバ200は、トークン51の発行者がサーバ100であり、連鎖発行回数が自己の連鎖閾値以下であることを確認し、トークン52を発行する。このトークン52の発行者にはサーバ200の識別子「b1」が設定され、連鎖発行回数には「1」が設定される。
第3の状態(ST3)において、端末装置31からサーバ200に、トークン52を付与したトークン発行要求が送信されたものとする。この場合、サーバ200は、トークン52の発行者が自分自身であり、連鎖発行回数が自己の連鎖閾値以下であることを確認し、トークン53を発行する。このトークン53の発行者にはサーバ100の識別子「b1」が設定され、連鎖発行回数には「1」が設定される。
図15は、発行されるトークンの推移例を示す第2の図である。第4の状態(ST4)において、端末装置31からサーバ100に、トークン53を付与したトークン発行要求が送信されたものとする。この場合、サーバ100は、トークン53の発行者がサーバ200であり、連鎖発行回数が自己の連鎖閾値以下であることを確認し、トークン54を発行する。このトークン54の発行者にはサーバ100の識別子「a」が設定され、連鎖発行回数には「2」が設定される。
第5の状態(ST5)において、端末装置31からサーバ200aに、トークン54を付与したトークン発行要求が送信されたものとする。この場合、サーバ200aは、トークン54の発行者がサーバ100であり、連鎖発行回数が自己の連鎖閾値以下であることを確認し、トークン55を発行する。このトークン55の発行者にはサーバ200aの識別子「b2」が設定され、連鎖発行回数には「3」が設定される。
第6の状態(ST6)において、端末装置31からサーバ100に、トークン55を付与したトークン発行要求が送信されたものとする。この場合、サーバ100は、トークン55の発行者がサーバ200aであり、連鎖発行回数が自己の連鎖閾値を超えていることを確認し、トークンの発行を拒否する。
このように、直接の信頼関係があるサーバで発行されたトークンに基づいて、各サーバがトークンを連鎖的に発行するようにしたことで、ユーザは、1つのサーバでユーザ認証を受けることで、複数のサーバからトークンを取得することができる。各トークンは、そのトークンを発行したサーバで提供されるサービスを利用する権利を示しているため、ユーザは、複数のサーバからサービスの提供を受けることができる。しかも第2の実施の形態では、連鎖発行回数が閾値を超えた場合には、新たなトークンが発行されないため、各ユーザが利用できるサービスの範囲が無制限に広がることを抑止できる。
なお、第2の実施の形態では、トークン発行要求に付与されたトークンの発行元が、自身の場合、連鎖発行回数を据え置いたトークンを発行しているが、トークンの発行を抑止することも可能である。例えば、図14の例では、第3の状態(ST3)において、サーバ200は、取得したトークン52の発行元が自分自身であるため、トークン53を発行しないこととなる。この場合、端末装置31は、サーバ200に送信したトークン52を付与したトークン発行要求を、サーバ100などの別のサーバに送信することで、別のサーバから連鎖的にトークンを取得できる。
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、第2の実施の形態における連鎖発行回数に代えて、トークンに、トークン発行者の識別子を発行履歴として設定するようにしたものである。
例えばサーバ100にアカウントを有するユーザは、サーバ100から取得したトークンに基づいて、サーバ200からトークンを取得できる。このユーザは、さらにサーバ200が発行したトークンに基づいて、サーバ100からトークンを取得できる。この場合、第2の実施の形態では、サーバ100は、新たなトークンを発行すると共に、トークンに付与する連鎖発行回数をカウントアップする。しかし、ユーザは、サーバ100にアカウントを有しているにも拘わらずトークンの連鎖発行回数がカウントアップされることで、そのトークンを用いてサービスを受けることができるサーバの範囲が狭まってしまう。
そこで第3の実施の形態では、トークンに、連鎖発行回数に代えて発行履歴を設定する。トークン内の発行履歴には、例えば、そのトークンの発行以前に、そのトークンと連鎖関係を有するトークンの発行を行ったサーバの識別子が設定される。これにより、発行履歴のエントリ数を数えることで、連鎖発行回数が認識可能となる。また各サーバは、発行履歴内に自身の識別子が設定されたトークンに基づいて、新たなトークンを発行する場合、発行履歴内の自身の識別子以降のエントリを削除する。これにより、連鎖的にトークンの発行が行われる過程で、同じサーバでの2回目以降のトークン発行時には、トークン発行回数(発行履歴のエントリ数)は、そのサーバでの1回目のトークン発行時の値に戻される。その結果、各ユーザは、ユーザ認証を受けたサーバ、およびそのサーバから所定の範囲内の関係を有するサーバから、トークンを何度でも取得することができる。
なお、第3の実施の形態のシステム構成は、図3〜図7に示した第2の実施の形態の構成と同様である。そこで以下、図3〜図7に示した各要素の符号を用いて、第3の実施の形態について説明する。
図16は、第3の実施の形態におけるトークンに含まれる情報の一例を示す図である。トークン60には、トークン発行者61、発行履歴62、認証内容63、および電子署名64が含まれている。このうちトークン発行者61、認証内容63、および電子署名64については、図8に示した第2の実施の形態のトークン40に含まれる同名の要素と同種の情報である。
発行履歴62は、ユーザの認証を行ったサーバがトークンを発行してから、トークン60を発行するまでの過程で、連鎖的にトークン発行を行ったサーバの識別子のリストである。発行履歴62に登録されているサーバの数が、トークン60の連鎖発行回数として用いられる。
図17は、発行履歴の一例を示す図である。図17の例では、発行履歴62に、ユーザの認証を行ったサーバの識別子と、そのサーバで発行したトークンから連鎖的にトークンを発行した各サーバの識別子とが設定されている。サーバの識別子としては、サーバのURLが用いられている。
第3の実施の形態の処理は、有効性判定処理とトークン生成処理とが第2の実施の形態と異なる。
図18は、第3の実施の形態における有効性判定処理の手順の一例を示すフローチャートである。図18に示す処理のうち、ステップS201,S202,S205,S206の処理は、それぞれ図12に示した第2の実施の形態におけるステップS151,S152,S154,S155の処理と同様である。第2の実施の形態と異なるステップS203,S204では、以下の処理が行われる。
[ステップS203]認証部130は、取得したトークンの発行履歴内のエントリ数を計数する。計数された値は、取得したトークンが発行されるまでに、連鎖的なトークン発行が行われた回数(連鎖発行回数)を表している。
[ステップS204]認証部130は、発行履歴内のエントリ数が、サーバ100の連鎖閾値以下か否かを判断する。認証部130は、エントリ数が連鎖閾値以下であれば、処理をステップS205に進め、取得したトークンを有効であると判定する。また認証部130は、エントリ数が連鎖閾値を超えていれば、処理をステップS206に進め、取得したトークンを無効であると判定する。
このように、発行履歴内のエントリ数を計数することで、取得したトークンが発行されるまでの、トークン発行の連鎖発行回数が算出される。そして算出された連鎖発行回数と連鎖閾値との比較により、取得したトークンの有効性が判定される。
図19は、第3の実施の形態におけるトークン生成処理の手順の一例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS211]認証部130は、取得したトークンの発行者をIとする。
[ステップS212]認証部130は、取得したトークンの発行履歴の各エントリを要素とした配列hを定義する。なお配列hには、登録された順に、トークンを発行したサーバの識別子が設定されている。
[ステップS213]認証部130は、サーバ100自身の識別子(URLなど)と、Iとが等しいか否かを判断する。認証部130は、等しい場合、処理をステップS217に進める。また認証部130は、等しくなければ、処理をステップS214に進める。
[ステップS214]認証部130は、配列hにサーバ100自身の識別子が含まれているか否かを判断する。認証部130は、サーバ100自身の識別子が含まれている場合、処理をステップS215に進める。また認証部130は、サーバ100自身の識別子が含まれていない場合、処理をステップS216に進める。
[ステップS215]認証部130は、配列hの中のサーバ100自身の識別子が設定されたエントリ以降のエントリを削除する。この際、サーバ100自身の識別子が設定されたエントリも削除される。その後、認証部130は、処理をステップS217に進める。
[ステップS216]認証部130は、配列hに、Iをエントリとして追加する。
[ステップS217]認証部130は、自身の識別子を発行者、配列hを発行履歴としてトークンを生成する。
このようにして、取得したトークンに基づいて発行される新たなトークンの発行履歴に、取得したトークンを発行したサーバの識別子が追加される。ただし取得したトークンの発行履歴に、自身の識別子が含まれている場合、その識別子以降のエントリが削除される。
以下、図20、図21を参照して、発行されるトークンの推移例について説明する。なお、図20、図21の例では、各サーバに設定されている連鎖閾値は「1」であるものとする。
図20は、第3の実施の形態において発行されるトークンの推移例を示す第1の図である。第1の状態(ST1)では、端末装置31からのトークン発行要求に応じて、サーバ100からトークン71が発行されている。このトークン71の発行者にはサーバ100の識別子「a」が設定され、発行履歴は空集合である。
第2の状態(ST2)において、端末装置31からサーバ200に、トークン71を付与したトークン発行要求が送信されたものとする。この場合、サーバ200は、トークン71の発行者がサーバ100であり、発行履歴内のエントリ数が自己の連鎖閾値以下であることを確認し、トークン72を発行する。このトークン72の発行者にはサーバ200の識別子「b1」が設定され、発行履歴には「a」が設定される。
第3の状態(ST3)において、端末装置31からサーバ300に、トークン72を付与したトークン発行要求が送信されたものとする。この場合、サーバ300は、トークン72の発行者がサーバ200であり、発行履歴内のエントリ数が自己の連鎖閾値以下であることを確認し、トークン73を発行する。このトークン73の発行者にはサーバ300の識別子「c1」が設定され、発行履歴には「a,b1」が設定される。
図21は、第3の実施の形態において発行されるトークンの推移例を示す第2の図である。第4の状態(ST4)において、端末装置31からサーバ200に、トークン73を付与したトークン発行要求が送信されたものとする。この場合、サーバ200は、トークン73の発行者がサーバ300であり、発行履歴内のエントリ数が自己の連鎖閾値以下であることを確認し、トークン74を発行する。なおトークン73の発行履歴には、サーバ200自身の識別子「b1」が含まれている。そのためトークン74の履歴情報は、トークン73の履歴情報から識別子「b1」以降のエントリを削除したものとなる。その結果、トークン74の発行者にはサーバ200の識別子「b1」が設定され、発行履歴には「a」が設定される。
第5の状態(ST5)において、端末装置31からサーバ300aに、トークン74を付与したトークン発行要求が送信されたものとする。この場合、サーバ300aは、トークン74の発行者がサーバ200であり、発行履歴内のエントリ数が自己の連鎖閾値以下であることを確認し、トークン75を発行する。このトークン75の発行者にはサーバ300aの識別子「c2」が設定され、発行履歴には「a,b1」が設定される。
このように、連鎖的なトークンの発行過程でサーバ200が2回目に発行したトークン74の発行履歴は、1回目に発行したトークン72と同じとなる。そのため、トークン74を付与したトークン発行要求を他のサーバ300aに送信した場合、サーバ300aでは、連鎖発行回数(発行履歴のエントリ数)が1回と判定され、新たなトークン75が発行される。その結果、端末装置31を使用するユーザ21は、サーバ300aからもサービスの提供を受けることが可能となる。すなわち、各ユーザは、どのような過程で連鎖的なトークン発行が行われたかに関係なく、ユーザ認証を受けたサーバとの間で、関連上の距離が所定の範囲(連鎖閾値)内にあるサーバで提供されるサービスを利用可能となる。ここで、関係上の距離とは、例えばユーザがユーザ認証を受けたサーバと、トークン発行要求を受信したサーバとの間でトークンの連鎖的な発行を行ったサーバの台数である。
例えば図20、図21の例では、端末装置31からのトークン発行要求が、サーバ100、サーバ200、サーバ300、サーバ200、サーバ300aの順で出されている。このとき各サーバから発行されるトークン71〜75の発行履歴に基づく連鎖回数は「0」、「1」、「2」、「1」、「2」となる。これにより連鎖回数は、ユーザ認証を行ったサーバまでの関係上の距離を正しく表すことができる。
〔第4の実施の形態〕
次に、第4の実施の形態について説明する。第4の実施の形態は、サーバ間の関係性に従って、各ユーザに役割を設定し、役割に応じた範囲内のサービスを提供するものである。
なお、第4の実施の形態のシステム構成は、図3〜図7に示した第2の実施の形態の構成と同様である。そこで以下、図3〜図7に示した各要素の符号を用いて、第4の実施の形態について説明する。
図22は、第4の実施の形態における信頼関係情報記憶部の格納情報の一例を示す図である。第4の実施の形態では、信頼関係情報記憶部120に、ユーザ管理テーブル121a、関係定義テーブル122a、役割割当ポリシ定義テーブル124、およびサービス定義テーブル125が格納されている。
図23は、第4の実施の形態におけるユーザ管理テーブルのデータ構造の一例を示す図である。ユーザ管理テーブル121aには、ユーザID、役割、およびクレデンシャルの欄が設けられている。
ユーザIDの欄には、ユーザの識別子が設定される。役割の欄には、サーバ100が提供するサービス「サービスA」上での、ユーザの役割が設定される。クレデンシャルの欄には、ユーザを認証に使用する信用情報が設定される。
図24は、第4の実施の形態における関係定義テーブルのデータ構造の一例を示す図である。関係定義テーブル122aには、相手のURL、および相手との関係の欄が設けられている。
相手のURLの欄には、サーバ100を管理している組織との間で直接の信頼関係を有する他の組織が管理するサーバ(相手サーバ)で提供されるサービスに割り当てられたURLが設定される。相手との関係の欄には、サーバ100を管理している組織と、相手サーバを管理している組織との間の関係が設定される。相手との関係としては、例えば、取引先、子会社、連結対象会社などがある。
図25は、役割割当ポリシ定義テーブルのデータ構造の一例を示す図である。役割割当ポリシ定義テーブル124には、相手との関係、相手が認めた役割、連鎖閾値および自身が認める役割の欄が設けられている。
相手との関係の欄には、サーバ100を管理している組織と、相手サーバを管理している組織との間の関係が設定される。相手が認めた役割の欄には、相手サーバにおいて、ユーザに対して設定した役割が設定される。連鎖閾値の欄には、相手との関係と、相手が認めた役割との組に対応する、トークン発行の連鎖発行回数の閾値が設定される。連鎖閾値が空欄の場合、連鎖的なトークン発行が無制限に許容される。自身が認める役割の欄には、相手サーバで提供されているサービス上の役割を有するユーザに対して、サーバ100自身が割り当てる役割が設定される。
図26は、サービス定義テーブルのデータ構造の一例を示す図である。サービス定義テーブル125には、役割とサービス内容との欄が設けられている。各欄の行方向に並んだデータが、役割に応じたサービス内容を定義したレコードを構成する。
役割の欄には、ユーザの役割が設定される。サービス内容の欄には、対応する役割を有するユーザに対して提供するサービスの内容が設定される。サービスの内容としては、例えば、DB110内のすべてのデータへのアクセスを許容するのか、ある属性のデータへのアクセスのみに制限するのかなどが定義される。例えばユーザの役割が予算係であれば、予算関係データへのアクセスを許容するように、サービス内容が設定される。またユーザの役割が社員であれば、例えばサーバ100を管理する企業の全社員の名簿に対するアクセスを許容するように、サービス内容が設定される。また役割が子会社の社員であれば、例えば、サーバ100を管理する企業の各部署の代表者の名簿に対するアクセスを許容するように、サービス内容が設定される。
次に、第4の実施の形態で用いるトークンの内容について説明する。
図27は、第4の実施の形態におけるトークンに含まれる情報の一例を示す図である。トークン80には、トークン発行者81、連鎖発行回数82、役割リスト83、アクセス主体84、および電子署名85が含まれる。
トークン発行者81は、トークンを発行したサーバの識別子である。連鎖発行回数82は、他のサーバで発行されたトークンに基づいて、連鎖してトークンを発行した回数である。役割リスト83は、発行者がユーザの役割として認定した役割のリストである。ユーザが複数の役割を担う場合、リストには、複数の役割が設定される。アクセス主体84は、アクセスを行うユーザの識別子である。電子署名85は、トークン80の正当性を保証するために、トークン80の発行者が付与する情報である。
次に、サーバにおける、自身が認証したユーザへのトークン発行処理の手順について、詳細に説明する。
図28は、自身が認証したユーザへのトークン発行処理の手順の一例を示すフローチャートである。以下、図28に示す処理をステップ番号に沿って説明する。なお、以下の処理は、既にユーザ認証を受けたユーザ21が使用する端末装置31から、トークン発行要求を受信したサーバ100が実行するものとする。
[ステップS301]認証部130は、現セッションの認証済みのユーザをuとする。
[ステップS302]認証部130は、ユーザ管理テーブル121aから、ユーザuに対応するレコードを検索し、ユーザの役割rAを決定する。
[ステップS303]認証部130は、サーバ200自身を発行者、役割をrAとして、トークンを生成する。
[ステップS304]認証部130は、割り当てる役割があるか否かを判断する。例えば認証部130は、ステップS302の検索において検出したレコードに、役割が設定されていれば、役割があると判断する。また認証部130は、ステップS302の検索において検出したレコードに、役割が設定されていなければ、役割がないと判断する。認証部130は、割り当てるべき役割がある場合、処理をステップS305に進める。また認証部130は、割り当てるべき役割がない場合、トークンを送信せずに処理を終了する。
[ステップS305]認証部130は、ステップS303で生成したトークンを、端末装置31に送信する。
このような手順で、ユーザ21がアカウントを有するサーバ100においてトークンが発行される。
次に、サーバ200で発行されたトークンを添付したトークン発行要求に応じてサーバ100が実行する、他のサーバとの間の関係に基づくトークン発行処理の手順について説明する。
図29は、関係に基づくトークン発行処理の手順の一例を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
[ステップS311]認証部130は、サーバ200で発行されたトークンを取得する。
[ステップS312]認証部130は、取得したトークンが有効か否かを判断する。例えば認証部130は、正当な電子署名が付与されていれば、有効なトークンであると判断する。認証部130は、有効なトークンであれば、処理をステップS313に進める。また認証部130は、無効なトークンであれば、トークンを発行せずに処理を終了する。
[ステップS313]認証部130は、トークンを生成する。この処理の詳細は後述する(図30参照)。
[ステップS314]認証部130は、割り当てるべき役割があるか否かを判断する。例えば認証部130は、トークン生成処理の結果、サーバ100が提供するサービスにおける役割が設定されたトークンが生成されていれば、役割があると判断する。また認証部130は、トークン生成処理において、役割がないためにトークンの生成に失敗した場合、役割がないと判断する。認証部130は、役割があれば処理をステップS315に進める。また認証部130は、役割がなければ、トークンを発行せずに処理を終了する。
[ステップS315]認証部130は、ステップS313で生成したトークンを、トークン発行要求の送信元である端末装置に送信する。
第4の実施の形態における関係に基づくトークン発行処理の手順は、図11に示した第2の実施の形態の処理と同様である。ただし第4の実施の形態では、図11に示した処理のうち、トークン生成処理(ステップS145)の詳細が第2の実施の形態と異なる。
以下、第4の実施の形態におけるトークン生成処理の手順について説明する。
図30は、第4の実施の形態におけるトークン生成処理の手順の一例を示すフローチャートである。以下、図30に示す処理をステップ番号に沿って説明する。
[ステップS321]認証部130は、取得したトークンの発行者をIとする。
[ステップS322]認証部130は、取得したトークンの連鎖発行回数をLとする。
[ステップS323]認証部130は、取得したトークンの役割リストに設定されている役割配列をrAとする。
[ステップS324]認証部130は、サーバ100自身の識別子(URLなど)と、Iとが等しいか否かを判断する。認証部130は、等しい場合、処理をステップS328に進める。また認証部130は、等しくなければ、処理をステップS325に進める。
[ステップS325]認証部130は、Iについて関係定義テーブル122aの相手のURLと照合し、Iと一致する関係の配列Rを取り出す。
[ステップS326]認証部130は、RとrAとの組に該当するレコードを、役割割当ポリシ定義テーブル124から検索する。次に認証部130は、検索によって該当したレコードを、Lで絞り込む。例えば認証部130は、検索で該当したレコードを、連鎖閾値がL以上のレコードに絞り込む。そして認証部130は、絞り込まれたレコードそれぞれにおける自身が認める役割の配列をrBとする。
[ステップS327]認証部130は、Lの値に1を加算し、新たなLとする。
[ステップS328]認証部130は、自身の識別子を発行者、rBを役割リスト、Lを連鎖発行回数として、トークンを生成する。
このようにして、他のサーバとの関係、およびそのサーバでのユーザの役割の組に応じた、自身が提供するサービス上の役割を、他のサーバで認証されたユーザに対して割り当てることができる。例えば子会社の社員に対しては、孫会社の社員よりも広い範囲で、サービスを提供することができる。
しかも他のサーバとの関係、およびそのサーバでのユーザの役割の組に応じて、連鎖閾値を設定することができる。これにより、ユーザの役割ごとのきめ細やかなトークン発行管理を行うことができる。例えば、子会社のサーバにおいて「子会社の社員」という役割を割り当てられたユーザ(自サーバでは役割「孫会社の社員」)に対しては、「孫会社の社員」の連鎖閾値を「1」としておくことでトークンを発行するようにできる。また関連会社のサーバにおいて「子会社の社員」という役割を割り当てられたユーザ(自サーバでは役割「関連会社の子会社の社員」)に対しては、「関連会社の子会社の社員」の連鎖閾値を「0」としておくことで、トークンの発行を抑止するようにできる。
〔第5の実施の形態〕
次に、第5の実施の形態について説明する。第5の実施の形態は、第4の実施の形態における連鎖発行回数に代えて、発行履歴をトークンに含めるようにしたものである。
なお、第5の実施の形態のシステム構成は、図3〜図7に示した第2の実施の形態の構成と同様である。そこで以下、図3〜図7に示した各要素の符号を用いて、第5の実施の形態について説明する。
図31は、第5の実施の形態におけるトークンに含まれる情報の一例を示す図である。トークン90には、トークン発行者91、発行履歴92、役割リスト93、アクセス主体94、および電子署名95が含まれる。
トークン発行者91は、トークンを発行したサーバの識別子である。発行履歴92は、ユーザの認証を行ったサーバがトークンを発行してから、トークン90を発行するまでの過程で、連鎖的にトークン発行を行ったサーバの識別子のリストである。発行履歴92の内容は、例えば図17に示した第2の実施の形態の発行履歴62と同様である。役割リスト93は、発行者がユーザの役割として認定した役割のリストである。アクセス主体94は、アクセスを行うユーザの識別子である。電子署名95は、トークン90の正当性を保証するために、トークン90の発行者が付与する情報である。
第5の実施の形態の処理のうち、第4の実施の形態と異なるのは、有効性判定処理とトークン生成処理である。そのうち有効性判定処理の手順は、図18に示した第2の実施の形態における有効性判定処理と同様である。そこで、第5の実施の形態におけるトークン生成処理の手順について以下に説明する。
図32は、第5の実施の形態におけるトークン生成処理の手順の一例を示すフローチャートである。以下、図32に示す処理をステップ番号に沿って説明する。
[ステップS401]認証部130は、取得したトークンの発行者をIとする。
[ステップS402]認証部130は、取得したトークンの発行履歴の各エントリを要素とした配列hを定義する。
[ステップS403]認証部130は、取得したトークンの役割リストに設定されている役割配列をrAとする。
[ステップS404]認証部130は、サーバ100自身の識別子(URLなど)と、Iとが等しいか否かを判断する。認証部130は、等しい場合、処理をステップS405に進める。また認証部130は、等しくなければ、処理をステップS406に進める。
[ステップS405]認証部130は、取得したトークンの発行者Iが、サーバ100自身の場合、配列rAを配列rBとする。その後、認証部130は処理をステップS412に進める。
[ステップS406]認証部130は、Iについて関係定義テーブル122aの相手のURLと照合し、Iと一致する関係の配列Rを取り出す。
[ステップS407]認証部130は、配列hにサーバ100自身の識別子が含まれているか否かを判断する。認証部130は、サーバ100自身の識別子が含まれている場合、処理をステップS408に進める。また認証部130は、サーバ100自身の識別子が含まれていない場合、処理をステップS409に進める。
[ステップS408]認証部130は、配列hの中のサーバ100自身の識別子が設定されたエントリ以降のエントリを削除する。この際、サーバ100自身の識別子が設定されたエントリも削除される。その後、認証部130は、処理をステップS410に進める。
[ステップS409]認証部130は、配列hに、Iをエントリとして追加する。
[ステップS410]認証部130は、配列hのエントリ数を、連鎖発行回数Lとする。
[ステップS411]認証部130は、RとrAとの組に該当するレコードを、役割割当ポリシ定義テーブル124から検索する。次に認証部130は、検索によって該当したレコードを、Lで絞り込む。例えば認証部130は、検索で該当したレコードを、連鎖閾値がL以上のレコードに絞り込む。そして認証部130は、絞り込まれたレコードそれぞれにおける自身が認める役割の配列をrBとする。
[ステップS412]認証部130は、自身の識別子を発行者、rBを役割リスト、hを発行履歴として、トークンを生成する。
このようにして、他のサーバとの関係、およびそのサーバでのユーザの役割との組に応じた、自身が提供するサービス上の役割を、他のサーバで認証されたユーザに対して割り当てることができる。例えば子会社の社員に対しては、孫会社の社員よりも広い範囲で、サービスを提供することができる。
しかも他のサーバとの関係、およびそのサーバでのユーザの役割の組に応じて、連鎖閾値を設定することができる。この際、発行履歴を用いたことで、各ユーザは、どのような過程で連鎖的なトークン発行が行われたかに関係なく、ユーザ認証を受けたサーバとの間で、関連上の距離が所定の範囲(連鎖閾値)内にあるサーバで提供されるサービスを利用可能となる。
〔その他の実施の形態〕
なお第4,第5の実施の形態では、取得したトークンの発行元のサーバが割り当てたユーザの役割と、そのサーバと自サーバとの関係との組に応じて、自サーバで提供するサービス上でのユーザの役割を決定しているが、他の方法で役割を決定してもよい。例えば、トークンの連鎖発行回数に応じて役割を決定することができる。この場合、連鎖発行回数が増加するほど、提供可能なサービスの内容の制限が多い役割を設定することで、自サーバとの間の信頼関係が低いサーバで認証を受けたユーザほど、提供するサービスの内容の制限を厳しくすることができる。
また第2,第3の実施の形態では、サーバ内で共通の連鎖閾値を用いているが、例えば直接の信頼関係を有するサーバごとに連鎖閾値を定義することもできる。例えば、図7に示す関係定義テーブル122において、相手のURLそれぞれに対応する連鎖閾値を設定する。その場合、図12の有効性判定処理におけるステップS153では、取得したトークン発行者に対応付けられた連鎖閾値と、連鎖発行回数とを比較する。
上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、各サーバが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1〜3 情報処理装置
2a 受信手段
2b 生成手段
2c 送信手段
4 ユーザ
5 端末装置

Claims (9)

  1. 情報処理装置が、
    発行元の装置が提供するサービスに対するユーザの利用権を証明する証明情報であり、一の証明情報に基づき他の証明情報を発行する連鎖的な発行処理が行われた回数と、発行元の装置の識別子とを含む証明情報を、前記ユーザの使用する端末装置から受信し、
    前記受信した証明情報の発行元の装置の識別子が、前記情報処理装置以外の識別子である場合に、前記受信した証明情報に示される回数に1を加算した回数と、前記情報処理装置の識別子とを含み、前記情報処理装置が提供するサービスに対する前記ユーザの利用権を証明する証明情報を生成し、
    前記生成した証明情報を、前記端末装置に送信する、
    サービス利用管理方法。
  2. 前記証明情報には、証明情報を発行した装置の識別子のリストが含まれ、該証明情報の連鎖的な発行処理が行われた回数が、該リスト内の装置の識別子の数で表されており、
    前記情報処理装置は、
    前記証明情報の生成の際に、前記受信した証明情報に含まれている前記リスト内の識別子の数を計数して、該証明情報に対して行われた連鎖的な発行処理の回数を認識し、前記受信した証明情報に含まれている前記リストを更新し、該更新されたリストを、前記生成した証明情報に含める、
    ことを特徴とする請求項1記載のサービス利用管理方法。
  3. 前記情報処理装置は、
    前記証明情報の生成の際に、前記受信した証明情報に含まれている前記リスト内に、前記情報処理装置の識別子である第一の識別子が含まれているかどうかを判断し、該第一の識別子が含まれている場合、該リストから該第一の識別子以降の識別子を削除して得られるリストを、前記更新されたリストとする、
    ことを特徴とする請求項2記載のサービス利用管理方法。
  4. 前記情報処理装置は、
    前記証明情報の生成の際に、前記受信した証明情報に示される回数が、予め設定されている閾値以下か否かを判断し、該閾値以下でなければ、証明情報の生成を抑止する、
    ことを特徴とする請求項1乃至3のいずれかに記載のサービス利用管理方法。
  5. 前記情報処理装置は、
    前記認証情報の生成の際に、前記情報処理装置との間で関係を有する装置の識別子が設定された関係情報を参照し、前記受信した証明情報の発行元の装置の識別子が、前記関係情報に登録されていなければ、認証情報の生成を抑止する、
    ことを特徴とする請求項1乃至4のいずれかに記載のサービス利用管理方法。
  6. 前記証明情報には、該証明情報を発行した装置が提供するサービス上での前記ユーザの役割が示されており、
    前記情報処理装置は、
    前記認証情報の生成の際に、前記情報処理装置との間で関係を有する装置の識別子、前記情報処理装置に対する該装置の関係、該装置で提供されたサービス上での役割と該関係との組に応じた閾値が予め設定された関係情報を参照し、前記受信した証明情報の発行元の装置の識別子が、前記情報処理装置との間で関係を有する装置の識別子であり、かつ前記受信した証明情報に示される回数が、前記受信した証明情報を発行した装置の関係と、該装置が提供するサービス上での前記ユーザの役割との組に応じた閾値以下であるという要件を満たすか否かを判断し、該要件を満たした場合、認証情報を生成し、該要件を満たさない場合、認証情報の生成を抑止する、
    ことを特徴とする請求項1乃至5のいずれかに記載のサービス利用管理方法。
  7. 前記証明情報には、該証明情報を発行した装置が提供するサービス上での前記ユーザの役割が示されており、
    前記情報処理装置は、
    前記認証情報の生成の際に、前記情報処理装置との間で関係を有する装置の識別子、前記情報処理装置に対する該装置の関係、該装置で提供されたサービス上での役割と該関係との組に応じた、前記情報処理装置で提供するサービス上での役割が予め設定された関係情報を参照し、前記受信した証明情報の発行元の装置の識別子に対応する装置の関係と、該装置が提供するサービス上での前記ユーザの役割との組に応じた、前記情報処理装置で提供するサービス上での役割を決定し、該決定した役割を含む証明情報を生成する、
    ことを特徴とする請求項1乃至6のいずれかに記載のサービス利用管理方法。
  8. 情報処理装置に、
    発行元の装置が提供するサービスに対するユーザの利用権を証明する証明情報であり、一の証明情報に基づき他の証明情報を発行する連鎖的な発行処理が行われた回数と、発行元の装置の識別子とを含む証明情報を、前記ユーザの使用する端末装置から受信し、
    前記受信した証明情報の発行元の装置の識別子が、前記情報処理装置以外の識別子である場合に、前記受信した証明情報に示される回数に1を加算した回数と、前記情報処理装置の識別子とを含み、前記情報処理装置が提供するサービスに対する前記ユーザの利用権を証明する証明情報を生成し、
    前記生成した証明情報を、前記端末装置に送信する、
    処理を実行させるプログラム。
  9. 発行元の装置が提供するサービスに対するユーザの利用権を証明する証明情報であり、一の証明情報に基づき他の証明情報を発行する連鎖的な発行処理が行われた回数と、発行元の装置の識別子とを含む証明情報を、前記ユーザの使用する端末装置から受信する受信手段と、
    前記受信した証明情報の発行元の装置の識別子が、前記情報処理装置以外の識別子である場合に、前記受信した証明情報に示される回数に1を加算した回数と、前記情報処理装置の識別子とを含み、前記情報処理装置が提供するサービスに対する前記ユーザの利用権を証明する証明情報を生成する生成手段と、
    前記生成した証明情報を、前記端末装置に送信する送信手段と、
    を有する情報処理装置。
JP2012045245A 2012-03-01 2012-03-01 サービス利用管理方法、プログラム、および情報処理装置 Active JP5845973B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012045245A JP5845973B2 (ja) 2012-03-01 2012-03-01 サービス利用管理方法、プログラム、および情報処理装置
EP13155908.0A EP2634720B1 (en) 2012-03-01 2013-02-20 Service usage management method, recording medium, and information processing device
US13/778,857 US9203828B2 (en) 2012-03-01 2013-02-27 Service usage management method, recording medium, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012045245A JP5845973B2 (ja) 2012-03-01 2012-03-01 サービス利用管理方法、プログラム、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2013182375A true JP2013182375A (ja) 2013-09-12
JP5845973B2 JP5845973B2 (ja) 2016-01-20

Family

ID=47826891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012045245A Active JP5845973B2 (ja) 2012-03-01 2012-03-01 サービス利用管理方法、プログラム、および情報処理装置

Country Status (3)

Country Link
US (1) US9203828B2 (ja)
EP (1) EP2634720B1 (ja)
JP (1) JP5845973B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015125290A1 (ja) * 2014-02-24 2015-08-27 富士通株式会社 サービス提供方法、サービス提供装置、及び、サービス提供プログラム
JP2016057656A (ja) * 2014-09-05 2016-04-21 株式会社リコー 情報処理装置、アクセス制御方法、通信システム、及びプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043890B1 (en) * 2013-05-30 2015-05-26 Emc Corporation Distributed authentication against stored user identifiers and user templates via pseudonym association
EP3706364B1 (en) * 2013-09-23 2021-04-21 Samsung Electronics Co., Ltd. Security management method and security management device in home network system
JP6983685B2 (ja) * 2018-01-31 2021-12-17 キヤノン株式会社 情報処理システム、クライアント装置、認証認可サーバー、制御方法とそのプログラム
US11196733B2 (en) * 2018-02-08 2021-12-07 Dell Products L.P. System and method for group of groups single sign-on demarcation based on first user login

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0456386A2 (en) * 1990-05-11 1991-11-13 International Computers Limited Access control in a distributed computer system
JP2000222360A (ja) * 1999-02-01 2000-08-11 Matsushita Electric Ind Co Ltd 認証方法、認証システム及び認証処理プログラム記録媒体
JP2003323343A (ja) * 2001-07-17 2003-11-14 Matsushita Electric Ind Co Ltd コンテンツ利用装置及びネットワークシステム並びにライセンス情報取得方法
JP2005338979A (ja) * 2004-05-25 2005-12-08 Nippon Telegr & Teleph Corp <Ntt> ライセンス発行管理方法、装置、プログラムおよび同プログラムを記録した記録媒体
JP2006031064A (ja) * 2004-07-12 2006-02-02 Hitachi Ltd セッション管理システム及び管理方法
JP2006350906A (ja) * 2005-06-20 2006-12-28 Kddi Corp 認証システムおよび同システムにおける認証情報委譲方法
US20070006291A1 (en) * 2005-06-30 2007-01-04 Nokia Corporation Using one-time passwords with single sign-on authentication
JP2011160383A (ja) * 2010-02-04 2011-08-18 Konica Minolta Business Technologies Inc 監視装置、監視方法および監視プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269735B2 (en) * 2000-08-28 2007-09-11 Contentgaurd Holdings, Inc. Instance specific digital watermarks
JP2008506139A (ja) 2004-07-09 2008-02-28 松下電器産業株式会社 ユーザ認証及びサービス承認を管理し、シングル・サイン・オンを実現して、複数のネットワーク・インタフェースにアクセスするためのシステム及び方法
US8924194B2 (en) * 2006-06-20 2014-12-30 At&T Intellectual Property Ii, L.P. Automatic translation of advertisements
GB2449510A (en) * 2007-05-24 2008-11-26 Asim Bucuk A method and system for the creation, management and authentication of links between people, entities, objects and devices
US20090193507A1 (en) * 2008-01-28 2009-07-30 Wael Ibrahim Authentication messaging service
JP2009272737A (ja) * 2008-05-01 2009-11-19 Panasonic Corp 秘匿認証システム
CN101771564B (zh) * 2008-12-31 2013-10-09 华为技术有限公司 会话上下文的处理方法、装置和系统
US20120290483A1 (en) * 2011-05-12 2012-11-15 Moshe Hezrony Methods, systems and nodes for authorizing a securized exchange between a user and a provider site

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0456386A2 (en) * 1990-05-11 1991-11-13 International Computers Limited Access control in a distributed computer system
JP2000222360A (ja) * 1999-02-01 2000-08-11 Matsushita Electric Ind Co Ltd 認証方法、認証システム及び認証処理プログラム記録媒体
JP2003323343A (ja) * 2001-07-17 2003-11-14 Matsushita Electric Ind Co Ltd コンテンツ利用装置及びネットワークシステム並びにライセンス情報取得方法
JP2005338979A (ja) * 2004-05-25 2005-12-08 Nippon Telegr & Teleph Corp <Ntt> ライセンス発行管理方法、装置、プログラムおよび同プログラムを記録した記録媒体
JP2006031064A (ja) * 2004-07-12 2006-02-02 Hitachi Ltd セッション管理システム及び管理方法
JP2006350906A (ja) * 2005-06-20 2006-12-28 Kddi Corp 認証システムおよび同システムにおける認証情報委譲方法
US20070006291A1 (en) * 2005-06-30 2007-01-04 Nokia Corporation Using one-time passwords with single sign-on authentication
JP2011160383A (ja) * 2010-02-04 2011-08-18 Konica Minolta Business Technologies Inc 監視装置、監視方法および監視プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015125290A1 (ja) * 2014-02-24 2015-08-27 富士通株式会社 サービス提供方法、サービス提供装置、及び、サービス提供プログラム
JPWO2015125290A1 (ja) * 2014-02-24 2017-03-30 富士通株式会社 サービス提供方法、サービス提供装置、及び、サービス提供プログラム
US10270756B2 (en) 2014-02-24 2019-04-23 Fujitsu Limited Service providing method, and service providing device
JP2016057656A (ja) * 2014-09-05 2016-04-21 株式会社リコー 情報処理装置、アクセス制御方法、通信システム、及びプログラム

Also Published As

Publication number Publication date
EP2634720A1 (en) 2013-09-04
EP2634720B1 (en) 2018-08-29
US9203828B2 (en) 2015-12-01
US20130232557A1 (en) 2013-09-05
JP5845973B2 (ja) 2016-01-20

Similar Documents

Publication Publication Date Title
JP5799855B2 (ja) サービス提供方法、プログラム、および情報処理装置
US20210006410A1 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
US8918856B2 (en) Trusted intermediary for network layer claims-enabled access control
US7454421B2 (en) Database access control method, database access controller, agent processing server, database access control program, and medium recording the program
CN113711536A (zh) 从区块链网络中提取数据
US9344432B2 (en) Network layer claims based access control
JP5845973B2 (ja) サービス利用管理方法、プログラム、および情報処理装置
JP5365502B2 (ja) ファイル管理装置、ファイル管理プログラム、およびファイル管理方法
JP2018533141A (ja) エンドユーザによって起動されるアクセスサーバ真正性チェック
CN113056741A (zh) 基于分布式账本的简档验证
US8601540B2 (en) Software license management
CN115053218A (zh) 跨微服务的认证和授权
US20220029998A1 (en) Systems and methods for managing domain name information
US11386232B2 (en) Distributed data management and verification
CN115191104A (zh) 由去中心化标识符锚定的去中心化标识
JP6733028B2 (ja) 権限取り消し方法及びデバイス
Yang et al. An access control model based on blockchain master-sidechain collaboration
US20120110011A1 (en) Managing application access on a computing device
US11726674B2 (en) Bridging authorization standard for cloud storage
Sanzi et al. Trust Profiling to Enable Adaptive Trust Negotiation in Mobile Devices
US12008561B2 (en) System for verification of pseudonymous credentials for digital identities with managed access to personal data on trust networks
US11334557B2 (en) Method and system for deriving metadata characteristics of derivative assets
JP2017062627A (ja) 認証処理システム、認証処理方法及び認証処理プログラム
US20190333054A1 (en) System for verification of pseudonymous credentials for digital identities with managed access to personal data on trust networks
TWM615402U (zh) 物聯網裝置的管理系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151109

R150 Certificate of patent or registration of utility model

Ref document number: 5845973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150