JP2017004301A - 認証サーバーシステム、方法、プログラムおよび記憶媒体 - Google Patents

認証サーバーシステム、方法、プログラムおよび記憶媒体 Download PDF

Info

Publication number
JP2017004301A
JP2017004301A JP2015118353A JP2015118353A JP2017004301A JP 2017004301 A JP2017004301 A JP 2017004301A JP 2015118353 A JP2015118353 A JP 2015118353A JP 2015118353 A JP2015118353 A JP 2015118353A JP 2017004301 A JP2017004301 A JP 2017004301A
Authority
JP
Japan
Prior art keywords
token
authority
scope
client
verification
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.)
Pending
Application number
JP2015118353A
Other languages
English (en)
Inventor
存 田村
Tamotsu Tamura
存 田村
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 JP2015118353A priority Critical patent/JP2017004301A/ja
Priority to CN201610388353.2A priority patent/CN106254075B/zh
Priority to US15/175,988 priority patent/US10148638B2/en
Priority to KR1020160070716A priority patent/KR101983544B1/ko
Publication of JP2017004301A publication Critical patent/JP2017004301A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 RESTful MVCと呼ばれるアーキテクチャをOAuthによるシステム間連携だけでなく、ユーザー本人が画面操作するケースに対してもRESTを利用した場合、全てのREST APIが受け取ったトークンの種別を判断し、受け取ったトークンに対応する検証モジュールを呼び出す実装が必要となってしまう。
【解決手段】 認証トークンもしくはアクセストークンを区別なく受け付ける認証認可共通の権限検証モジュールを提供する。トークンのオーナーの権限検証を行うと共に、トークンにクライアントが紐付いている場合は追加でクライアントの権限検証も行う。
【選択図】 図8

Description

