JP6806543B2 - 権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法 - Google Patents

権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法 Download PDF

Info

Publication number
JP6806543B2
JP6806543B2 JP2016229190A JP2016229190A JP6806543B2 JP 6806543 B2 JP6806543 B2 JP 6806543B2 JP 2016229190 A JP2016229190 A JP 2016229190A JP 2016229190 A JP2016229190 A JP 2016229190A JP 6806543 B2 JP6806543 B2 JP 6806543B2
Authority
JP
Japan
Prior art keywords
resource
authority
user
access
request
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.)
Active
Application number
JP2016229190A
Other languages
English (en)
Other versions
JP2018085049A (ja
Inventor
存 田村
存 田村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016229190A priority Critical patent/JP6806543B2/ja
Priority to US15/814,538 priority patent/US10574645B2/en
Publication of JP2018085049A publication Critical patent/JP2018085049A/ja
Application granted granted Critical
Publication of JP6806543B2 publication Critical patent/JP6806543B2/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
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Storage Device Security (AREA)

Description

本発明は、例えば権限検証を行う主体とリソース管理を行う主体が異なる場合等の、リソースごとの権限検証を可能とする権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法に関する。
リソースに対するアクセスを制御するために従来、たとえばOS管理下のファイルについては、OSがユーザーやユーザーグループごとのアクセスの許可や拒否を制御できていた。これは、ファイル管理も権限検証も、共にOSが実施していたためである。OS管理下のリソースに対するアクセス制御の振る舞いを切り替える方式として従来、ログイン時のパスワードにより権限を切り替える方式が提案されている(例えば特許文献1)。
特開2011-238258号公報
ここでクラウドサービスにおける、リソースに対する権限検証を考える。特に、ユーザーに機能を提供する複数のアプリケーションサービスを含むクラウドサービスを考える。この場合ユーザーの権限検証は、各機能を提供するアプリケーションサービスごとに実現するのでなく、認証・認可サービスのような一か所に集約したサービスとして実現する事が一般的である。これはセキュリティに関する機能は一か所に集約し、集約した箇所を重点的にセキュリティ向上させるのがよいためである。この場合、認証・認可サービスは複数のアプリケーションサービスと連携することになるため、アプリケーションサービスのリソースは各々のアプリケーションサービスに対応するリソースサーバー上で管理することが適当と考えられる。ユーザーに複数の機能を提供するクラウドサービスを考えた場合、権限検証を行う主体とリソース管理を行う主体とが、認証・認可サービスとアプリケーションサービスとにそれぞれ分散されることになる。この場合、各ユーザーが、各々のアプリケーションサービスのリソースごとに権限の範囲を変える仕組みがない。そのため、たとえばユーザーごとに、リソースごとの権限を付与し、ユーザーごとにその権限を認証または認可することは困難であった。また、認証・認可サービスにおいて、ユーザーごとにリソース別の権限を管理するとしても、リソースの変更があれば権限についてもその変更を反映しなければならず、権限管理の整合性や簡便性に問題が生じ得る。
本発明は前述の課題を鑑みてなされたもので、利便性や整合性を維持しつつユーザーごと且つリソースごとに異なる権限制御を行うことができる権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法を提供することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。
本発明の第一の側面によれば、リソースに対するアクセス権限を検証する権限検証システムであって、
リソースごとに定めたリソース別ユーザー権限を管理するリソース別ユーザー権限管理手段と、
ユーザー権限を管理するユーザー権限管理手段と、
指定されたリソースに対するアクセス要求に応じて、前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限に基づいて、前記指定されたリソースに対して有する権限を特定し、前記ユーザー権限管理手段で管理された前記ユーザー権限に基づいて、前記アクセス要求の送信元が有するユーザー権限を特定する特定手段と、
前記特定手段で特定された前記指定されたリソースに対して有する権限で、特定された前記ユーザー権限を絞り込んでアクセス権限を決定する絞り込み手段と、
前記絞り込み手段により絞り込まれた前記アクセス権限で、前記アクセス要求に応じたリソースに対するアクセスが許可されるか判定する検証手段と、
前記検証手段により前記アクセスが許可されると判定された場合には、前記送信元に、前記リソースに対するアクセスを許す手段と
を有する。
また本発明の第2の側面によれば、リソースに対するアクセスを提供するリソースサーバーであって、
リソースごとのリソース別ユーザー権限を管理するリソース別ユーザー権限管理手段と、
指定されたリソースに対するアクセス要求に応じて、前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限に基づいて、前記指定されたリソースに対して有する権限を特定する特定手段と、
前記特定手段により特定した前記指定されたリソースに対して有する権限と、認証サーバーが有するユーザーごとのユーザー権限とに基づいたアクセス権限で、前記アクセス要求に応じたリソースに対するアクセスが許可されるかの判定を認証サーバーに要求する手段と、
前記認証サーバーからの応答に基づいて前記アクセスが許可されると判定された場合には、前記アクセス要求の送信元に、前記リソースに対するアクセスを許す手段とを有する。
また本発明の第3の側面によれば、リソースに対するアクセス権限を検証する認証サーバーであって、
ユーザごとのユーザー権限を管理するユーザー権限管理手段と、
リソースに対するアクセス権限の判定の要求に応じて、該要求と共に受信したリソース別ユーザー権限と、前記ユーザー権限管理手段により管理された前記ユーザー権限とに基づいて、リソースに対するアクセスが許可されるか判定する検証手段と、
前記検証手段による判定結果を前記要求の要求元に応答する手段と
を有する。
本発明によれば、利便性や整合性を維持しつつユーザーごと且つリソースごとに異なる権限制御を行うことができる。またその際に、リソース別のユーザーの権限について認証サーバーで管理する必要がなくなる。
ネットワーク構成を示す図である。 本発明の実施の形態に係るサーバーコンピューターの構成図である。 本実施の形態に係るモジュール構成図である。 本実施の形態に係るトークン発行フローである。 本実施の形態に係るリソースアクセス処理フローである。 本実施の形態に係る権限検証フローである。 本実施の形態に係る画面例を示す図である。 本実施の第2の形態に係るモジュール構成図である。 本実施の第2の形態に係る権限付与および解除フローである。 本実施の第3の形態に係るモジュール構成図である。 本実施の第3の形態に係るリソースアクセス処理フローである。 本実施の第3の形態に係る権限検証フローである。
以下、本発明を実施するための形態について図面を用いて説明する。なお本実施の形態では、次のようなシステムを考える。たとえば、地区ごとの複合機の稼働情報を管理する、複合機管理サービスを考える。ここで、あるユーザーXはA地区の複合機管理担当であり、A地区の複合機の情報を、アプリケーションサービスのひとつである複合機管理サービスに登録する。ユーザーXは、B地区の複合機の情報については、複合機管理サービスに登録できないが、参照できる必要があるケースを考える。ここで、認証・認可サービスが「ユーザーXはA地区情報登録権限およびB地区情報参照権限を持つ」という権限管理ができれば、前述のケースを実現できる。しかし実際には、複合機管理サービスの運用中に新たにC地区が追加されることも考えられる。前述の方式では、地区が追加されるたびに認証・認可サービスに対して権限定義の追加が必要になる。このため権限定義が際限なく増えることで認証・認可サービスの負荷が増えてしまう。認証・認可サービスは複合機管理サービスのみならず、その他のサービスに対する認証・認可処理を実行する可能性が高いため、1つのサービスのために負荷をかけることは現実的ではない。
一方、別の方法として地区が追加されるたびに権限定義されることがないよう、認証・認可サービスでは「ユーザーXは登録権限および参照権限を持つ」のように、地区を意識しない権限管理することを考える。この場合、ユーザーXはA地区情報登録権限およびB地区情報参照権限を持つことは実現できるが、権限が地区と紐付いていないため、ユーザーXがB地区情報登録権限およびA地区情報参照権限も持つことになってしまう。これは、権限が過剰に割り当てられ、リソースごとにできることを切り替えられていないことになる。
次に説明する本願発明を実施することでこれらの問題を解決しつつ、本願発明の課題に記載した問題を解決することが可能になる。
[第1実施形態]
本実施の形態に係る権限移譲システム(あるいは認証システムあるいは権限検証システム)は、図1に示すような構成のネットワーク上に実現される。WAN100は、Wide Area Network(広域ネットワーク)であり、本実施の形態においてはWorld Wide Web(WWW)システムが構築されている。LAN101およびLAN102は各構成要素を接続するLocal Area Network(ローカルエリアネットワーク)である。
認証・認可サーバー151(認証サーバー151と呼ぶこともある。)はユーザーの認証、認可および認証トークンおよびアクセストークンの発行および検証を行う。リソースサーバー152はリソースを管理する。アプリケーションサーバー153は、たとえばユーザー端末191からの要求に応じてサービスを提供する。ここで認証トークンとは、あるユーザーがシステムの正当な利用者であることを証明するひとまとまりの情報である。またアクセストークンとは、たとえばアプリケーションサーバー153上で稼働するあるアプリケーションが、ユーザーに、なんらかの操作(あるいは特定の操作)を許可されたことを証明するひとまとまりの情報であり、ユーザーがアプリケーションに対して認可操作することで発行される。アクセストークンは、ユーザーから委譲された権限を示す情報とも言え、たとえば権限の委譲元のユーザーや委譲された権限を示す情報などを含む。たとえばアプリケーションが、クラウドサービスが管理するリソースにアクセスするためのアクセストークンを用いると、そのアプリケーションは、認可操作したユーザーに許可された範囲でリソースにアクセスできるようになる。ユーザー端末191はユーザーにより操作される。各サーバーおよびユーザー端末101は例えばコンピュータである。
認証・認可サーバー151、リソースサーバー152はそれぞれWAN100およびLAN101を介して接続されている。また同様にユーザー端末191はWAN100およびLAN102を介して接続されている。なお認証・認可サーバー151、リソースサーバー152はそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよいし、同一のPCまたはサーバーコンピューター上に構成されていてもよい。また、認証・認可サーバー151、リソースサーバー152は図1ではそれぞれが1台として描かれているが複数のサーバーから構成されたサーバーシステムでも良く、例えば、複数台のサーバーをクラスタ化して認証・認可サーバー151を構成しても良い。なお、本願発明においてサーバーシステムと称した場合は、少なくとも1台のサーバーから構成された特定のサービスを提供する装置を指すものとする。
さらに、インターネットなどの広域ネットワーク100には、LAN103が接続され、LAN103上にはMFP(多機能周辺装置あるいは画像形成装置)131が接続されている。MFP131は、たとえば設定情報や、スキャンなどによって取得した画像データなどを保持することができる。また、MFP131は、保持している情報のほか、スキャナ機能、プリンタ機能、画像処理機能などの機能を共有リソースとして、アクセス権限を付与されたアプリケーションサーバー153等に対して提供することができる。
<サーバー及び端末のハードウェア>
図2は本実施の形態に係る、認証・認可サーバー151の構成を示す図である。またリソースサーバー152の構成やユーザー端末191の構成も同様である。尚、図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態のサーバーコンピューターおよびユーザー端末には一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、或いはハードディスク211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。ディスプレイコントローラ(CRTC)206は、ディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。尚、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211にインストールされたプログラム、たとえばアプリケーションプログラムである。
<認証・認可サーバーおよびリソースサーバーのソフトウェアモジュール構成>
図3は本実施の形態に係る、認証・認可サーバー151、リソースサーバー152のモジュール構成を示す図である。図3(A)は認証・認可サーバー151の、図3(B)はソースサーバー152のモジュール構成を、それぞれ示す。また図3(C)はユーザー端末191のモジュール構成を示す。認証・認可サーバー151は認証モジュール301、認可モジュール302、権限検証モジュール303を持つ。リソースサーバー152はリソースアクセス処理モジュール351、リソース別ユーザー権限記憶モジュール352、権限検証依頼モジュール353を持つ。ユーザー端末191はトークン要求モジュール391とリソース要求モジュール392を持つ。
認証モジュール301はユーザー端末191のトークン要求モジュール391からのトークン要求に応じ、ユーザー認証および認証トークンの発行を行う。また認可モジュール302は、同じくユーザー端末191のトークン要求モジュール391からのトークン要求に応じ、権限委譲や認可確認画面の表示やアクセストークンの発行を行う。権限検証モジュール303は認証モジュール301が発行した認証トークンもしくは認可モジュール302が発行したアクセストークンを用いて権限検証を行う。
リソースアクセス処理モジュール351はユーザー端末191のリソース要求モジュール392からリソース要求を受信する。リソース要求を受信すると、リソース別ユーザー権限記憶モジュール352や権限検証依頼モジュール353を用いてユーザーの権限を確認し、リソース要求を処理する。
リソースの具体例としては例えば、複合機管理サービスに登録された複合機をグルーピングした地区が考えられる。たとえばTokyo地区リソースと言った場合には、地理的にTokyoに設置されている複合機が紐付けられているとする。またTokyo地区リソースに対して複合機情報を取得するリソース要求と言った場合には、地理的にTokyoに設置されている複合機の情報を取得することとする。以下で単にリソースと表現した場合は、前述のような複合機が設置された地区およびその地区に紐付けられた複合機を示すものとする。ただし、本願のリソースは地区や複合機に限定されるものではない。
<ログイン処理>
図4(A)は本実施の形態に係る、認証・認可サーバーにおけるログインフローである。本フローは認証・認可サーバー151がユーザー端末191からログイン要求を受信することで開始される。
ステップS401で認証モジュール301は、ユーザー端末191に対し、図7(A)に示されるようなログイン画面1001を送信する。ステップS402で認証モジュール301は、ログイン画面1001で入力された認証情報を受け付ける。ステップS403で認証モジュール301は、ステップS402で受け付けた認証情報が妥当か、すなわち認証が成功したか判断する。ここで認証情報が妥当と判断された場合はステップS404に遷移する。また認証情報が妥当でないと判断された場合はステップS410に遷移する。妥当であるとは、例えば予め登録されている認証情報と、ユーザー端末191で入力された認証情報とが一致することである。
ステップS404で認証モジュール301は、ユーザーのログインを許可し、認証トークンを発行してフローを終了する。なおここで発行された認証トークンは、ユーザーと紐付けられ、表1に示されるような発行済みトークンテーブルで管理される。たとえば表1では、トークン識別子がAn0011223344のトークンは、トークン種別が認証トークンであり、ユーザーIDがUser Xであることを示す。また表1ではいずれの認証トークンにもスコープの設定はされていないことを示している。また同様にトークン識別子がAz99887766のトークンは、トークン種別がアクセストークンであり、ユーザーIDがUser Xであることを示す。またスコープとしてscope.MFP-ReadWriteおよびscope.MFP-Readが委譲されていることを示す。
Figure 0006806543
ステップS410で認証モジュール301は、認証に失敗したユーザーのログインを拒否し、フローを終了する。なお本実施の形態に係るログインフローには、一般的なログインフローを適用できるものとする。
以上の手順で認証トークンを得たユーザー(あるいはユーザー端末あるいはユーザー端末で実行されるアプリケーションなど)は、認証トークを用いてたとえばアプリケーションサーバー153にサービス提供を要求し、サービスを受けることができる。
<アクセストークンの発行処理>
図4(B)は本実施の形態に係る、認証・認可サーバー151における、アクセストークンの発行フローである。本フローは認証・認可サーバー151の認可モジュール302がユーザー端末191あるいはアプリケーションサーバー153などの要求元から、アクセストークンの要求を受信することで開始される。
ステップS451で認可モジュール302は、ユーザー端末191からアクセストークンの発行要求を受け付ける。ここで受け付けたアクセストークンの発行要求はユーザーの情報を含む。
ステップS452で認可モジュール302は、ユーザー端末191を操作しているユーザーがログイン済みか判断する。ここでユーザーがログイン済みと判断された場合はステップS455に遷移する。またログイン済みでないと判断された場合はステップS453に遷移する。ログイン済みであるか否かの判断は、たとえばステップS451のアクセストークンの発行要求に認証トークンが含まれるか否かで行われる。
ステップS453で認証モジュール301は、ユーザー端末191に対し、図7(A)に示されるようなログイン画面1001を送信する。なおログインフローの詳細は図4(A)で示したものと同様である。
ステップS454で認証モジュール301は、ステップS453に対応してユーザーがログインしたか判断する。ここでユーザーがログインしたと判断されればステップS455に遷移する。またユーザーがログインしなかったと判断された場合はステップS460に遷移する。
ステップS455で認可モジュール302は、ユーザー端末191に対し、図7(B)に示すような認可確認画面1002を送信し、ユーザーの確認を求める。認可確認画面1002にはアクセスを許す範囲が表示され、ユーザーは、たとえばアプリケーションサービスによる表示されたデータへのアクセスを許可するのであれば「許可」ボタンを、拒否するのであれば「拒否」ボタンを押下する。認可モジュール302はそれぞれのボタンによる入力を受け付ける。アクセスを許す範囲は、対象となる情報の範囲に加えて、対象となる情報に対する操作の種別を含んでもよい。図7(B)の例では、対象となる情報として「MFP情報」と表示され、対象となる操作の種類として、「読み取りと編集」が表示されている。この対象となる情報や操作の種類といったアクセスを許諾する範囲は、たとえばアクセストークンの発行要求とともに受信した情報に基づいている。
ステップS456で認可モジュール302は、ステップS455に対応してユーザーの認可を得られたか判断する。ここで認可を得られたと判断された場合はステップS457に遷移する。また認可を得られなかったと判断された場合はステップS460に遷移する。ユーザーが認可を行うために図7(B)にて許可を選択するための操作を認可操作と称し、ユーザーにより認可操作が行われたことでアクセストークンの発行が行われる。またここで認可された内容をスコープと称し、発行されたアクセストークンに認可された内容は、以下、スコープとして管理される。
ステップS457で認可モジュール302は、アクセストークンを発行し、ステップS451で受け付けたアクセストークンの発行要求に含まれるユーザー情報に紐付けて表1の発行済みトークンテーブルで記憶する。また発行したアクセストークンをユーザー端末191に返し、フローを終了する。なおここ発行されたアクセストークンは前述の表1に示されるような発行済みトークンテーブルで管理される。なお、OAuth2.0の様な権限委譲プロトコルでアクセストークンを発行しても良く、その場合は認可コードを発行するステップを加えることになる。発行したアクセストークンには、固有のトークン識別子が付与されており、それによってトークンを特定できる。またアクセストークンには、アクセスが許された例えば操作の種類が、スコープとして関連付けられる。スコープは、たとえばアクセストークンの発行要求とともに受信したアクセス範囲に基づいて設定される。発行済みトークンテーブルには、トークン識別子と発行したトークンの種別、ログインしているユーザーのユーザーID、許可されたアクセスの範囲(スコープ)が関連付けて登録される。
ステップS460で認可モジュール302は、アクセストークンを発行できない旨をユーザー端末191に通知し、フローを終了する。なお本実施の形態に係るアクセストークン発行フローには、一般的なアクセストークン発行フローを適用できるものとする。
以上の処理によって、アクセストークンを取得したアプリケーションは、そのアクセストークンを用いることで、ユーザーにより委譲された権限の範囲でリソースへアクセスすることができる。したがってアクセストークンが登録された表1に示した発行済みトークンテーブルおよびそれを管理するリソース別ユーザ権限記憶モジュール352は、リソースごとに定めたリソース別ユーザー権限を管理するリソース別ユーザー権限管理部ということもできる。
<リソースへのアクセス処理>
図5は本実施の形態に係る、リソースサーバー152におけるリソースアクセスの処理フローである。本フローはリソースサーバー152がユーザー端末191或いはユーザーから権限を移譲されたアプリケーションサーバー153からリソースアクセス要求を受信することで開始される。
ステップS501でリソースサーバー152のリソースアクセス処理モジュール351は、ユーザー端末191からのリソースアクセス要求を受け取る。ここでリソースアクセス要求には、認証トークンまたはアクセストークンと、アクセス対象リソースの指示と、リソースアクセスの操作内容を含む。リソースアクセス要求の送信元はたとえばユーザーから権限を移譲されたアプリケーションサーバー153などであってもよく、その場合にはリソースアクセス要求には、アクセストークンと、アクセス対象リソースの指示と、リソースアクセスの操作内容を含む。
ステップS502でリソースアクセス処理モジュール351は、ステップS501で指定された操作を実行するのに必要なスコープを解決する。なおこのスコープはアクセストークンに紐付くスコープと同様のものであり、権限検証に際しては、操作に必要なスコープがアクセストークンに紐付くことの確認が行われる。またユーザーがそのスコープを満たす権限を持つかも確認される。操作とスコープの対応関係は、たとえば表2に示されるような、操作別要求スコープテーブルで管理される。表2の例では、機器を管理するManageDevices操作に対してscope.MFP-ReadWriteというスコープが必要と定義されている。操作と対応するスコープとはたとえば予め決定しておき、表2の操作別要求スコープテーブルに保存しておけばよい。したがって、リソースサーバー152は、リソースアクセス要求と共に受け取った操作内容の指定に対応するスコープを操作別要求スコープテーブルから検索して、該当するスコープを一時的に保存しておく。そのスコープが要求された操作内容のために必要な権限を示す。
Figure 0006806543
ステップS503でリソースアクセス処理モジュール351は、ステップS501で受け取った認証トークンもしくはアクセストークンを用いて認証・認可サーバー151に問い合わせることで、トークンに紐付くユーザーを解決する。問い合わせを受けた認証・認可サーバー151は、たとえば表1の発行済みトークンテーブルから、受けとったトークンのトークン識別子およびトークン種別に紐づけられたユーザーIDを検索する。該当するユーザーIDがあれば、それをリソースサーバー152に返す。
ステップS504でリソースアクセス処理モジュール351は、ステップS501で指定されたリソースにおいて、ステップS503で解決したユーザーが、どの権限で操作してよいかの権限情報を取得する。このリソース別のユーザー権限は、リソース別ユーザー権限記憶モジュール352が、表3に示すようなリソース別ユーザー権限テーブルで記憶する。表3ではArea-Aリソースに対し、User Xユーザーは、MFP-ReadWriteの権限で操作してよいことが示される。具体的には、地理的にArea-Aに設置された複合機に対し、User Xユーザーは、複合機の情報取得や設定変更ができるものとする。またあるユーザーの特定のリソースに対する権限が複数記憶されていた場合は、そのリソースに対し複数の権限のすべてを持つこととする。ステップS504では結局、指定されたリソースに対する特定されたユーザーの権限情報を得る。このようにリソース別ユーザー権限テーブルには、リソースを示す例えば識別情報とユーザーIDとその権限とが関連付けられて登録されている。リソース別ユーザー権限テーブルは、たとえばリソースサーバー151に保存され、その保守はたとえばユーザー端末191から、権限を持った管理者により行うことができてもよい。
Figure 0006806543
ステップS505でリソースサーバー152の権限検証依頼モジュール353は、認証・認可サーバー151に対し、権限検証を依頼する。ここで権限検証依頼には、ステップS501で取得したトークンと、ステップS502で解決したスコープと、ステップS504で取得した権限情報を含む。認証・認可サーバー151は、受信した権限検証依頼に応じて権限検証を行う。この手順は図6で説明する。簡単に説明すれば、認証・認可サーバー151は、受信したトークンでたとえば表1の発行済みトークン情報を検索する。そして、該当するトークンに関連づけられたスコープが、権限検証依頼と共に受信した、操作のために必要なスコープをすべて含み、かつ、特定されたユーザーが指定されたリソースに対して有する権限をすべて含むか否かを判定する。すべて含んでいれば権限ありと判定される。またトークンに関連付けられたスコープではカバーできない権限を要する操作やリソースがあれば、権限なしと判定される。判定の結果はリソースサーバー152に送信される。
ステップS506でリソースアクセス処理モジュール351は、ステップS505の権限検証の結果、権限ありと判断されたか確認する。権限ありと判断された場合はステップS507に遷移し、権限なしと判断された場合はステップS550に遷移する。
ステップS507でリソースアクセス処理モジュール351は、ステップS501で受け取ったリソースアクセス要求を処理し、ユーザー端末191に結果を返してフローを終了する。リソースアクセス要求の処理では、その要求に応じてたとえばデータを読み出し、あるいはデータを更新し、あるいはメモリや計算リソースを確保するなどが行われる。
ステップS550でリソースアクセス処理モジュール351は、ステップS501で受け取ったリソースアクセス要求を処理できない旨を、ユーザー端末191に応答として返してフローを終了する。
以上の手順により、リソースサーバー152は、指定された操作が、受信したトークンに関連付けられたスコープで可能であるか判定し、可能であればそれを実行する。
<権限検証処理>
図6は本実施の形態に係る、認証・認可サーバー151における、認証トークンおよびアクセストークンを用いた権限検証フローである。本フローは認証・認可サーバー151の権限検証モジュール303が、リソースサーバー152の権限検証依頼モジュール353から権限検証依頼(図5のステップS505に相当)を受信することで開始される。
ステップS601で権限検証モジュール303は、リソースサーバー152の権限検証依頼モジュール353から権限検証依頼を受信する。ここで権限検証依頼にはリソースサーバー152のリソースアクセス処理モジュール351がユーザー端末191またはアプリケーションサーバー153から受信した認証トークンもしくはアクセストークンを含む。また前記権限検証依頼は、リソースサーバー152のリソースアクセス処理モジュール351がユーザー端末191またはアプリケーションサーバー153から要求されたリソースアクセスに必要なスコープも含む。さらに前記権限検証依頼は、リソースサーバー151のリソースアクセス処理モジュール351が、リソース別ユーザー権限記憶モジュール352から取得した、指定リソースに対するユーザーの権限情報も含む。
ステップS602で権限検証モジュール303は、ステップS601で受け取ったトークンが認証トークンであったかアクセストークンであったか判断する。トークンが認証トークンであった場合はステップS605に遷移し、アクセストークンであった場合はステップS603に遷移する。
ステップS603で権限検証モジュール303は、表1に示されるような発行済みトークンテーブルに問い合わせ、ステップS601で受け取ったアクセストークンに紐付くスコープを取得する。
ステップS604で権限検証モジュール303は、ステップS603で取得したアクセストークンに紐付くスコープが、ステップS601で受け取ったスコープをすべて含むか判断する。スコープをすべて含むと判断された場合はステップS605に遷移し、1つでも含まれないものがあると判断された場合はステップS650に遷移する。
ステップS605で権限検証モジュール303は、表4で示されるようなスコープテーブルに問い合わせ、ステップS601で受け取ったスコープで要求されるユーザーの権限を取得する。ここでリソース利用に必要なスコープがscope.MFP-ReadWriteだったとする。この場合、要求されるユーザーの権限はMFP-ReadWriteであると判断される。スコープテーブルは例えば認証・認可サーバー152に別途登録され、保守される。
Figure 0006806543
ステップS606で権限検証モジュール303は、ステップS601で受け取ったトークンを元に表1で示される発行済みトークンテーブルを参照し、トークンに紐付けられたユーザーを解決する。たとえばトークンの識別子がAn0011223344であれば、トークンに紐付けられたユーザーはUser Xであると分かる。
ステップS607で権限検証モジュール303は、表5で示されるユーザー権限テーブルを参照し、ステップS601で受け取ったトークンに紐付けられたユーザーの権限を解決する。たとえばユーザーIDがUser Xであれば、その権限はMFP-ReadWriteおよびMFP-Readである。ユーザ権限テーブルは例えば認証・認可サーバー151に別途登録され、保守される。ユーザ権限テーブルおよびユーザー権限を管理する認証・認可サーバー151は、ユーザー権限管理部ということもできる。
Figure 0006806543
ステップS608で権限検証モジュール303は、ステップS601で受け取った指定リソースに対するユーザーの権限情報を用いて、トークンに紐付けられたユーザーの権限を絞り込む。絞り込むことで得られた権限を、本実施形態および他の実施形態では他の権限と区別するためにアクセス権限と呼ぶこともある。受け取った権限情報は、1つの権限を示す情報でもよく、また複数の権限のリストを示す情報であってもよい。また空の権限リストや、リスト自体が存在しないことを意味するnull値であってもよい。受け取ったのがnull値の場合、空集合を受け取ったとして扱い、ユーザーの権限と空集合の積集合を取り、絞り込み結果を「権限なし」としてもよい。逆にnull値を受け取った場合は、トークンに紐付けられたユーザーの権限をそのまま利用することとしてもよい。その他の場合は、アクセストークンとともに受け取った権限情報とユーザーの権限との積集合を取ることで権限の絞り込みを行う。たとえばUser Xが持つ権限がMFP-ReadWriteおよびMFP-Readで、ステップS601で受け取った権限情報がMFP-ReadWriteであれば、絞り込んだ結果の権限はその共通部分であるMFP-ReadWriteとなる。なお、絞り込みとは、権限検証モジュール303が管理する特定のユーザーに対して与えられた権限の中から、リソースアクセス処理モジュール351が指定してきたその特定のユーザーが今回アクセスするリソースに対する権限と一致する権限を確認する処理と言える。権限検証モジュール303が管理する特定のユーザーの権限が削除されたわけではないことに留意されたい。
ステップS609で権限検証モジュール303は、ステップS608で絞り込んだ結果の権限、即ち確認の結果今回アクセスするリソースに対する権限と一致した権限検証モジュール303が管理する特定のユーザーに対して与えられた権限が、ステップS605で取得したスコープで要求される権限を満たすか判断する。要求されるすべての権限を持つと判断された場合はステップS610に遷移し、一部でも欠けていると判断されていた場合はステップS650に遷移する。たとえばステップS609では、スコープで要求される権限がMFP-ReadWriteで、絞り込んだ結果の権限がMFP-ReadWriteとすると、権限を満たすと判断される。このように絞り込みにより得られた、リソースに対するユーザーの権限が、スコープで要求される権限を包含する場合に権限を満たすと判定できる。ここで権限と権限との間の包含関係は、たとえばスコープで要求される権限がMFP-Readで、絞り込んだ結果の権限がMFP-ReadWriteであるような場合にも成立するとしてもよい。この場合には特定のリソースに対してMFP-ReadWriteの権限があればMFP-Readの権限でできることを全て行い得るので、MFP-ReadWriteの権限はMFP-Readの権限を包含するということができる。このように権限としては異なるものであっても、包含関係は成立し得る場合があり得る。
ステップS610で権限検証モジュール303は、ユーザーが、要求された権限を持つことを意味する判定結果をリソースサーバー152に返し、フローを終了する。
ステップS650で権限検証モジュール303は、ユーザーが、要求された権限を持たないことを意味する判定結果をリソースサーバー152に返し、フローを終了する。
本実施の形態によれば、権限検証は認証・認可サーバー151が、リソース管理はリソースサーバー152が行う場合において、ユーザーがそれぞれのリソースに対してどのような権限で操作を行ってよいか制御できるようになる。またその際に、リソース別のユーザーの権限について認証・認可サーバー151で管理する必要がなくなる。
[第2実施形態]
次に、本発明を実施するための第2の形態について図面を用いて説明する。なお第1の実施の形態と共通の部分については説明を省略し、以下では差異部分のみ説明する。本実施の第1の形態でユーザーがリソースを操作できるためには、リソースサーバー152に対し、表3に示すようなリソース別ユーザー権限テーブルを設定する必要がある。さらに認証・認可サーバー151に対し、表5に示すようなユーザー権限テーブルの設定も必要である。このように2つのテーブルで権限設定が必要になるが、ユーザーが1度操作することで両方のテーブルに設定が反映されるのが好ましい。本実施の第2の形態は、前述の課題を鑑みて為されたものである。
<リソースサーバーのモジュール構成>
図8は本実施の第2の形態に係る、リソースサーバー152のモジュール構成を示す図である。ここでリソースサーバー152は、図3(B)の構成に加え、リソース別権限設定モジュール361を持つ。リソース別権限設定モジュール361はユーザー端末191の要求に応じて、表3で管理されるリソース別ユーザー権限を更新すると共に、認証・認可サーバー151に対して権限設定を指示する。これにより、リソース別のユーザーの権限を設定し、あるいは解除することができる。
<権限付与処理>
図9は本実施の第2の形態に係る、リソースサーバー152におけるユーザーに対する権限付与フローおよび権限解除フローである。図9(A)は本実施の第2の形態に係る、リソースサーバー152におけるユーザーに対する権限付与フローである。本フローはリソースサーバー152が、ユーザー端末191から権限付与要求を受信することで開始される。本実施形態では、リソース別のユーザー権限は、図9(A)の手順により表3のリソース別ユーザー権限テーブルに定義される。
ステップS901でリソースサーバー152は、リソース別の権限付与要求を受け付ける。ここで権限付与要求には、権限付与する対象ユーザー、対象リソース、および付与する権限の情報が含まれる。
ステップS902でリソース別権限設定モジュール361は、ステップS901で受け付けた権限付与要求に該当する権限が設定済みか確認する。権限が設定済みであればフローを終了し、権限が未設定であればステップS903に遷移する。権限が設定済みとは、たとえば権限付与要求と共に受け付けた対象ユーザー、対象リソースおよび権限情報に該当する項目が、リソース別ユーザー権限テーブルに登録済みであることである。
ステップS903でリソース別権限設定モジュール361は、ステップS901の権限付与要求で指定されたユーザーの、指定されたリソースに対し、指定された権限を、表3に示すようなリソース別ユーザー権限テーブルで記憶する。ここでたとえば、Area-Bに対するUser Yの権限は、MFP-ReadWriteと記憶されている。
ステップS904でリソース別権限設定モジュール361は、ステップS903で記憶したユーザーの権限の付与数をカウントアップして記憶する。付与数は表6に示すような権限付与カウントテーブルで記憶する。たとえばここで、User YにはMFP-ReadWriteが2つのリソースに対して付与されていることが記憶されている。なお表6の権限付与カウントテーブルは初期状態ではその内容は空であり、新たな登録に応じてユーザーIDおよび対応する権限を追加し、付与カウントとして1を登録する。その後は、付与カウントに、付与した権限の数に応じて1ずつ加算する。
Figure 0006806543
ステップS905でリソース別権限設定モジュール361は、認証・認可サーバー151に、ステップS901で指定された対象ユーザーに、指定された権限を付与するよう指示し、フローを終了する。またこの権限付与指示に対応し、認証・認可サーバー151では、指示された権限を記憶する。具体的には、認証・認可サーバー151は、例えば表5で示されるユーザー権限テーブルに、該当するユーザーIDおよび権限情報を追加的に登録する。
<権限解除処理>
図9(B)は本実施の第2の形態に係る、リソースサーバー152におけるユーザーに対する権限の解除フローである。本フローはリソースサーバー152が、ユーザー端末191から権限解除要求を受信することで開始される。
ステップS911でリソースサーバー152は、リソース別の権限解除要求を受け付ける。ここで権限解除要求には、権限解除する対象ユーザー、対象リソース、および解除する権限の情報が含まれる。
ステップS912でリソース別権限設定モジュール361は、ステップS911で受け付けた権限解除要求に該当する権限が設定済みか確認する。権限が未設定であればフローを終了し、権限が設定済みであればステップS913に遷移する。
ステップS913でリソース別権限設定モジュール361は、ステップS911の権限解除要求で指定されたユーザーの、指定されたリソースに対し、指定された権限を持つという情報を、表3に示すようなリソース別ユーザー権限テーブルから削除する。
ステップS914でリソース別権限設定モジュール361は、ステップS913で削除したユーザーの権限の付与数を、表6の権限付与カウントテーブルでカウントダウンして記憶する。
ステップS915でリソース別権限設定モジュール361は、ステップS914の付与数カウントダウンの結果、ステップS911で指定されたユーザーの、指定された権限に関するカウントがゼロになったか確認する。たとえばステップS911で指定されたユーザーおよび権限がUser XとMFP-ReadWriteだったとすると、これはステップS914のカウントダウンによりカウントがゼロになったと判断される。カウントがゼロになった場合はステップS916に遷移し、ゼロになっていなければフローを終了する。
ステップS916でリソース別権限設定モジュール361は、認証・認可サーバー151に、ステップS911で指定された対象ユーザーの、指定された権限を解除するよう指示し、フローを終了する。またこの権限解除指示に対応し、認証・認可サーバー151では、指示された権限を解除する。具体的には、認証・認可サーバー151では、例えば表5で示されるユーザー権限テーブルから、該当するユーザーIDおよび権限情報を削除する。
以上説明したように本実施の第2の形態によれば、第1の実施形態におけるリソース別のユーザー権限を、リソースサーバー152により保守管理できるという利点に加えて、認証・認可サーバー151とリソースサーバー152のように異なるサーバーで管理される2つのテーブルに対する権限設定の利便性が向上する。具体的にはユーザーが1度操作することで、両方のテーブルに設定が反映されるようになる。
[第3実施形態]
次に、本発明を実施するための第3の形態について図面を用いて説明する。なお第1の実施の形態および第2の実施の形態と共通の部分については説明を省略し、以下では差異部分のみ説明する。第3の実施形態は、第1の実施形のみ実施したシステム、もしくは第1の実施形と第2の実施形態の両方を実施したシステムにて実施される。昨今トークンとして、トークンID以外にも他に属性情報を持てるJSON Web Token(ジェイソンウエブトークン、以下、JWT)と呼ばれるトークンを用いる仕組みが検討されている。以下では、トークンとしてJWTを用い、主にリソースサーバー152側で処理を行うことで、認証・認可サーバー151の処理を低減する例を説明する。
<認証・認可サーバーおよびリソースサーバーのモジュール構成>
図10は本実施の第3の形態に係る、認証・認可サーバー151およびリソースサーバー152のモジュール構成を示す図である。ここで認証・認可サーバー151は、図3(A)の構成に加え、第2の権限検証モジュール311を持つ。またリソースサーバー152は、図3(B)の構成に加え、第2のリソースアクセス処理モジュール371および第2の権限検証依頼モジュール372を持つ。
本実施の第3の形態においては、ユーザー端末191(あるいはアプリケーションサーバー153)がJWTを用いて、リソースサーバー152に対してリソースアクセスを要求する。リソースアクセス要求を受信したリソースサーバー152の第2のリソースアクセス処理モジュール371は、リソース別ユーザー権限記憶モジュール352で記憶する権限に基づく権限の絞り込みを行う。第2の権限検証依頼モジュール372は、第2のリソースアクセス処理モジュール371が絞り込んだ権限に基づき、認証・認可サーバー151の第2の権限検証モジュール311に対して権限検証を依頼する。第2の権限検証モジュール311は絞り込みの済んだ権限情報を元に権限検証を行う。なお本実施の第3の形態においては、JWTは認証・認可サーバー151の認可モジュール302が発行するものとする。本例では特にJWTをアクセストークンとして利用する場合を説明する。なお認証・認可サーバー151はアクセストークンとJWTの両方を、トークンの要求に応じて発行してよい。この場合には例えば要求元が明示的にいずれかを示せばよい。あるいは、認証・認可サーバー151はいずれか一方のみを発行してもよい。後者の場合であっても、例えばアクセストークンを発行するサーバーとJWTを発行するサーバーとが混在していたり、いずれか一方から他方への移行の過渡期であったりすれば、両方のトークンが混在することもあり得る。
<リソースアクセスの処理>
図11は本実施の第3の形態に係る、リソースサーバー152におけるリソースアクセスの処理フローである。本フローはリソースサーバー152が、ユーザー端末191あるいはアプリケーションサーバー153から、JWTを用いたリソースアクセス要求を受信することで開始される。
ステップS3501でリソースサーバー152の第2のリソースアクセス処理モジュール371は、ユーザー端末191あるいはアプリケーションサーバー153からのリソースアクセス要求を受け取る。ここでリソースアクセス要求には、JWTと、アクセス対象リソースの指示と、リソースアクセスの操作内容を含む。なおここで受け取るJWTは、表7に示されるような、電子署名やユーザーID、ユーザーの権限を含むとする。
Figure 0006806543
ステップS3502で第2のリソースアクセス処理モジュール371は、ステップS3501で受け取ったJWTを、トークンに含まれる電子署名を用いて検証する。ここで署名に問題がなければステップS3503に遷移し、署名が不正と判断された場合はステップS3550に遷移する。
ステップS3503で第2のリソースアクセス処理モジュール371は、ステップS3501で指定された操作を実行するのに必要なスコープを、表2に示されるような操作別要求スコープテーブルを用いて解決する。
ステップS3504で第2のリソースアクセス処理モジュール371は、ステップS3501で受け取ったJWTからユーザーIDを取り出す。
ステップS3505で第2のリソースアクセス処理モジュール371は、ステップS3501で指定されたリソースにおいて、ステップS3504でJWTから取り出したユーザーが、どの権限で操作してよいか設定されている権限情報を取得する。このリソース別のユーザー権限は、リソース別ユーザー権限記憶モジュール352に問い合わせて、例えば表3のリソース別ユーザー権限テーブルから取得する。
ステップS3506で第2のリソースアクセス処理モジュール371は、ステップS3501で受け取ったJWTに含まれるユーザーの権限を、ステップS3505で取得した権限で絞り込む。絞り込みは、たとえば権限の共通部分をとることで行われる。
ステップS3507でリソースサーバー152の第2の権限検証依頼モジュール372は、認証・認可サーバー151に対し、権限検証を依頼する。ここで権限検証依頼には、ステップS3501で取得したトークンと、ステップS3503で解決したスコープと、ステップS3506で絞り込んだ権限情報を含む。認証・認可サーバー151による権限検証処理の手順は、図12を参照して後述する。
ステップS3508で第2のリソースアクセス処理モジュール371は、ステップS3507の権限検証の結果、権限ありと判断されたか確認する。権限ありと判断された場合はステップS3509に遷移し、権限なしと判断された場合はステップS3550に遷移する。
ステップS3509で第2のリソースアクセス処理モジュール371は、ステップS3501で受け取ったリソースアクセス要求を処理し、ユーザー端末191に結果を返してフローを終了する。
ステップS3550で第2のリソースアクセス処理モジュール371は、ステップS3501で受け取ったリソースアクセス要求を処理できない旨を、ユーザー端末191に応答として返してフローを終了する。
<リソースアクセスの権限検証処理>
図12は本実施の第3の形態に係る、認証・認可サーバー151における、JWTによるリソースアクセスの権限検証フローである。本フローは認証・認可サーバー151の第2の権限検証モジュール311が、リソースサーバー152の第2の権限検証依頼モジュール372から権限検証依頼を受信することで開始される。なおトークンが認証トークンもしくはアクセストークンの場合は図6のフローで処理されるものとして、ここではトークンがJWTの場合についてのみ説明する。
ステップS3601で第2の権限検証モジュール311は、リソースサーバー152の第2の権限検証依頼モジュール372から権限検証依頼を受信する。ここで権限検証依頼にはリソースサーバー152の第2のリソースアクセス処理モジュール371がユーザー端末191から受信したJWTを含む。また前記権限検証依頼は、リソースサーバー152の第2のリソースアクセス処理モジュール371がユーザー端末191から要求されたリソースアクセスに必要なスコープも含む。さらに前記権限検証依頼は、リソースサーバー151の第2のリソースアクセス処理モジュール371が、JWTに記載された権限を、リソース別ユーザー権限記憶モジュール352で記憶した権限で絞り込んだ権限情報も含む。
ステップS3602で第2の権限検証モジュール311は、表8に示されるような第2の発行済みトークンテーブルに問い合わせ、ステップS3601で受け取ったJWTに紐付くスコープを取得する。ここでステップS3601で受け取ったJWTの識別子がJWT0123456789であれば、取得されるスコープはscope.MFP-ReadWrite, scope.MFP-Readとなる。なお第2の発行済みトークンテーブルは、表1に示した発行済みトークンテーブルに代えて本実施形態で用いられる。表8は追加的に用いる場合の例である。この場合には、図4(B)のステップS457において、要求元の指定に応じてアクセストーンまたはJWTを選択的に発行するようにしても良い。
Figure 0006806543
ステップS3603で第2の権限検証モジュール311は、ステップS3602で取得したJWTに紐付くスコープが、ステップS3601で受け取ったスコープをすべて含むか判断する。スコープをすべて含むと判断された場合はステップS3604に遷移し、1つでも含まれないものがあると判断された場合はステップS3650に遷移する。
ステップS3604で第2の権限検証モジュール311は、表4で示されるようなスコープテーブルに問い合わせ、ステップS3601で受け取ったスコープで要求されるユーザーの権限を取得する。ここでリソース利用に必要なスコープがscope.MFP-ReadWriteだったとする。この場合、要求されるユーザーの権限はMFP-ReadWriteであると判断される。
ステップS3605で第2の権限検証モジュール311は、ステップS601で受け取った絞り込み済みの権限情報が、ステップS3604で取得した必要な権限をすべて含むか判断する。
ステップS3606で第2の権限検証モジュール311は、ステップS3605の判断の結果を確認する。要求されるすべての権限を持つと判断されていた場合はステップS3607に遷移し、一部でも欠けていると判断されていた場合はステップS3650に遷移する。
ステップS3607で第2の権限検証モジュール311は、ユーザーが、要求された権限を持つことを意味する結果をリソースサーバー152に返し、フローを終了する。
ステップS3650で第2の権限検証モジュール311は、ユーザーが、要求された権限を持たないことを意味する結果をリソースサーバー152に返し、フローを終了する。
本実施の第3の形態によれば、トークンとしてJWTを用い、主にリソースサーバー152側で処理を行うことで、認証・認可サーバー151の処理を低減しつつ、リソース別の権限制御を実現できる。特にリソースサーバー152において権限の絞り込み処理を実行し、認証・認可サーバー151では絞り込み済みの権限がスコープで要求された権限を満たすかを判定する。このため、認証・認可サーバー151はJWTに対応していれば、その権限検証手順を大幅に変更することなく、リソースサーバー152による処理によってリソース別のユーザー権限の付与を実現することができる。
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
151 認証・認可サーバー、152 リソースサーバー、303 権限検証モジュール、351 リソースアクセス処理モジュール、352 リソース別ユーザー権限記憶モジュール

Claims (17)

  1. リソースに対するアクセス権限を検証する権限検証システムであって、
    リソースごとに定めたリソース別ユーザー権限を管理するリソース別ユーザー権限管理手段と、
    ユーザー権限を管理するユーザー権限管理手段と、
    指定されたリソースに対するアクセス要求に応じて、前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限に基づいて、前記指定されたリソースに対して有する権限を特定し、前記ユーザー権限管理手段で管理された前記ユーザー権限に基づいて、前記アクセス要求の送信元が有するユーザー権限を特定する特定手段と、
    前記特定手段で特定された前記指定されたリソースに対して有する権限で、特定された前記ユーザー権限を絞り込んでアクセス権限を決定する絞り込み手段と、
    前記絞り込み手段により絞り込まれた前記アクセス権限で、前記アクセス要求に応じたリソースに対するアクセスが許可されるか判定する検証手段と、
    前記検証手段により前記アクセスが許可されると判定された場合には、前記送信元に、前記リソースに対するアクセスを許す手段と
    を有することを特徴とする権限検証システム。
  2. 前記アクセス要求の送信元にユーザー権限を委譲して、委譲元のユーザーおよび委譲した権限を示すアクセストークンまたはジェイソンウエブトークンを発行する手段をさらに有し、
    前記アクセス要求の送信元が有するユーザー権限は、前記アクセストークンまたは前記ジェイソンウエブトークンにより示される、委譲された前記ユーザー権限であり、
    前記特定手段により特定される、前記指定されたリソースに対して有する権限は、前記ユーザー権限の委譲元のユーザーに関連付けられていることを特徴とする請求項1に記載の権限検証システム。
  3. 前記絞り込み手段は、前記リソースに対して有する権限と、前記アクセス要求の送信元が有するユーザー権限とに共通する権限を、前記アクセス権限とすることを特徴とする請求項1または請求項2に記載の権限検証システム。
  4. 前記絞り込み手段は、前記リソースに対して有する権限が空の場合には、前記アクセス権限を付与しないことを特徴とする請求項1または請求項2に記載の権限検証システム。
  5. 前記絞り込み手段は、前記リソースに対して有する権限が空の場合には、前記アクセス要求の送信元が有するユーザー権限を前記アクセス権限とすることを特徴とする請求項1または請求項2に記載の権限検証システム。
  6. 前記リソース別ユーザー権限に対する操作に応じて、前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限に、指定されたリソース別ユーザー権限を追加する手段と、
    前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限から、指定されたリソース別ユーザー権限を削除する手段とをさらに有することを特徴とする請求項1乃至5のいずれか一項に記載の権限検証システム。
  7. 前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限から、特定のユーザーのリソース別ユーザー権限がすべて削除された場合には、前記ユーザー権限管理手段で管理された前記ユーザー権限から、前記特定のユーザーのユーザー権限を削除することを特徴とする請求項6に記載の権限検証システム。
  8. 前記権限検証システムは、前記リソースに対するアクセス権限を検証する認証サーバーと、要求に応じて前記リソースに対するアクセスを提供するリソースサーバーとを含み、
    前記ユーザー権限管理手段は前記認証サーバーが有し、
    前記リソース別ユーザー権限管理手段は前記リソースサーバーが有することを特徴とする請求項1乃至請求項7のいずれか一項に記載の権限検証システム。
  9. 前記絞り込み手段は前記認証サーバーが有することを特徴とする請求項8に記載の権限検証システム。
  10. 前記絞り込み手段は前記リソースサーバーが有することを特徴とする請求項8に記載の権限検証システム。
  11. リソースに対するアクセスを提供するリソースサーバーであって、
    リソースごとのリソース別ユーザー権限を管理するリソース別ユーザー権限管理手段と、
    指定されたリソースに対するアクセス要求に応じて、前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限に基づいて、前記指定されたリソースに対して有する権限を特定する特定手段と、
    前記特定手段により特定した前記指定されたリソースに対して有する権限と、認証サーバーが有するユーザーごとのユーザー権限とに基づいたアクセス権限で、前記アクセス要求に応じたリソースに対するアクセスが許可されるかの判定を認証サーバーに要求する手段と、
    前記認証サーバーからの応答に基づいて前記アクセスが許可されると判定された場合には、前記アクセス要求の送信元に、前記リソースに対するアクセスを許す手段と
    を有することを特徴とするリソースサーバー。
  12. 前記リソースに対するアクセス要求とともに、前記アクセス要求の要求元に委譲されたユーザー権限を示すトークンを受信し、
    前記特定手段により特定した前記指定されたリソースに対して有する権限で、前記トークンに示されたユーザー権限を絞り込んで前記アクセス権限を決定する絞り込み手段をさらに有することを特徴とする請求項11に記載のリソースサーバー。
  13. 前記特定手段により特定した前記指定されたリソースに対して有する権限で、前記アクセス要求の送信元が有するユーザー権限を絞り込んでアクセス権限を決定する絞り込み手段をさらに有することを特徴とする請求項11に記載のリソースサーバー。
  14. リソースに対するアクセス権限を検証する認証サーバーであって、
    ユーザーごとのユーザー権限を管理するユーザー権限管理手段と、
    リソースに対するアクセス権限の判定の要求に応じて、該要求と共に受信したリソース別ユーザー権限と、前記ユーザー権限管理手段により管理された前記ユーザー権限とに基づいて、リソースに対するアクセスが許可されるか判定する検証手段と、
    前記検証手段による判定結果を前記要求の要求元に応答する手段と
    を有することを特徴とする認証サーバー。
  15. リソースごとに定めたリソース別ユーザー権限を管理するリソース別ユーザー権限管理手段と、ユーザー権限を管理するユーザー権限管理手段とを有する権限検証システムにおいて、リソースに対するアクセス権限を検証するための権限検証方法であって、
    指定されたリソースに対するアクセス要求に応じて、前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限に基づいて、前記指定されたリソースに対して有する権限を特定し、
    前記ユーザー権限管理手段で管理された前記ユーザー権限に基づいて、前記アクセス要求の送信元が有するユーザー権限を特定し、
    特定された前記指定されたリソースに対して有する権限で、特定された前記ユーザー権限を絞り込んでアクセス権限を決定し、
    前記アクセス権限で、前記アクセス要求に応じたリソースに対するアクセスが許可されるか判定し、
    前記アクセスが許可されると判定された場合には、前記送信元に、前記リソースに対するアクセスを許すことを特徴とする権限検証方法。
  16. リソースに対するアクセスを提供するリソースサーバーとしてコンピュータを機能させるためのプログラムであって、前記プログラムは、
    リソースごとのリソース別ユーザー権限を管理するリソース別ユーザー権限管理手段と、
    指定されたリソースに対するアクセス要求に応じて、前記リソース別ユーザー権限管理手段で管理された前記リソース別ユーザー権限に基づいて、前記指定されたリソースに対して有する権限を特定する特定手段と、
    前記特定手段により特定した前記指定されたリソースに対して有する権限と、認証サーバーが有するユーザーごとのユーザー権限とに基づいたアクセス権限で、前記アクセス要求に応じたリソースに対するアクセスが許可されるかの判定を認証サーバーに要求する手段と、
    前記認証サーバーからの応答に基づいて前記アクセスが許可されると判定された場合には、前記リソースに対してアクセスを許す手段と
    して前記コンピュータを機能させることを特徴とするプログラム。
  17. リソースに対するアクセス権限を検証する認証サーバーとしてコンピュータを機能させるためのプログラムであって、前記プログラムは、
    ユーザーごとのユーザー権限を管理するユーザー権限管理手段と、
    リソースに対するアクセス権限の判定の要求に応じて、該要求と共に受信したリソース別ユーザー権限と、前記ユーザー権限管理手段により管理された前記ユーザー権限とに基づいて、リソースに対するアクセスが許可されるか判定する検証手段と、
    前記検証手段による判定結果を前記要求の要求元に応答する手段と
    して前記コンピュータを機能させることを特徴とするプログラム。
JP2016229190A 2016-11-25 2016-11-25 権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法 Active JP6806543B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016229190A JP6806543B2 (ja) 2016-11-25 2016-11-25 権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法
US15/814,538 US10574645B2 (en) 2016-11-25 2017-11-16 Authority verification system, authority verification method, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016229190A JP6806543B2 (ja) 2016-11-25 2016-11-25 権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法

Publications (2)

Publication Number Publication Date
JP2018085049A JP2018085049A (ja) 2018-05-31
JP6806543B2 true JP6806543B2 (ja) 2021-01-06

Family

ID=62190618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016229190A Active JP6806543B2 (ja) 2016-11-25 2016-11-25 権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法

Country Status (2)

Country Link
US (1) US10574645B2 (ja)
JP (1) JP6806543B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311716B (zh) * 2019-07-24 2023-04-21 顺丰科技有限公司 一种基于openstack的数据访问控制方法、装置及服务器
US11349660B2 (en) * 2019-09-19 2022-05-31 Bose Corporation Secure self-identification of a device
CN110807185A (zh) * 2019-11-01 2020-02-18 北京金山云网络技术有限公司 系统访问方法、装置及服务器
CN113127141B (zh) * 2019-12-31 2024-03-15 重庆小雨点小额贷款有限公司 一种容器系统管理方法、装置、终端设备及存储介质
CN111488594B (zh) * 2020-03-03 2023-11-03 杭州未名信科科技有限公司 一种基于云服务器的权限检查方法、装置、存储介质及终端
US11468525B2 (en) 2020-06-16 2022-10-11 Bank Of America Corporation Coordination platform for generating and managing authority tokens
CN112511569B (zh) * 2021-02-07 2021-05-11 杭州筋斗腾云科技有限公司 网络资源访问请求的处理方法、系统及计算机设备
US20230015789A1 (en) * 2021-07-08 2023-01-19 Vmware, Inc. Aggregation of user authorizations from different providers in a hybrid cloud environment
CN114070583B (zh) * 2021-10-12 2023-10-20 鸬鹚科技(深圳)有限公司 信息访问控制方法、装置、计算机设备及介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2315149B1 (en) * 2009-10-26 2019-11-20 Alcatel Lucent System and method for accessing private digital content
US8997196B2 (en) * 2010-06-14 2015-03-31 Microsoft Corporation Flexible end-point compliance and strong authentication for distributed hybrid enterprises
JP2011238258A (ja) 2011-06-22 2011-11-24 Fujitsu Ltd 制御プログラムおよび制御方法
US9323916B1 (en) * 2013-02-14 2016-04-26 Google Inc. Secure authorization for accessing content on a shareable device
US9742757B2 (en) * 2013-11-27 2017-08-22 International Business Machines Corporation Identifying and destroying potentially misappropriated access tokens
JP6265733B2 (ja) * 2013-12-25 2018-01-24 キヤノン株式会社 権限管理サーバー及び権限管理方法
US9386007B2 (en) * 2013-12-27 2016-07-05 Sap Se Multi-domain applications with authorization and authentication in cloud environment
JP6334920B2 (ja) * 2014-01-07 2018-05-30 キヤノン株式会社 権限管理サーバー及び権限管理方法
EP3100195B1 (en) * 2014-01-31 2021-05-19 British Telecommunications public limited company Access control system
US9219611B1 (en) * 2014-02-20 2015-12-22 Symantec Corporation Systems and methods for automating cloud-based code-signing services
US10075427B2 (en) * 2014-03-31 2018-09-11 Lenovo (Singapore) Pte. Ltd. Resetting authentication tokens based on an implicit credential in response to an authentication request missing an authentication token
TWI522960B (zh) * 2014-05-26 2016-02-21 三竹資訊股份有限公司 具強制性回覆之行動問卷系統與方法
US10129031B2 (en) * 2014-10-31 2018-11-13 Convida Wireless, Llc End-to-end service layer authentication
US9300660B1 (en) * 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
JP6675163B2 (ja) * 2015-07-24 2020-04-01 キヤノン株式会社 権限委譲システム、認可サーバの制御方法、認可サーバおよびプログラム
US10284532B2 (en) * 2015-07-31 2019-05-07 Blackberry Limited Managing access to resources
US20180295126A1 (en) * 2015-09-22 2018-10-11 Conjur, Inc. Dynamic computing resource access authorization
US10257205B2 (en) * 2015-10-22 2019-04-09 Oracle International Corporation Techniques for authentication level step-down
US10454936B2 (en) * 2015-10-23 2019-10-22 Oracle International Corporation Access manager session management strategy
US9917821B2 (en) * 2015-12-29 2018-03-13 Itron, Inc. Hardware cryptographic authentication

Also Published As

Publication number Publication date
US20180152441A1 (en) 2018-05-31
JP2018085049A (ja) 2018-05-31
US10574645B2 (en) 2020-02-25

Similar Documents

Publication Publication Date Title
JP6806543B2 (ja) 権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法
CN110138718B (zh) 信息处理系统及其控制方法
US9071601B2 (en) Authority delegate system, server system in authority delegate system, and control method for controlling authority delegate system
JP6033990B2 (ja) 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス
JP6066647B2 (ja) デバイス装置、その制御方法、およびそのプログラム
EP1514173B1 (en) Managing secure resources in web resources that are accessed by multiple portals
JP6198477B2 (ja) 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
EP2540051B1 (en) Method for managing access to protected resources and delegating authority in a computer network
JP6245949B2 (ja) 認可サーバーシステム、その制御方法、およびそのプログラム。
JP6124687B2 (ja) 画像形成装置、サーバー装置、情報処理方法及びプログラム
EP3462701B1 (en) Device, control method of the same, and program
JP6061633B2 (ja) デバイス装置、制御方法、およびそのプログラム。
JP2019096076A (ja) アクセス制御システム、その制御方法およびプログラム
JP6025480B2 (ja) 認可サーバーシステム、権限移譲システム、その制御方法、およびプログラム
JP7096736B2 (ja) システム、及びデータ処理方法
US7908642B2 (en) Policy store
JP2017004301A (ja) 認証サーバーシステム、方法、プログラムおよび記憶媒体
JP7170550B2 (ja) 管理装置およびその制御方法
US11582232B2 (en) Authority transfer system, server and method of controlling the server, and storage medium
US9077708B2 (en) Information processing system, control method for controlling the information processing system, and storage medium
US8219807B1 (en) Fine grained access control for linux services
JP6066586B2 (ja) 情報処理システム、その制御方法、およびそのプログラム。
JP5177505B2 (ja) シングルサインオンによるグループ内サービス認可方法と、その方法を用いたグループ内サービス提供システムと、それを構成する各サーバ
JP2017120502A (ja) クラウドサービスへのIoT機器の登録方法
JP7240280B2 (ja) ユーザ認証管理装置、それを備えた画像処理装置、ユーザ認証管理方法およびユーザ認証管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200825

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: 20201106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201204

R151 Written notification of patent or utility model registration

Ref document number: 6806543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151