認証・認可における検証を行う認証サーバーシステム、方法、プログラムおよび記憶媒体に関する
クラウドが一般化するに伴い、複数のサービスを連携させる機会はますます増加している。サービスとは、インターネット等のネットワークを介して接続されたサーバーが提供する機能、換言すれば、ウェブアプリケーションのことを指す。サービスを連携させることでサービス提供者は、ユーザーに通常のサービスに付加価値を加えた新たなサービスを提供することができる。その一方で、サービスが連携することにより、いくつかの課題が生まれる。
すなわち、ユーザーが望んだ以上の情報がサービス間でやりとりされる虞があり、ユーザーデータや個人情報に関する情報の流出という課題がある。たとえばインターネット上には複数のサービスが存在し、様々なサービス間でサービス連携が実現される可能性があるが、ユーザーが認識したサービス以外がユーザーデータや個人情報を操作できてはいけない。またサービスの提供者からすると、サービス連携の仕組みは容易に実装できるものが好ましい。
このような状況において、OAuthと呼ばれる、認可の連携を実現させるための標準プロトコルが策定されている。OAuthによれば、たとえばある端末内のアプリケーションからクラウドサービスが管理するデータにアクセスする場合は、アプリケーションはユーザーの明示的な認可を得ることになっている。
ユーザーが認可すると、アプリケーションはアクセスを認められたことを証明するトークン(以下、アクセストークン)を受け取り、以降のアクセスはそのアクセストークンを用いて実現できる。以下では、アクセストークンの発行のための操作を認可操作と称する。たとえば特許文献1において、OAuthを利用したアクセストークンを発行する技術が開示されている。
特開2015−5202
OAuthによるシステム間連携ではRESTなどのwebサービスが採用される。また近年、RESTful MVCと呼ばれるアーキテクチャが浸透したことにより、OAuthによるシステム間連携だけでなく、ユーザー本人が画面操作するケースに対してもRESTで機能を実現できるようになった。
機能の実現方式がRESTに共通化された場合であっても、ユーザー本人が画面操作するケースでは認証トークンが、システム間連携ではアクセストークンがそれぞれ用いられる。しかし、これらのトークンの検証の仕方が異なるため、全てのREST APIが受け取ったトークンの種別を判断し、受け取ったトークンに対応する検証モジュールを呼び出す実装が必要となってしまう。
本発明は上述した課題を解決するため、トークンの種別に関わらず共通のモジュールでトークン検証を行う仕組みを提供することを目的とする。
本発明の一実施形に係る認証サーバーシステムは、端末および認可クライアントへ特定の機能を提供するサービスを備えた情報処理装置と通信可能な認証サーバーシステムであって、前記端末を操作するユーザーが正規のユーザーであるか否かを検証するための第1の種別のトークン、および前記サービスと連携する認可クライアントに移譲された権限で前記サービスを利用できるか否かを検証するための第2の種別のトークンを発行する手段と、前記発行手段により発行されたトークンの種別に依らず、前記情報処理装置から検証要求およびスコープとともに受信したトークンを基に検証のための確認を行い検証の結果を通知する検証手段とを有し、前記検証手段は、前記第1の種別のトークンを受信した場合は、トークンに関連付けられた権限の確認を行わず、前記第2の種別のトークンを受信した場合は、トークンに関連付けられた権限の確認を行い、かつ前記スコープがトークンに関連付けられた権限の範囲内であるか否かを確認することを特徴とする。
トークンの種別に関わらず共通のモジュールでトークン検証を行うことが可能になる。
ネットワーク構成を示す図である。 本発明の実施の形態に係るサーバーコンピューターの構成図である。 本実施の形態に係るモジュール構成図である。 本実施の形態に係るログインフローおよびアクセストークンの発行フローである。 本実施の形態に係る権限検証フローである。 本実施の形態に係る画面の表示例である。 本実施の第2の形態に係るモジュール構成図である。 本実施の第2の形態に係る権限検証の模式図である。
以下、本発明を実施するための形態について図面を用いて説明する。
本実施の形態に係る権限移譲システムは、図1に示すような構成のネットワーク上に実現され、互いに通信可能な構成である。100は、Wide Area Network(WAN100)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。101から103は各構成要素を接続するLocal Area Network(LAN101、LAN102、LAN103)である。
151はユーザーの認証およびアクセストークンの発行を行う認証・認可サーバー、152はリソースサーバーである。アクセストークンとは、あるアプリケーションがユーザーに、なんらかの操作を許可されたことを証明するものであり、ユーザーがアプリケーションに対して認可操作することで発行される。たとえばクラウドサービスが管理するデータにアクセスするためのアクセストークンを用いると、アプリケーションは、ユーザーに許可された範囲でデータにアクセスできるようになる状況を提供する。191はユーザーが操作するユーザー端末である。また171および172はユーザーから委譲された権限を用いてリソースサーバー152とシステム間連携を実施する認可クライアントである。
認証・認可サーバー151、リソースサーバー152はそれぞれWANネットワーク100およびLAN101を介して接続されている。また同様にユーザー端末191はWANネットワーク100およびLAN102を介して接続されている。認可クライアント171および172はWANネットワーク100およびLAN103を介して接続されている。なお認証・認可サーバー151、リソースサーバー152はそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また同一のPCまたはサーバーコンピューター上に構成されていてもよい。なお、図1では各サーバーは1台で示しているが、複数台から構成されるサーバー群であっても良い。例えば、認証・認可を行うサーバーが複数台で構成されたサーバー群であっても良いわけである。このように、本願発明を実施する上でサーバーの数が1台または複数台であることを問わないので、本実施例においてサーバーシステムと称した場合、どちらの形態も含むものとする。例えば、認証サーバーシステムであれば、1台または複数台で構成された認証サーバーと言うことになる。
図2は本実施の形態に係る、認証・認可サーバー151のサーバーコンピューターの構成を示す図である。またリソースサーバー152のサーバーコンピューターの構成やユーザー端末191、認可クライアント171および172の構成も同様である。尚、図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態のサーバーコンピューターおよびモバイル端末には一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、或いはハードディスク211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。尚、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211にインストールされたアプリケーションプログラムである。
図3は本実施の形態に係る、認証・認可サーバー151、リソースサーバー152、認可クライアント171のモジュール構成を示す図である。図3(A)は認証・認可サーバー151、図3(B)はリソースサーバー152、図3(C)は認可クライアント171のモジュール構成を、それぞれ示す。認証・認可サーバー151は認証モジュール301、認可モジュール302、認証認可共通権限検証モジュール303を持つ。また認証・認可サーバー151はユーザー管理モジュール304、クライアント管理モジュール305、スコープ管理モジュール306を持つ。リソースサーバー152はリソース管理モジュール351、トークン検証要求モジュール352を持つ。また認可クライアント171はアクセストークン要求モジュール371、リソースサーバーアクセスモジュール372を持つ。なお認可クライアント172は認可クライアント171と同様の構成を取れるものとする。何れもハードディスク(HD)211にインストールされたアプリケーションプログラムを構成するモジュールであり、CPU201により実行されることで各サーバーの機能を発揮する。
図4(A)は本実施の形態に係る、認証・認可サーバーにおけるログインフローである。本フローは認証・認可サーバー151がユーザー端末191からログイン要求を受信することで開始される。ステップS401で認証モジュール301は、ユーザー端末191に対し、図6(A)に示されるような認証画面1001を送信する。ステップS402で認証モジュール301は、認証画面1001で入力された認証情報を受け付ける。ステップS403で認証モジュール301は、ステップS602で受け付けた認証情報が妥当か判断する。ここで認証情報が妥当であり正規なユーザーであると判断された場合はステップS404に遷移する。また認証情報が妥当でないと判断された場合はステップS450に遷移する。
ステップS404で認証モジュール301は、ユーザーのログインを許可し、認証トークンを発行してフローを終了する。なおここ発行された認証トークンは、ユーザーと紐付けられ、表1に示されるような認証トークンテーブルで管理される。
Figure 2017004301

ステップS450で認証モジュール301は、ユーザーのログインを拒否し、フローを終了する。
図4(B)は本実施の形態に係る、認証・認可サーバー151における、アクセストークンの発行フローである。本フローは認証・認可サーバー151の認可モジュール302がユーザー端末191および認可クライアント171から、アクセストークンの要求を受信することで開始される。ステップS501で認可モジュール302は、ユーザー端末191および認可クライアント171からアクセストークンの要求を受け付ける。ここで受け付けたアクセストークンの要求は、ユーザーの情報およびクライアント識別子を含む。
ステップS502で認可モジュール302は、ユーザー端末191を操作しているユーザーがログイン済みか判断する。ここでユーザーがログイン済みと判断された場合はステップS505に遷移する。またログイン済みでないと判断された場合はステップS503に遷移する。ステップS503で認証モジュール301は、ユーザー端末191に対し、図6(A)に示されるような認証画面1001を送信する。なおログインフローの詳細は図4(A)で示したものと同様である。ステップS504で認証モジュール301は、ステップS503に対応してユーザーがログインしたか判断する。ここでユーザーがログインしたと判断されればステップS505に遷移する。またユーザーがログインしなかったと判断された場合はステップS550に遷移する。
ステップS505で認可モジュール302は、ユーザー端末191に対し、図6(B)に示すような認可確認画面1002を送信し、ユーザーの確認を求める。ステップS506で認可モジュール302は、ステップS505に対応してユーザーの認可を得られたか判断する。ここで認可を得られたと判断された場合はステップS507に遷移する。また認可を得られなかったと判断された場合はステップS550に遷移する。ユーザーが認可を行うために図6(B)にて許可を選択するための操作を認可操作と称し、ユーザーにより認可操作が行われたことでアクセストークンの発行が行われる。
ステップS507で認可モジュール302は、アクセストークンを発行し、ステップS501で受け付けたアクセストークンの要求に含まれるクライアント識別子とユーザー情報に紐付けて表2のアクセストークンテーブルで記憶する。またユーザー端末191を介して、発行したアクセストークンを認可クライアント171に返し、フローを終了する。
Figure 2017004301

ステップS550で認可モジュール302は、アクセストークンを発行できない旨をリソース管理モジュール351に通知し、フローを終了する。
図5(A)は本実施の形態に係る、認証・認可サーバー151における、認証トークンおよびアクセストークンの検証フローである。本フローは認証・認可サーバー151の認証認可共通権限検証モジュール303が、リソースサーバー152のトークン検証要求モジュール352から権限検証要求を受信することで開始される。ここで権限検証要求は、リソースサーバー152のリソース管理モジュール351が、ユーザー端末191もしくは認可クライアント171からリソース要求を受信したことに対応して実施される。
ステップS601で認証認可共通権限検証モジュール303は、リソースサーバー152のトークン検証要求モジュール352から権限検証要求を受信する。ここで権限検証要求にはリソースサーバー152のリソース管理モジュール351がユーザー端末191から受信した認証トークンを含む。もしくはリソースサーバー152のリソース管理モジュール351が認可クライアント171から受信したアクセストークンを含む。また前記権限検証要求は、リソースサーバー152のリソース管理モジュール351がユーザー端末191もしくは認可クライアント171から要求されたリソースの利用に必要なスコープリストも含む。即ち、認証認可共通権限検証モジュール303は、スコープに関する情報をトークンの種別に依らず常に受信することになる。詳細は後述するが、認証認可共通権限検証モジュール303は認証トークンをした場合、スコープに関する情報を受信したとしても検証のための確認にスコープに関する情報を利用することはない。
なおリソース管理モジュール351が受信したトークンが認証トークンだったかアクセストークンだったかに関わらず、リソースの利用に必要なスコープリストとしては、トークンのユーザーおよびクライアントのそれぞれに要求されるスコープを含む。このようにすることでリソースサーバー152は、リソース管理モジュール351が受信したトークンの種別に関わらず、同じスコープリストを認証・認可サーバー151に渡すことで権限検証を要求できる。
ステップS602で認証認可共通権限検証モジュール303は、ステップS601で受信した権限検証要求から、認証トークンもしくはアクセストークンと、前記リソースの利用に必要なスコープリストを取り出す。ステップS603で認証認可共通権限検証モジュール303は、ステップS602で取り出したトークンが認証トークンだったかアクセストークンだったか判断する。トークンが認証トークンだった場合はステップS606に遷移し、アクセストークンだった場合はステップS604に遷移する。
ステップS604で認証認可共通権限検証モジュール303は、認可モジュール302が管理する表2に示されるようなアクセストークンテーブルに問い合わせ、ステップS602で取り出したアクセストークンに紐付くスコープを取得する。ステップS605で認証認可共通権限検証モジュール303は、ステップS604で取得したアクセストークンに紐付くスコープが、ステップS602で取り出した前記リソースの利用に必要なスコープリストのすべてのスコープを含むか判断する。換言すると、スコープがアクセストークンから特定した与えられた権限の範囲内であるかを判断することになる。必要なスコープをすべて含むと判断された場合はステップS606に遷移し、必要なスコープの内で1つでも含まれないものがあると判断された場合はステップS650に遷移する。
ステップS606で認証認可共通権限検証モジュール303は、ステップS602で取り出したトークンにクライアントが紐付いているか判断する。なお表1にあるように、トークンが認証トークンだった場合はクライアントは紐付いていない。また表2にあるように、トークンがアクセストークンだった場合はトークンにクライアントが紐付いている。トークンにクライアントが紐付いていると判断された場合はステップS607に遷移し、紐付いていないと判断された場合はステップS609に遷移する。
ステップS607で認証認可共通権限検証モジュール303は、トークンに紐付けられたクライアントの権限の検証を行う。ステップS608で認証認可共通権限検証モジュール303は、ステップS607の権限検証の結果、トークンに紐付けられたクライアントが、リソースを利用するために必要な権限を持つと判断されたか確認する。クライアントが必要な権限を持つと判断された場合はステップS609に遷移し、クライアントが必要な権限を持たないと判断された場合はステップS650に遷移する。
ステップS609で認証認可共通権限検証モジュール303は、トークンに紐付けられたユーザーの権限の検証を行う。ステップS610で認証認可共通権限検証モジュール303は、ステップS609の権限検証の結果、トークンに紐付けられたユーザーが、リソースを利用するために必要な権限を持つと判断されたか確認する。ユーザーが必要な権限を持つと判断された場合はステップS611に遷移し、ユーザーが必要な権限を持たないと判断された場合はステップS650に遷移する。ステップS611で認証認可共通権限検証モジュール303は、権限検証の結果、ステップS601で認証認可共通権限検証モジュール303が受信したトークンは、リソースを利用する権限を持つと判断されたことをリソースサーバーに通知し、フローを終了する。ステップS650で認証認可共通権限検証モジュール303は、ステップS601で認証認可共通権限検証モジュール303が受信したトークンは、リソースを利用する権限を持たないと判断されたことをリソースサーバーに通知し、フローを終了する。
図5(B)は本実施の形態に係る、認証・認可サーバー151における、クライアントの権限検証フローである。本フローは図5(A)におけるステップS607の詳細フローである。ステップS701で認証認可共通権限検証モジュール303は、認可モジュール302が管理するアクセストークンテーブルに問い合わせ、アクセストークンに紐付くクライアントを取得する。たとえばここで、アクセストークンが表2に示されるAz99887766だったとすると、アクセストークンに紐付くクライアントはAppAm001であると判断される。
ステップS702で認証認可共通権限検証モジュール303は、クライアント管理モジュール305が管理するクライアント権限テーブルに問い合わせ、ステップS701で取得したクライアントの権限を取得する。表3はクライアント権限テーブルの例である。
Figure 2017004301

ここでクライアント識別子がAppAm001だった場合、クライアントはApp−A−Integrationの権限を持つと判断される。
ステップS703で認証認可共通権限検証モジュール303は、スコープ管理モジュール306が管理するスコープテーブルに問い合わせ、ステップS602で取り出したスコープリストの各スコープで要求されるクライアントの権限を取得する。表4はスコープリストテーブルの例である。
Figure 2017004301

ここでリソース利用に必要なスコープがowner.App−A−ReadWrite,client.App−A−Integrationだったとする。ここでクライアントに要求されるスコープはプレフィクスがclientであるclient.App−A−Integrationのため、要求されるクライアントの権限はApp−A−Integrationであると判断される。
ステップS704で認証認可共通権限検証モジュール303は、ステップS702で取得したクライアントの権限が、ステップS703で取得した要求されるクライアントの権限をすべて含むか判断する。要求される権限をすべて含むと判断された場合はステップS705に遷移する。また要求される権限の内、1つでも含まれないものがあると判断された場合はステップS750に遷移する。たとえばここで、アクセストークンが表2に示されるAz99887766で、リソース利用に必要なスコープがowner.App−A−ReadWrite,client.App−A−Integrationだったとする。この場合、クライアントが持つ権限はApp−A−Integrationであり、要求されるクライアントの権限もApp−A−Integrationとなる。そのためクライアントは要求された権限をすべて持つと判断される。
ステップS705で認証認可共通権限検証モジュール303は、クライアントが、要求された権限を持つと判断し、フローを終了する。ステップS750で認証認可共通権限検証モジュール303は、クライアントが、要求された権限を持たないと判断し、フローを終了する。
図5(C)は本実施の形態に係る、認証・認可サーバー151における、ユーザーの権限検証フローである。本フローは図5(A)におけるステップS609の詳細フローである。ステップS801で認証認可共通権限検証モジュール303は、ステップS602で取り出したトークンが認証トークンだったかアクセストークンだったか判断する。トークンが認証トークンだった場合はステップS803に遷移し、アクセストークンだった場合はステップS802に遷移する。
ステップS802で認証認可共通権限検証モジュール303は、認可モジュール302が管理するアクセストークンテーブルに問い合わせ、アクセストークンに紐付くユーザーを取得する。たとえばここで、アクセストークンが表2に示されるAz99887766だったとすると、アクセストークンに紐付くユーザーはUser Xであると判断される。
ステップS803で認証認可共通権限検証モジュール303は、認証モジュール301が管理する認証トークンテーブルに問い合わせ、認証トークンに紐付くユーザーを取得する。たとえばここで、認証トークンが表1に示されるAn0011223344だったとすると、アクセストークンに紐付くユーザーはUser Xであると判断される。
ステップS804で認証認可共通権限検証モジュール303は、ユーザー管理モジュール304が管理するユーザー権限テーブルに問い合わせ、ステップS802もしくはステップS803で取得したユーザーの権限を取得する。表5はユーザー権限テーブルの例である。
Figure 2017004301

ここでユーザーがUser Xだった場合、ユーザーはApp−A−ReadWriteおよびApp−B−Readの権限を持つと判断される。
ステップS805で認証認可共通権限検証モジュール303は、スコープ管理モジュール306が管理するスコープテーブルに問い合わせ、ステップS602で取り出したスコープリストの各スコープで要求されるユーザーの権限を取得する。
ここでリソース利用に必要なスコープがowner.App−A−ReadWrite,client.App−A−Integrationだったとする。ここでユーザーに要求されるスコープはプレフィクスがownerであるowner.App−A−ReadWriteのため、要求されるユーザーの権限はApp−A−ReadWriteであると判断される。
ステップS806で認証認可共通権限検証モジュール303は、ステップS804で取得したユーザーの権限が、ステップS805で取得した要求されるユーザーの権限をすべて含むか判断する。要求される権限をすべて含むと判断された場合はステップS807に遷移する。また要求される権限の内、1つでも含まれないものがあると判断された場合はステップS850に遷移する。たとえばここで、トークンが認証トークンであり、表1に示されるAn0011223344で、リソース利用に必要なスコープがowner.App−A−ReadWrite,client.App−A−Integrationだったとする。この場合、ユーザーが持つ権限はApp−A−ReadWriteであり、要求されるユーザーの権限もApp−A−ReadWriteとなる。そのためクライアントは要求された権限をすべて持つと判断される。
ステップS807で認証認可共通権限検証モジュール303は、ユーザーが、要求された権限を持つと判断し、フローを終了する。ステップS850で認証認可共通権限検証モジュール303は、ユーザーが、要求された権限を持たないと判断し、フローを終了する。
図6は本実施の形態に係る、画面の表示例である。図6(A)はユーザーがログインするときに操作する認証画面1001の例である。また図6(B)はユーザーがクライアントモジュールを認可しアクセストークンの発行を許可する認可確認画面1002の例である。
本実施の形態によれば、リソースサーバー152は、リソース管理モジュール351が受信したトークンの種別に関わらず、同じスコープリストを認証・認可サーバー151に渡すことで権限検証を要求できるようになる。トークンの種別に依存せずに共通の権限検証モジュールを呼び出せるようになるため、リソースサーバー152の開発効率が向上する。
次に、本発明を実施するための第2の形態について図面を用いて説明する。なお第1の実施の形態と共通の部分については説明を省略し、以下では差異部分のみ説明する。
本実施の第1の形態でリソースサーバー152は、トークン種別を意識せずに、認証・認可サーバー151に対してトークンの検証を要求できるようになった。しかしリソースサーバー152のあるリソースに関しては、認証トークンに対してはリソースの利用を許可するが、アクセストークンに対してはリソースの利用を許可しないことも考えられる。このようなケースでは、認証・認可サーバー151はトークンの種別によって権限検証の判断を変えつつ、リソースサーバー152はトークン種別を意識しないことが必要になる。
また当初はアクセストークンでの利用を禁止したリソースであっても、リソースサーバー152のバージョンアップ等によって、アクセストークンでの利用を許可するようになることも考えられる。前述のようなケースでは、アクセストークンによる当該リソースの利用を正式に公開する前に、特定の認可クライアント172のみに対して限定的に機能を公開してテストできることが求められる。本実施の第2の形態は、前述の課題をかんがみて為されたものである。
図7は本実施の第2の形態に係る、認証・認可サーバー151のモジュール構成を示す図である。図7(A)は認証・認可サーバー151、図7(B)はリソースサーバー152のモジュール構成を、それぞれ示す。認証・認可サーバー151は認証モジュール301、認可モジュール302、認証認可共通権限検証モジュール303を持つ。また認証・認可サーバー151はユーザー管理モジュール304、第2のクライアント管理モジュール320、第2のスコープ管理モジュール321を持つ。リソースサーバー152はリソース管理モジュール351、トークン検証要求モジュール352を持つ。またリソースサーバー152はリソース管理モジュール361、トークン検証要求モジュール362も持つ。
表6および表7はそれぞれ、本実施の第2の形態に係る、第2のクライアント権限テーブルおよび第2のスコープリストテーブルの例である。第2のクライアント権限テーブルおよび第2のスコープリストテーブルはそれぞれ、第2のクライアント管理モジュール320および第2のスコープ管理モジュール321に管理されている。
Figure 2017004301
Figure 2017004301

ここで図5(B)のクライアントの権限検証フローを例にとって説明を行う。ステップS704で認証認可共通権限検証モジュール303は、ステップS702で取得したクライアントの権限が、ステップS703で取得した要求されるクライアントの権限をすべて含むか判断する。たとえばここで、アクセストークンに紐付くクライアント識別子がAppAmDebugで、リソース利用に必要なスコープがowner.App−A−ReadWrite,client.notAllowedだったとする。この場合、クライアントが持つ権限にはclosedBeta−LimitedIntegrationが含まれ、要求されるクライアントの権限のclosedBeta−LimitedIntegrationを満たす。そのためクライアントは要求された権限をすべて持つと判断され、ステップS705に遷移する。
ステップS705で認証認可共通権限検証モジュール303は、クライアントが、要求された権限を持つと判断し、フローを終了する。なお、本実施の第2の形態におけるアクセストークンは、client.notAllowedのスコープと関連付けられて発行されるトークンとしているため、S605のステップからS606へ遷移することになる。このようにすることでスコープの確認は問題ないと判断されることにはなるが、上述した通りクライアントに権限がない以上、認可クライアント171によるサービスの利用は認可されない。
図8は本実施の第2の形態に係る、ユーザー操作および異なる認可クライアントからのリソース要求に対する、リソースサーバー152から認証・認可サーバー151への権限検証要求を模式的に表した図である。
ここで認可クライアント171は通常の認可クライアントを想定し、一般公開されているREST APIのみを利用可能とするためclosedBeta−LimitedIntegrationロールを持たないとしている。また認可クライアント172は、リソースサーバー152のREST APIをアクセストークン向けに公開する前のテストをする特殊な認可クライアントを想定している。そのため認可クライアント172は通常はアクセストークンでは利用できないREST APIも利用可能とするためclosedBeta−LimitedIntegrationロールを持つとしている。
またリソースサーバー152のREST API−1はリソース管理モジュール351およびトークン検証要求モジュール352に対応するREST APIである。REST API−1を利用する認可クライアントは、client.notAllowedスコープを要求されない。またリソースサーバー152のREST API−2は第2のリソース管理モジュール361および第2のトークン検証要求モジュール362に対応するREST APIである。REST API−2を利用する認可クライアントは、client.notAllowedスコープを要求される。
2001は認可クライアント171が、REST API−1を呼び出す際の処理の流れを表す。2001では認可クライアント171は、事前に取得したアクセストークンを用いてREST API−1を呼び出す。ここでREST API−1はclient.notAllowedを要求しないため、closedBeta−LimitedIntegrationロールを持たない認可クライアント171でも利用可能である。
2101は認可クライアント171が、REST API−2を呼び出す際の処理の流れを表す。2101では認可クライアント171は、事前に取得したアクセストークンを用いてREST API−2を呼び出す。ここでREST API−2はclient.notAllowedを要求するため、closedBeta−LimitedIntegrationロールを持たない認可クライアント171では利用できない。
2102はユーザー端末191が、REST API−2を呼び出す際の処理の流れを表す。2102ではユーザー端末191は、画面リポジトリから画面リソースを取得する。さらにユーザー端末191は、前記取得した画面リソースを介して、事前に取得した認証トークンを用いてREST API−2を呼び出す。ここでREST API−2はclient.notAllowedを要求する。ただし認証認可共通権限検証モジュール303による権限検証時、認証トークンの場合はクライアント権限検証が行われない。そのためユーザー端末191は、closedBeta−LimitedIntegrationロールの有無にかかわらずREST API−2を利用可能である。
2201は認可クライアント172が、REST API−2を呼び出す際の処理の流れを表す。2201では認可クライアント172は、事前に取得したアクセストークンを用いてREST API−2を呼び出す。ここでREST API−2はclient.notAllowedを要求するが、認可クライアント172はclosedBeta−LimitedIntegrationロールを持つため、REST API−2を利用可能である。
本実施の第2の形態によれば、システム間連携のようにユーザーが直接介在しないアクセストークンを用いたユースケースではリソースの利用を禁止できる。その場合でも、ユーザーが直接画面操作するような認証トークンを用いたユースケースではリソースの利用を許可するといった制御を実現できる。なおその際にリソースサーバー152はあらかじめ定められたスコープclient.notAllowedを指定して認証・認可サーバー151に対して権限検証を要求するだけでよく、リソースサーバー152がトークンの種別を意識する必要はない。そのためリソースサーバー152の開発を効率的に行える。
またリソースサーバー152のあるリソースの利用に認可クライアント171からは前述のリソースを禁止しつつ、さらにあらかじめ定めた認可クライアント172のみ、正式リリース前のリソースを利用できるよう制御ができるようになる。
なお認可クライアント172による十分なテストが実施された後には、リソースサーバー152は、前述のリソースを利用するためのスコープとしてclient.notAllowedを要求しないようバージョンアップすることが考えられる。そのようにすることで前述のリソースを認可クライアント171に対しても公開できるようになる。
〔その他の実施例〕
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
151 認証・認可サーバー
191 ユーザー端末
301 認証モジュール
302 認可モジュール
303 認証認可共通権限検証モジュール
304 ユーザー管理モジュール
305 クライアント管理モジュール
306 スコープ管理モジュール
351 リソース管理モジュール
352 トークン検証要求モジュール

Claims (10)

  1. 端末および認可クライアントへ特定の機能を提供するサービスを備えた情報処理装置と通信可能な認証サーバーシステムであって、
    前記端末を操作するユーザーが正規のユーザーであるか否かを検証するための第1の種別のトークン、および前記サービスと連携する認可クライアントに移譲された権限で前記サービスを利用できるか否かを検証するための第2の種別のトークンを発行する発行手段と、
    前記発行手段により発行されたトークンの種別に依らず、前記情報処理装置から検証要求およびスコープとともに受信したトークンを基に検証のための確認を行い検証の結果を通知する検証手段とを有し、
    前記検証手段は、前記第1の種別のトークンを受信した場合は、トークンに関連付けられた権限の確認を行わず、前記第2の種別のトークンを受信した場合は、トークンに関連付けられた権限の確認を行い、かつ前記スコープがトークンに関連付けられた権限の範囲内であるか否かを確認することを特徴とする認証サーバーシステム。
  2. 前記検証手段が前記情報処理装置から受信する前記スコープは、前記認可クライアントから前記情報処理装置に対して要求された前記サービスを利用するためのスコープであることを特徴とする請求項1に記載の認証サーバーシステム。
  3. 前記検証手段が前記情報処理装置から受信する前記スコープは、前記第2の種別のトークンを用いて前記サービスを利用することを禁止するためのスコープであることを特徴とする請求項1または2に記載の認証サーバーシステム。
  4. 前記検証手段は、前記第2の種別のトークンを受信した場合、トークンを基に前記認可クライアントに関連付く権限の確認を行い、かつ前記スコープが前記認可クライアントに関連付く権限の範囲内であるか否かを確認し、
    前記スコープがトークンに関連付けられた権限の範囲内であると確認され、かつ前記スコープが前記認可クライアントに関連付く権限の範囲内であると確認されたことに応じて、前記サービスと連携する前記認可クライアントに移譲された権限で前記サービスを利用できる旨を検証の結果として通知することを特徴とする請求項1乃至3の何れか1項に記載の認証サーバーシステム。
  5. 前記検証手段は、前記情報処理装置から受信する前記スコープが前記第2の種別のトークンを用いて前記サービスを利用することを禁止するためのスコープであっても、前記認可クライアントに関連付く権限が特定の権限であると確認した場合は、前記サービスと連携する前記認可クライアントに移譲された権限で前記サービスを利用できる旨を検証の結果として通知することを特徴とする請求項1乃至4の何れか1項に記載の認証サーバーシステム。
  6. 前記発行手段は、認証画面を介して入力された認証情報が妥当であると判断した場合に前記第1の種別のトークンを発行し、認可確認画面を介して前記サービスにおけるユーザーの権限を前記認可クライアントに移譲することが認可されたと判断した場合に前記第2の種別のトークンを発行することを特徴とする請求項1乃至5の何れか1項に記載の認証サーバーシステム。
  7. 前記検証手段は、前記第1の種別のトークンを受信した場合は、前記端末を操作するユーザーのユーザー情報が前記認証サーバーシステムに登録されているか否かを確認することを特徴とする請求項1乃至6の何れか1項に記載の認証サーバーシステム。
  8. 端末および認可クライアントへ特定の機能を提供するサービスを備えた情報処理装置と通信可能な認証サーバーシステムで実行される方法であって、
    発行手段は、前記端末を操作するユーザーが正規のユーザーであるか否かを検証するための第1の種別のトークン、および前記サービスと連携する認可クライアントに移譲された権限で前記サービスを利用できるか否かを検証するための第2の種別のトークンを発行し、
    検証手段は、前記発行手段により発行されたトークンの種別に依らず、前記情報処理装置から検証要求およびスコープとともに受信したトークンを基に検証のための確認を行い検証の結果を通知し、
    更に、前記検証手段は、前記第1の種別のトークンを受信した場合は、トークンに関連付けられた権限の確認を行わず、前記第2の種別のトークンを受信した場合は、トークンに関連付けられた権限の確認を行い、かつ前記スコープがトークンに関連付けられた権限の範囲内であるか否かを確認することを特徴とする方法。
  9. 請求項8に記載の方法を認証サーバーシステムに実行させるためのプログラム。
  10. 請求項9に記載のプログラムを記憶した記憶媒体。
JP2015118353A 2015-06-11 2015-06-11 認証サーバーシステム、方法、プログラムおよび記憶媒体 Pending JP2017004301A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015118353A JP2017004301A (ja) 2015-06-11 2015-06-11 認証サーバーシステム、方法、プログラムおよび記憶媒体
CN201610388353.2A CN106254075B (zh) 2015-06-11 2016-06-02 认证服务器系统以及方法
US15/175,988 US10148638B2 (en) 2015-06-11 2016-06-07 Authentication server system, method, and storage medium
KR1020160070716A KR101983544B1 (ko) 2015-06-11 2016-06-08 인증 서버 시스템, 방법 및 기억매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015118353A JP2017004301A (ja) 2015-06-11 2015-06-11 認証サーバーシステム、方法、プログラムおよび記憶媒体

Publications (1)

Publication Number Publication Date
JP2017004301A true JP2017004301A (ja) 2017-01-05

Family

ID=57517488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015118353A Pending JP2017004301A (ja) 2015-06-11 2015-06-11 認証サーバーシステム、方法、プログラムおよび記憶媒体

Country Status (4)

Country Link
US (1) US10148638B2 (ja)
JP (1) JP2017004301A (ja)
KR (1) KR101983544B1 (ja)
CN (1) CN106254075B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018163616A (ja) * 2017-03-27 2018-10-18 キヤノン株式会社 認証認可サーバー、リソースサーバー、認証認可システム、認証方法及びプログラム
JP2019113981A (ja) * 2017-12-22 2019-07-11 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2021500651A (ja) * 2017-10-26 2021-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クライアントのためのアプリケーションの管理をサポートするためのコンピュータ自動化方法、コンピュータ・プログラム、およびシステム
JP2021026612A (ja) * 2019-08-07 2021-02-22 キヤノン株式会社 システム、認可サーバー、制御方法、プログラム
JP2021026611A (ja) * 2019-08-07 2021-02-22 キヤノン株式会社 システム、制御方法、プログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656514B (zh) * 2017-03-02 2019-05-31 北京搜狐新媒体信息技术有限公司 kerberos认证集群访问方法、SparkStandalone集群及其驱动节点
US10673831B2 (en) * 2017-08-11 2020-06-02 Mastercard International Incorporated Systems and methods for automating security controls between computer networks
JP2019046059A (ja) * 2017-08-31 2019-03-22 キヤノン株式会社 権限委譲システム、制御方法、およびプログラム
US10572367B2 (en) * 2017-11-21 2020-02-25 Accenture Global Solutions Limited Intelligent code quality monitoring
CN109462595A (zh) * 2018-11-29 2019-03-12 甘肃万维信息科技有限责任公司 基于RestFul的数据接口安全交换方法
EP3699782A1 (en) * 2019-02-21 2020-08-26 CoreMedia AG Method and apparatus for managing data in a content management system
CN110086813A (zh) * 2019-04-30 2019-08-02 新华三大数据技术有限公司 访问权限控制方法和装置
CN111586030B (zh) * 2020-04-30 2022-06-17 武汉时波网络技术有限公司 一种基于微服务多租户的接口鉴权、权限验证方法及系统
FR3110262B1 (fr) * 2020-05-18 2023-06-23 The Ring Io Procédé et système d’authentification d’un utilisateur auprès d’un serveur d’authentification
CN112380517B (zh) * 2020-11-17 2022-09-16 上海福君基因生物科技有限公司 基于生物信息统一认证的云平台管理方法及系统
CN112612770B (zh) * 2020-12-28 2024-05-14 深圳市科创思科技有限公司 一种分布式文件上传方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201042973A (en) * 2008-11-28 2010-12-01 Ibm Token-based client to server authentication of a secondary communication channel by way of primary authenticated communication channels
CN101990183B (zh) * 2009-07-31 2013-10-02 国际商业机器公司 保护用户信息的方法、装置及系统
CN102624739B (zh) * 2012-03-30 2014-12-03 北京奇虎科技有限公司 一种适用于客户端平台的认证授权方法和系统
JP6006533B2 (ja) * 2012-05-25 2016-10-12 キヤノン株式会社 認可サーバー及びクライアント装置、サーバー連携システム、トークン管理方法
CN103685139B (zh) * 2012-08-30 2018-07-13 中兴通讯股份有限公司 认证授权处理方法及装置
CN103685204A (zh) * 2012-09-24 2014-03-26 中国科学院声学研究所 基于物联网资源共享平台的资源鉴权方法
JP6198477B2 (ja) 2013-06-21 2017-09-20 キヤノン株式会社 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
WO2015042349A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service
US9202031B2 (en) * 2014-02-10 2015-12-01 Level 3 Communications, Llc Authentication system and method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018163616A (ja) * 2017-03-27 2018-10-18 キヤノン株式会社 認証認可サーバー、リソースサーバー、認証認可システム、認証方法及びプログラム
JP2021500651A (ja) * 2017-10-26 2021-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クライアントのためのアプリケーションの管理をサポートするためのコンピュータ自動化方法、コンピュータ・プログラム、およびシステム
JP7015916B2 (ja) 2017-10-26 2022-02-03 インターナショナル・ビジネス・マシーンズ・コーポレーション クライアントのためのアプリケーションの管理をサポートするためのコンピュータ自動化方法、コンピュータ・プログラム、およびシステム
US11457014B2 (en) 2017-10-26 2022-09-27 International Business Machines Corporation Access control in microservice architectures
US11477199B2 (en) 2017-10-26 2022-10-18 International Business Machines Corporation Access control in microservice architectures
JP2019113981A (ja) * 2017-12-22 2019-07-11 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP7029051B2 (ja) 2017-12-22 2022-03-03 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2021026612A (ja) * 2019-08-07 2021-02-22 キヤノン株式会社 システム、認可サーバー、制御方法、プログラム
JP2021026611A (ja) * 2019-08-07 2021-02-22 キヤノン株式会社 システム、制御方法、プログラム
JP7301668B2 (ja) 2019-08-07 2023-07-03 キヤノン株式会社 システム、制御方法、プログラム
JP7301669B2 (ja) 2019-08-07 2023-07-03 キヤノン株式会社 システム、認可サーバー、制御方法、プログラム

Also Published As

Publication number Publication date
KR101983544B1 (ko) 2019-05-29
US10148638B2 (en) 2018-12-04
US20160366151A1 (en) 2016-12-15
KR20160146541A (ko) 2016-12-21
CN106254075B (zh) 2020-02-28
CN106254075A (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
JP2017004301A (ja) 認証サーバーシステム、方法、プログラムおよび記憶媒体
US11388158B2 (en) System and method for authenticating clients
US9071601B2 (en) Authority delegate system, server system in authority delegate system, and control method for controlling authority delegate system
US9571494B2 (en) Authorization server and client apparatus, server cooperative system, and token management method
JP5197843B1 (ja) 認証連携システムおよびidプロバイダ装置
JP6675163B2 (ja) 権限委譲システム、認可サーバの制御方法、認可サーバおよびプログラム
US20160261607A1 (en) Techniques for identity-enabled interface deployment
US9154504B2 (en) Device apparatus, control method, and relating storage medium
JP6245949B2 (ja) 認可サーバーシステム、その制御方法、およびそのプログラム。
US9781116B2 (en) Authority transfer system, method that is executed by authority transfer system, and storage medium
JP2015005222A (ja) 認可サーバーシステムおよびその制御方法、並びにプログラム
US9686257B2 (en) Authorization server system, control method thereof, and storage medium
JP7096736B2 (ja) システム、及びデータ処理方法
JP2014232433A (ja) 画像形成装置、サーバー装置、情報処理方法及びプログラム
CN112470444A (zh) 用于撤销对api调用者的授权的方法和装置
JP2018092446A (ja) 認証認可システム及び情報処理装置と認証認可方法とプログラム
US20210144138A1 (en) Authority transfer system, server and method of controlling the server, and storage medium
JP2007048241A (ja) アクセス制御システム、アクセス制御方法およびアクセス制御プログラム
JP6719875B2 (ja) 認証サーバ、認証方法およびプログラム
CN114444058A (zh) 一种微服务的鉴权系统、方法、电子设备和存储介质
JP2017120502A (ja) クラウドサービスへのIoT機器の登録方法
Oh et al. Interoperable OAuth 2.0 Framework
JP2016085638A (ja) サーバー装置、端末装置、システム、情報処理方法及びプログラム
JP2019128858A (ja) 機器認可システム
JP2015103194A (ja) メールアドレス管理システム