JP2015095056A - 認可サーバーシステム、その制御方法、およびそのプログラム。 - Google Patents

認可サーバーシステム、その制御方法、およびそのプログラム。 Download PDF

Info

Publication number
JP2015095056A
JP2015095056A JP2013233498A JP2013233498A JP2015095056A JP 2015095056 A JP2015095056 A JP 2015095056A JP 2013233498 A JP2013233498 A JP 2013233498A JP 2013233498 A JP2013233498 A JP 2013233498A JP 2015095056 A JP2015095056 A JP 2015095056A
Authority
JP
Japan
Prior art keywords
authorization
client
upper limit
user
group
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
JP2013233498A
Other languages
English (en)
Other versions
JP6245949B2 (ja
Inventor
勇人 松ヶ下
Isato Matsugashita
勇人 松ヶ下
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 JP2013233498A priority Critical patent/JP6245949B2/ja
Priority to US14/536,470 priority patent/US20150135275A1/en
Priority to DE102014222852.2A priority patent/DE102014222852A1/de
Publication of JP2015095056A publication Critical patent/JP2015095056A/ja
Application granted granted Critical
Publication of JP6245949B2 publication Critical patent/JP6245949B2/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 API利用量の上限に達しているにも関わらずクライアントのAPI利用を許してしまうとリソースサーバーに一定の負荷がかかってしまい、過剰な利用であった場合はリソースサーバーの品質が低下してしまう可能性が残る。
【解決手段】 認可サーバーと連携しAPI利用量の上限に達している場合に、OAuth2.0の権限委譲を制限する事でリソースサーバーの負荷軽減を図る。
【選択図】 図7

Description

クライアントにユーザーの権限を委譲する認可サーバーシステム、その制御方法、およびそのプログラム。
近年、インターネット上に展開された所謂クラウドサービスと呼ばれるWebサービスの利用が拡大している。例えば、CRM(Customer Relationship Management)サービスを利用して顧客関係を管理する形態や、SNS(Social Networking Service)を利用してリアルタイムに情報発信¥収集を行う形態である。クラウドサービスは個人だけでなく、ビジネスの現場でも拡大している。また、これら多数のクラウドサービスは各々がWebサービスのAPI(Application Programming Interface)を公開しており、他のアプリケーションやクラウドサービスからAPIを介してサービスを利用させる事が可能となっている。これを利用し、複数のクラウドサービスが公開するAPIを別のクラウドサービスが利用し、あたかも一つのWebサービスのように構成するマッシュアップという機能が広がりつつある。
その一方で、複数のクラウドサービスを連携するマッシュアップ機能の利用機会の増加によっていくつかの課題が生まれる。それは、ユーザーが望んだ以上の情報が複数のクラウドサービス間で交換されユーザーデータや個人情報が漏えいするリスクである。本来、各クラウドサービスにて必要以上にユーザーデータ、個人情報等を取得することは望ましくなく、さらには、ユーザーが連携を望まないクラウドサービスに対してユーザーのデータおよび個人情報が提供されてはならない。しかし、サービスの提供者からするとクラウドサービス間の連携の仕組みは容易に実装できるものが好ましい。
このような状況における課題を解決するため、OAuth2.0と呼ばれる認可の連携を実現させるための標準プロトコルが策定されている(非特許文献1を参照)。OAuth2.0によれば、例えばあるサービスAが管理するユーザーのデータを取得するAPIに対して、そのユーザーから認められたサービスBがアクセスすることを許すプロトコルである。サービスAは、サービスBからアクセスされるリソースの範囲を明らかにした上で、サービスBによるAPIへのアクセスに対してユーザーの明示的な認可を得ることになっている。ユーザーが明示的に認可を行うことを認可操作と称する。
ユーザーが認可操作を行うと、サービスBはサービスAからアクセスを認められたことを証明するトークン(以降、認可トークンと称する)を受け取り、サービスAのAPIへのアクセスはその認可トークンを用いて実現できる。このユーザーの認可操作によってユーザーのリソースに対するアクセスを許可するための行為、即ちそのサービスにおけるユーザーの権限をサービスBに委譲する行為を権限委譲と称する。
また、OAuth2.0ではサービスBの成り済ましを防ぐためにサービスBを認証する必要がある。サービスBを認可するためには、サービスAは予めサービスBの認証情報、より具体的にはクライアントIDおよびシークレットを発行し、サービスBにそれら認証情報を設定しておく必要がある。以降、サービスAからみたサービスBのことをクライアントと呼称する。更に、OAuth2.0では、上述のユーザーの認可操作、認可トークン発行、およびクライアントの認証を行う認可サーバーと、ユーザーのデータをリソースとして管理し、WebサービスとしてAPIを公開するリソースサーバーを分けて構成する事が可能である。その場合、サービスBはユーザーからの権限委譲を受け、認可サーバーから認可トークンを取得し、その認可トークンを用いてリソースサーバーのAPIを利用する。そして、リソースサーバーは、取得した認可トークンを認可サーバーに検証依頼し、結果、アクセスの許可を得られた場合にのみリソースへのアクセスを許可し、サービスBにデータを応答するよう構成される。
その他の技術として、クライアントが利用するAPIを単位時間あたりで監視することが知られている。これは、ある特定のクライアントから過剰にAPIを利用されサービス全体の品質が低下してしまう事を防ぐためである。特に、サービスの利用量が課金される有償サービスでは、単位時間あたりの利用数に上限を設け、上限を超えたアクセスは拒否するよう構成される事が多い。これは、有償サービスは基本的に利用者との契約が行われる事で利用可能となり、有償サービスとしては契約した内容に従ったサービスを安定的に提供する責務を負うためである。例えば、SLA(Service Level Agreement)と呼ばれるサービスの品質を保証する制度がよく知られている。このSLAには、例えば、提供するサービスの最低速度や、利用不可能な時間の上限などが定義されている。ユーザーは、このSLAに定義されているサービスの品質の対価として利用料金を支払う。また、SLAには、定義されている品質が守れなかった場合の処置としてサービス提供者側の罰則や、ユーザーへの保証、例えば利用料金の減額、が定義されている。よって、有償サービスでは、SLAに定義された品質を守る事が非常に重要となっており、APIの利用量の上限設定、および上限を超えた場合にアクセスを拒否しサービスの品質低下を防ぐことが重要となる。
"The OAuth 2.0 Authorization Framework"、[online] D. Hardt、2013年5月 <URL http://tools.ietf.org/html/rfc6749>
しかしながら、例えばOAuth2.0の構成の様にクライアントがユーザーの権限の委譲を受けて連携先のサーバーにアクセスするシステムにおいて、APIの利用数の上限数を考慮し、クライアントに対して適切にAPIを利用させる仕組みがなかった。
本発明の目的は、クライアントがユーザーの権限の委譲を受けて連携先のサーバーにアクセスするシステムにおいて、クライアントに対して適切にAPIを利用させることにある。
本願発明の一実施形態に係る認可サーバーシステムは、ネットワークを介して提供されるサービスの利用を制限する認可サーバーシステムであって、ユーザーの前記サービスを利用する権限をクライアントへ委譲することを許可する認可操作が行われたことに応じて認可情報を発行する認可処理手段と、前記認可処理手段により発行された認可情報を取得した前記クライアントが前記ユーザーの権限で前記サービスを利用する際に送信する前記認可情報を検証し、当該検証の結果、前記クライアントに対し前記サービスの利用を許可する検証処理手段と、前記サービスを利用するために前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断する判断手段と、前記判断手段により超えていると判断された場合、前記関数の利用を制限する制限手段と、を有し、前記判断手段は、前記認可処理手段により前記認可情報が発行される際と、前記検証処理手段により前記認可情報が検証される際の両方のタイミングにおいて、前記サービスを利用するために前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断することを特徴とする
クライアントがユーザーの権限の委譲を受けて連携先のサーバーにアクセスするシステムにおいて、クライアントに対して適切にAPIを利用させることが可能になる。
システム構成図。 各装置のハードウェア構成図。 各装置のソフトウェアモジュール構成図。 認可サーバーで管理するテーブル構造 認可サーバーで管理するテーブル構造 API上限管理画面例 API利用シーケンス 画面例 API上限検証処理フロー API通常上限検証処理フロー API個別上限検証処理フロー 第二の実施例における認可サーバーで管理するテーブル構造 第二の実施例におけるAPI上限管理画面例 第二の実施例におけるAPI上限検証処理フロー
本願発明の実施例におけるクラウドサービスはマルチテナントという形態で提供される。マルチテナントとは、共有のサーバー上に展開した同一のWebアプリケーションを複数の企業や組織に提供する形態である。マルチテナントは、従来のサービス提供先の企業や組織ごとに専用のサーバーを用意して提供する形態よりコスト面で優れている。
ここで、前述のサービスAがマルチテナントの形態であり、テナント1、テナント2の複数のテナントに所属するユーザーから利用されているとする。また、前述のサービスBがクライアントとしてサービスAが公開するAPIを利用するとする。なお、前述のとおり、クライアントからのAPI利用については、単位時間あたりの利用数の上限が決まっている。その場合、以下のような課題が発生する。
サービスBが、テナント1の所属ユーザーからの権限委譲によって発行された認可トークンを用いてAPIを利用しAPI利用数が上限に達してしまった場合に、テナント2に所属するユーザーからの権限委譲によって発行された認可トークンを用いるとAPI利用が拒否されてしまう。つまり、SLAの内容によっては、テナント2所属のユーザーに対するSLAが守れない可能性がある。この問題は、テナント毎にAPIの上限数を設定されていなかったことに起因する。本願発明の実施例は、このようなクラウドサービスに対して特に有効な構成である。
では、始めに本願発明の各実施例にて用いられる用語の定義について説明する。サービスとは、サーバー上で起動するソフトウェアがクライアントからの要求に従い実行されることでそのクライアントに対して提供される機能のことを指す。なお、そのソフトウェアであるWebアプリケーションのこともサービスと呼ぶ場合もある。本実施例においては、クラウドサービスとして連携サーバーが提供するサービスと、リソースサーバーが提供するサービスの2つのサービスがあり、ユーザーは、端末を介して連携サーバーが提供するサービスを利用している想定で説明している。また、リソースサーバーはサービスのAPIを公開しており、連携サーバーはこのAPIを利用する事でユーザーに対してマッシュアップ機能を提供している。つまり、リソースサーバーから見た場合、連携サーバーはクライアントに相当する。
なお、連携サーバーが、リソースサーバーのAPIを利用するためには、後述するOAuth2.0のAuthorization Code Grantによるユーザーの認可操作を伴った権限委譲が必要となる。言い換えると、ユーザーから権限委譲を受けた連携サーバーは、リソースサーバーのAPIを利用する事ができるようになる。また、リソースサーバーが提供するサービス品質を確保するために、クライアントである連携サーバーに対して単位時間あたりのAPI利用数が管理されている。ここで、単にリソースサーバーにてAPI利用数をカウントし上限に達しているかを検証する構成では、連携サーバーから過剰にAPI利用が行われるとリソースサーバーの負荷が軽減されない課題が発生する。そこで、本願発明では、認可サーバーと連携し、OAuth2.0の権限委譲を制限する事で、リソースサーバーの負荷軽減を図る。詳細については後述する。
APIとは、サービスを利用するために呼び出すための関数を指す。呼び出し元であるクライアントがAPIをコールすることでサービスを受けられ、ユーザーからはあたかもそのクライアントが処理を行ったかのように見える。以下、本発明を実施するための最良の形態について図面を用いて説明する。
本実施の形態に係る権限委譲システムは、図1に示すような構成のネットワーク上に実現される。100は、Wide Area Network(WAN100)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。101は各構成要素を接続するLocal Area Network(LAN101)である。
200はOAuth2.0を実現するための認可サーバーであり、認可サーバーモジュールが設置されている。300はリソースサーバーであり、Webサービスとして公開されるAPIを備えるリソースサーバーモジュールが設置されている。400は連携サーバーであり、連携サーバーモジュールが設置されている。連携サーバーモジュールは、リソースサーバー300が備えるリソースサーバーモジュールが公開するAPIを利用する事で、自身が提供するサービスと合わせてマッシュアップ機能をユーザーに提供する。500はデータベースサーバーであり、認可サーバー200とLAN101を介して接続しており、認可サーバーモジュールが利用するデータが格納されている。810は端末であり、Webブラウザー820が設置されている。例えば、PCやスマートフォンと呼ばれる携帯端末等である。
ユーザーはWebブラウザー820を用いて連携サーバー400、認可サーバー200と通信する。また認可サーバー200、リソースサーバー300はLAN101を介して接続されている。また、認可サーバー200、リソースサーバー300、連携サーバー400、および端末810は、それぞれWAN100を介して通信可能に接続されている。また認可サーバー200、データベースサーバー500は同一のサーバー上に構成されていてもよい。なお、本実施例における各サーバーは1台で構成されているが複数台から構成されたサーバー群であっても良い。そこで、本実施例ではそのようなサーバーをサーバーシステムと称する。例えば、認可サーバーシステムと称した場合、1台で構成される認可サーバー、および複数台で構成される認可サーバー群の両方を指していることになる。
本実施の形態に係る権限委譲システムは、図2に示すような構成のサーバーおよび端末から成るシステム上に実現される。図2は、認可サーバー200、リソースサーバー300、連携サーバー400、端末810、およびデータベースサーバー500のハードウェア構成を示す。なお、図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態の各サーバーおよび端末には一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、或いはハードディスク(HD)等の外部メモリ211からRAM202にロードされたOSやアプリケーション等のプログラムを実行しシステムバス204に接続される各ブロックを制御する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各シーケンスの処理はこのプログラムの実行により実現できる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)等の外部メモリ211におけるデータアクセスを制御する。ネットワークコントローラ(NC)208はWAN100、LAN101を介して接続された他の機器との通信制御処理を実行する。尚、後述の全ての説明においては、特に断りのない限りサーバーや端末における実行のハード上の主体はCPU201であり、ソフトウェア上の主体は外部メモリ211にインストールされたアプリケーションプログラムである。
図3は本実施の形態に係る認可サーバー200、リソースサーバー300、連携サーバー400それぞれのモジュール構成を示す図である。なお認可サーバー200、リソースサーバー300、連携サーバー400は図2のものと同一である。図中200は認可サーバー200である。認可サーバー200は認可サーバーモジュール600、HTTPサーバーモジュール610を持つ。HTTPサーバーモジュール610はWAN100を介して接続する端末810に設置されたWebブラウザー820とのHTTP通信を行うためのモジュールである。また、SSL/TLSによる通信が可能に構成されており、不図示の証明書ストアを持つ。また、本実施例では、後述する認可要求を受け付けた場合に、要求元に対してユーザーID、パスワードによるユーザー認証を要求するよう構成している。
次に、認可サーバーモジュール600はHTTPサーバーモジュール610を介してWebブラウザー820からの要求を受け付け、処理し、応答する。その際、本実施例では、HTTPサーバーモジュール610にてユーザー認証を受け付け、要求元の認証に成功した場合、認証したユーザー情報を紐づけた認証トークンを生成し認可サーバーモジュール600に通知するよう構成されている。ここで、認証トークンとはユーザーを認証しログインしている事を示す、もしくは認証されているかを検証するためのトークンであり、この認証トークンを利用する事でユーザーを識別する事が可能となる。
一方、後述の認可トークンは、認証されたユーザーが認可操作をおこなった際に、対象となるクライアントがユーザーの権限をもってユーザーに成り代わってアクセスを許可する事を示すためのトークンであり、両者は異なる。さらには、認可トークンは、認可コードを用いて取得し、クライアントがAPIを利用するための権限を持つことを示すトークンである。認可トークンの様にユーザーのサービスを利用する権限をクライアントへ委譲されたことを示す情報を認可情報と称する。
HTTPサーバーモジュール610、および認可サーバーモジュール600における処理の詳細は後述する。認可サーバーモジュール600はLAN101を介してリソースサーバーモジュール700からの認可トークン検証処理を受け付け、処理し、応答するよう構成されている。この認可トークン検証処理は、RPC(Remote Procedure Call)として構成する事も可能であるし、HTTPサーバーモジュール610を介してLAN101内で通信可能なWebサービスのAPIとして構成する事も可能である。
図中300はリソースサーバー300である。リソースサーバー300はリソースサーバーモジュール700を持つ。リソースサーバーモジュールは不図示のHTTPサーバーモジュール上で動作するよう構成する事も可能である。リソースサーバーモジュール700はWebサービスとして公開するAPIを備えており、後述する連携サーバー400からのリソース要求を受け付け、処理し、応答する。また、リソースサーバーモジュール700は認可サーバーモジュール600に対してLAN101を介して後述の認可トークン検証処理を要求する。
図中400は連携サーバー400である。連携サーバー400は連携サーバーモジュール800を持つ。連携サーバーモジュール800は不図示のHTTPサーバーモジュール上で動作するよう構成する事も可能である。連携サーバーモジュール800はWebアプリケーションであり、Webブラウザー820からの要求を受け付け、処理し、応答する。また、連携サーバーモジュール800は、リソースサーバーモジュール700が公開するWebサービスのAPIを呼び出すHTTPクライアントとしても構成されている。
図4a、図4b、図4cは認可サーバー200がLAN101を介して通信可能に構成されたデータベースサーバー500(不図示)の外部メモリに記憶するデータテーブルである。これらデータテーブルは、認可サーバー200の外部メモリに構成する事もできる。図4aはユーザー管理テーブル1200である。ユーザー管理テーブル1200は、ユーザーID1201、パスワード1202、テナントID1203、および種別1204から成る。認可サーバー200は、ユーザーID1201、パスワード1202の情報の組を検証し、正しければ認証情報を生成することで、各ユーザーを認証する機能を備える。
テナントID1203は各ユーザーIDにて識別されるユーザーが所属するテナントのIDである。テナントとはユーザーが属する企業を特定するための単位であり、テナントIDからそのユーザーが属する企業が判別できる。本実施例ではテナントを例に説明を行うが、テナントに限らず特定のグループ単位でユーザーを管理し、グループIDからそのユーザーが属するグループを特定する形態であればどのようなグループ単位であっても良い。種別1204は各ユーザーIDにて識別されるユーザーの権限を示す。種別1204が[クライアント管理者]である場合は、後述のAPI上限管理画面にて、クライアントのAPIの上限数について確認、設定する事ができる。この種別1204が[クライアント管理者]であるユーザーID1201、パスワード1202は、連携サーバー400を管理しているか、もしくは管理が委譲されたユーザーに予め通知されている。また、種別1204が[ユーザー]である場合は、後述のシーケンスにてクライアントに権限委譲する事ができる。この種別1204が[ユーザー]であるユーザーID1201、パスワード1202は、端末810の利用者に予め通知されている。各処理の詳細については後述する。
図4bはクライアント管理テーブル1300である。クライアント管理テーブル1300はクライアントID1301、シークレット1302、テナントID1303、リダイレクトURL1304、クライアント名1305から成る。認可サーバー200は、クライアントID1301、シークレット1302の情報の組を検証し、正しければ認証情報を生成することで、各クライアントを認証する機能を備える。また、クライアントID1301、シークレット1302の組は、予め連携サーバーモジュール800に設定されている。ここで、リダイレクトURLとは、後述するOAuth2.0におけるAuthorization Code Grantフローにおいて、認可サーバー200が、ユーザーがクライアントに対して権限を委譲する事を許可した事を示す認可コードをクライアントが受け取るためのクライアントのURLである。本実施例では、連携サーバーモジュール800が、認可サーバーモジュール600が発行した認可コードを受け付けるための連携サーバーモジュール800のURLとなる。リダイレクトURL1304、クライアント名1304は、クライアントID1301、シークレット1302を生成する際に取得し、登録される。本実施例では、このクライアントID1301、シークレット1302と、リダイレクトURL1304、クライアント名1305は、予め連携サーバー400を用いてクラウドサービスを展開している事業者と、認可サーバー200を用いてクラウドサービスを展開している事業者間での取り決めにより授受しているものとして説明する。
しかしながら、例えば、クライアントの発行画面を認可サーバーモジュール800が備え、連携サーバー400の管理者が当該画面にアクセスし、情報の授受を行うよう構成する事も可能である。テナントID1303は、ユーザー管理テーブル1200のテナントID1203と関係があり、同じテナントIDであった場合はそのクライアントIDにて識別されるクライアントの[クライアント管理者]ユーザーである事が特定される。つまり、同一テナントIDの[クライアント管理者]ユーザーにて、クライアントIDにて識別されるクライアントのAPIの上限数について確認、設定が行われる。これら処理、およびリダイレクトURL1304、クライアント名1305の処理の詳細については後述する。
図4cは認可トークン管理テーブル1400である。認可トークン管理テーブル1400は、認可トークンID1401、トークン種別1402、有効期限1403、クライアントID1404、ユーザーID1405から成る。認可トークン管理テーブル1400の詳細については後述する。
図5a、図5b、図5c、図5dは認可サーバー200がLAN101を介して通信可能に構成されたデータベースサーバー500の外部メモリに記憶するデータテーブルである。これらデータテーブルは、認可サーバー200の外部メモリに構成する事もできる。
図5aはAPI利用数上限管理テーブル1500である。API利用数上限管理テーブル1500は、クライアントID1501、上限値1502、リセット時刻1503、期間1504、上限時モード1505、期間あたりのコール数1506から成る。本実施例では、上限値1502、リセット時刻1503、期間1504の設定値は、予め連携サーバー400を用いてクラウドサービスを展開している事業者と、リソースサーバー300を用いてクラウドサービスを展開している事業者間での取り決めにより設定されているとして説明する。なお、不図示の事業者間の契約を管理するための画面を設け、認可サーバーモジュール600に構成し、連携サーバー400の管理者がWebブラウザー820を用いて当該画面にアクセスし、設定を行えるよう構成する事も可能である。これらAPI利用数上限管理テーブル1500の詳細については後述する。また、期間あたりのコール数1506は、期間1504の間隔にて、リセット時刻1503の時刻に0回にリセットされるよう構成されている。
図5bはテナント個別設定管理テーブル1600である。テナント個別設定管理テーブル1600は、クライアントID1601、テナント個別拒否設定1602、テナント個別許可設定1603、テナント個別上限値合計1604から成る。これらテナント個別設定管理テーブル1600の詳細については後述する。
図5cはテナント個別拒否設定管理テーブル1700である。テナント個別拒否設定管理テーブル1700は、クライアントID1701、拒否テナントID1702から成る。これらテナント個別拒否設定管理テーブル1700の詳細については後述する。
図5dはテナント個別許可設定管理テーブル1800である。テナント個別許可設定管理テーブル1800は、クライアントID1801、許可テナントID1802、上限値1803、期間あたりのコール数1804から成る。許可テナントID1802と上限値1803は関連付けられて登録されており、許可テナントIDが特定されるとそのテナントに対して割り当てられている上限値を特定することができる。なお、グループID毎、即ちテナントID毎に上限値が設定される。これらテナント個別許可設定管理テーブル1800の詳細については後述する。なお、期間あたりのコール数1804は、API利用数上限管理テーブル1500の期間1504の間隔にて、リセット時刻1503の時刻に0回にリセットされるよう構成されている。
図6a、図6b、図6cは認可サーバーモジュール600が生成するクライアントのAPI利用数の上限値を管理、設定するための上限管理画面例である。この画面は、連携サーバー400の管理者か、もしくは管理を委譲されているユーザーが利用するWebブラウザー820に表示される画面である。
図6aは、クライアントのAPIの上限数を確認、設定するためのAPI利用数上限管理画面2000である。API利用数上限管理画面2000は、上限値2001、上限値設定2002、テナント個別拒否設定ボタン2003、テナント個別許可設定ボタン2004、設定ボタン2005、閉じるボタン2006から構成される。以下、図6a、図8aを用いてAPI利用数上限管理画面2000の処理について説明する。なお、閉じるボタン2006を押下された場合、Webブラウザー820は当該画面を閉じ、処理を終了する。
連携サーバー400の管理者かもしくは管理を委譲されているユーザーは、Webブラウザー820を用いて、HTTPサーバーモジュール610にアクセスする。HTTPサーバーモジュール610はWebブラウザー820からのアクセスを受けると、Webブラウザー820からの通知に、HTTP Cookieとして有効な認証トークンが含まれているか検証する。含まれている場合、HTTPサーバーモジュール610は、認証トークンを認可サーバーモジュール600に通知する。含まれていない場合は、以下の処理を実行する。HTTPサーバーモジュール610は、ユーザー認証をするためにログイン画面をWebブラウザー820に応答する。ここで図8aはHTTPサーバーモジュール610が応答するログイン画面例である。本実施例ではユーザーはユーザーIDおよびパスワードを入力し、それらの組がユーザー管理テーブル1200に登録されている情報の組と一致する場合に認証するよう構成されている。なおユーザーを認証する手段として他の手段、例えば、X.509の証明書や、パスワードを複数回入力する多段階認証等、別の手段を構成する事も可能であり、本手段に限定するものではない。
図8aは、ユーザーIDを入力するユーザーID入力欄3001、パスワードを入力するパスワード入力欄3002、およびログイン操作を実行するためのログインボタン3003から成る。ユーザーはWebブラウザー820に表示された図8aに必要な情報を入力し、ログインボタン3003を押下する。Webブラウザー820は入力された情報をHTTPサーバーモジュール610に送信する。HTTPサーバーモジュール610はユーザーID、パスワードを取得し、ユーザー管理テーブル1200のユーザーID1201、パスワード1202の情報の組と比較し一致するかを検証する事でユーザーを認証する。さらに、ユーザー管理テーブル1200にて、認証したユーザーID1202の種別1204が[クライアント管理者]であるかを確認する。HTTPサーバーモジュール610は、ユーザー認証に失敗、つまり、ユーザー管理テーブル1200に、取得した情報が登録されていないか、もしくは種別1204が[クライアント管理者]でない場合は、不図示の認証エラー画面をWebブラウザー820に応答する。ユーザー認証に成功した場合、HTTPサーバーモジュール610は認証トークンを生成する。
この認証トークンはHTTPサーバーモジュール610の不揮発メモリ上に、ユーザーID1201、テナントID1203と対応付けて保存される。そして、HTTPサーバーモジュール610は、認証トークンを認可サーバーモジュール600に通知する。なお、この認証トークンはHTTP Cookieとして設定され、HTTPサーバーモジュール610からWebブラウザー820への応答に設定され通知される。換言すれば、認証トークンをWebブラウザー820がHTTPサーバーモジュール610に送信することで、ユーザーはWebブラウザー820を介してユーザーID、パスワードを入力することなく認可サーバーモジュール600へのアクセスが可能になる。以後、Webブラウザー820から認可サーバーモジュール600へのアクセスは上記のとおり、HTTPサーバーモジュール610による認証トークンの検証、認証処理、および認証トークンの認可サーバーモジュール610への通知が実行されるとして説明を省略する。なお、認証トークンは後述する認可コード、および認可トークンとは異なるものであることに留意されたい。
認証トークンを受け付けた認可サーバーモジュール600は、認証トークンに紐づいたテナントID1203の値を取得し、同じテナントIDが、クライアント管理テーブル1300のテナントID1303に設定されているクライアントID1301を特定する。そして、特定したクライアントIDに対するAPIの上限数の確認、設定するための画面であるAPI利用数上限管理画面2000を生成し、Webブラウザー820に応答する。以後、認可サーバーモジュール600にて同様に行われる、通知された認証トークンを用いたクライアントIDの特定処理についての説明は省略する。
次に、認可サーバーモジュール600でのAPI利用数上限管理画面2000の生成処理について説明する。認可サーバーモジュール600は、API利用数上限管理テーブル1500から、特定したクライアントIDがクライアントID1501に設定されている各項目の情報を取得する。認可サーバーモジュール600は、取得した上限値1502、リセット時刻1503、期間1504を用いて、上限値2001を生成する。さらに、認可サーバーモジュール600は、テナント個別設定管理テーブル1600から、特定したクライアントIDがクライアントID1601に設定されている各項目の情報を取得する。認可サーバーモジュール600は、取得したテナント個別拒否設定1602、テナント個別許可設定1603、テナント個別上限値合計1604を用いて、上限値2001、および上限値設定2002を生成する。なお、図6aのAPI利用数上限管理画面2000は特定したクライアントIDが[client_001]であった場合の画面例を示している。
次に、API利用数上限管理画面2000において、各種ボタンを押下した場合の処理について説明する。テナント個別拒否設定ボタン2003は、テナント個別拒否設定にて[設定する]を選択している場合にのみ押下可能なボタンである。テナント個別拒否設定ボタン2003を押下した場合、認可サーバーモジュール600は図6bで示すテナント個別拒否設定画面2100を生成し、応答する。テナント個別拒否設定画面2100については後述する。テナント個別許可設定ボタン2004は、テナント個別許可設定にて[設定する]を選択している場合にのみ押下可能なボタンである。テナント個別許可設定ボタン2004を押下した場合、認可サーバーモジュール600は図6cで示すテナント個別許可設定画面2200を生成し、応答する。テナント個別許可設定画面2200については後述する。設定ボタン2005は、API上限値設定2200の各項目の選択状態を設定、反映するためのボタンである。設定ボタン2005が押下された場合、上限に達した場合の動作、テナント個別拒否設定、テナント個別許可設定の各選択状態が、Webブラウザー820から認可サーバーモジュール600に通知される。
通知を受けた認可サーバーモジュール600は、特定したクライアントIDを用いてクライアント上限管理テーブル1500の上限時モード1505に対して通知された上限に達した場合の動作の選択状態を反映する。さらに、認可サーバーモジュール600は、特定したクライアントIDを用いてテナント個別設定管理テーブル1600のテナント個別拒否設定1602に対して、テナント個別拒否設定の選択状態、および、テナント個別許可設定1603に対して、テナント個別許可設定の選択状態を反映する。認可サーバーモジュール600は各反映されたデータを用いて、API利用数上限管理画面2000をWebブラウザー820に応答する。
図6bはテナント個別拒否設定画面2100である。テナント個別拒否設定画面2100は拒否するテナントの登録2101、登録ボタン2102、拒否するテナント一覧2103、解除ボタン2104、および閉じるボタン2105から構成される。以下、図6bを用いてテナント個別拒否設定画面2100の処理について説明する。なお、閉じるボタン2105を押下された場合、Webブラウザー820は当該画面を閉じ、処理を終了する。
認可サーバーモジュール600は、API利用数上限管理画面にて、テナント個別拒否設定ボタン2003を押下されると、特定したクライアントIDを用いて、テナント個別拒否設定テーブル1700から0個以上の拒否テナントID1702を取得し、テナント個別拒否設定画面2100を生成する。登録ボタン2102は拒否するテナントを追加登録する際に押下するボタンである。登録ボタン2102を押下された場合、Webブラウザーは拒否するテナントの登録2101に入力されたテナントIDを認可サーバーモジュール600に通知する。通知を受けた認可サーバーモジュール600は、特定したクライアントIDおよび、通知されたテナントIDをテナント個別拒否設定テーブル1700に設定する。解除ボタン2104は拒否するテナントから解除する際に押下するボタンである。解除ボタン2104を押下された場合、Webブラウザーは、解除ボタン2104に対応する拒否するテナント一覧2103に表示しているテナントIDを認可サーバーモジュール600に通知する。通知を受けた認可サーバーモジュール600は、特定したクライアントIDおよび、通知されたテナントIDの組を、テナント個別拒否設定テーブル1700から削除する。なお、図6bのテナント個別拒否設定画面2100は特定したクライアントIDが[client_001]であった場合の画面例を示している。
図6cはテナント個別許可設定画面2200である。テナント個別許可設定画面2200は個別設定するテナントの登録・変更2201、登録・変更ボタン2202、個別設定テナント一覧2203、解除ボタン2204、および閉じるボタン2205から構成される。以下、図6cを用いてテナント個別許可設定画面2200の処理について説明する。なお、閉じるボタン2205を押下された場合、Webブラウザー820は当該画面を閉じ、処理を終了する。
認可サーバーモジュール600は、API利用数上限管理画面にて、テナント個別許可設定ボタン2004を押下されると、特定したクライアントIDを用いて、テナント個別許可設定テーブル1800から0個以上の許可テナントID1802、上限値1803、および、クライアント上限管理テーブル1500から期間1504を取得し、テナント個別許可設定画面2100を生成する。登録・変更ボタン2202は個別設定するテナントを追加登録、もしくは上限値を変更する際に押下するボタンである。登録・変更ボタン2202を押下された場合、Webブラウザーは個別設定するテナントの登録・変更2201に入力されたテナントID、および上限値を認可サーバーモジュール600に通知する。通知を受けた認可サーバーモジュール600は、特定したクライアントID、通知されたテナントID、および上限値をテナント個別許可設定テーブル1800に設定する。その際、クライアントIDとテナントIDの組が既に設定済みであった場合は、その組に対する上限値1803の値を更新する。さらに、テナント個別設定管理テーブル1600のテナント個別上限値合計1604を再計算し、更新する。解除ボタン2204は個別設定するテナントから解除する際に押下するボタンである。解除ボタン2204を押下された場合、Webブラウザーは、解除ボタン2204に対応する個別設定テナント一覧2203に表示しているテナントIDを認可サーバーモジュール600に通知する。通知を受けた認可サーバーモジュール600は、特定したクライアントIDおよび、通知されたテナントIDの組および、上限値を、テナント個別許可設定テーブル1800から削除する。なお、図6cのテナント個別許可設定画面2200は特定したクライアントIDが[client_001]であった場合の画面例を示している。
なお、図6a、図6b、図6cは夫々独立した画面として提供されるものとして説明を行ったが、全てを1つの画面にまとめた形態であっても良い。また、図6aでは、テナント個別許可設定、およびテナント個別拒絶設定の両方が設定できる画面を示したが、少なくとも何れか1方が設定出来る画面であっても良い。本実施例では、テナントIDを指定し、指定されたテナントIDに対し関数を呼び出す際の上限値を設定出来るような画面を管理画面と称す。管理画面と称した場合、図6a、図6b、図6cの設定を設定することが可能な画面と言うことになる。
次に、図7、図8a、図8b、および図8cを用いて、連携サーバーモジュール800が、リソースサーバーモジュール700が公開するAPIを利用するまでの、本実施形態のシーケンスを説明する。なお、図中“Ref”は参照を示しており、別図で説明する。また、“Alt”は分岐を示しており、事前のシーケンスの結果による分岐処理を示す。また、“Opt”は上限を満たした場合にのみ処理を実行する事を示す。
S1.1にてユーザーはWebブラウザー820に表示されている不図示の連携開始操作を実行する。S1.2にてWebブラウザー820から連携サーバーモジュール800に連携開始が通知される。連携開始を受けた連携サーバーモジュール800は、S1.3にてWebブラウザー820、HTTPサーバーモジュール610を介して認可サーバーモジュール600に対して認可要求を行う。ここで、S1.3の認可要求からS3.2の認可トークン応答までの認可トークンの発行処理はOAuth2.0に定義されているAuthorization Code Grantフローに従って実施される。
なお、認可要求には、少なくとも、連携サーバーモジュール800が保持しているクライアントIDおよびリダイレクトURLが含まれ、連携サーバーモジュール800がユーザーから委譲された権限でリソースサーバーモジュール700にアクセスするために必要な認可コードの発行の依頼も含まれる。なお、リダイレクトURLは前述したとおり、認可サーバー200にて発行された認可コードを受け付けるためのクライアントのURLである。
S1.4にて、Webブラウザー820から認可要求を受け付けたHTTPサーバーモジュールは、Webブラウザー820からの通知に、HTTP Cookieとして有効な認証トークンが含まれているか否かを検証する。含まれている場合、HTTPサーバーモジュール610は認証トークンを認可サーバーモジュール600に通知しS1.9に移行する。含まれていない場合は、S1.5の処理を実行する。
S1.5にて、HTTPサーバーモジュール610は、ユーザー認証をするためにログイン画面をWebブラウザー820に応答する。ここで図8aはHTTPサーバーモジュール610が応答するログイン画面である。本実施例ではユーザーはユーザーIDおよびパスワードを入力し、それらの組がユーザー管理テーブル1200に登録されている情報の組と一致する場合に認証するよう構成されている。なおユーザーを認証する手段として他の手段、例えば、X.509の証明書や、パスワードを複数回入力する多段階認証等、別の手段を構成する事も可能であり、本手段に限定するものではない。
図8aは、ユーザーIDを入力するユーザーID入力欄3001、パスワードを入力するパスワード入力欄3002、およびログイン操作を実行するためのログインボタン3003から成る。ユーザーはWebブラウザー820に表示された図8aに必要な情報を入力し、ログインボタン3003を押下する。Webブラウザー820は入力された情報をHTTPサーバーモジュール610に送信する。HTTPサーバーモジュール610はユーザーID、パスワードを取得し、ユーザー管理テーブル1200のユーザーID1201、パスワード1202の情報の組と比較し一致するかを検証する事でユーザーを認証する。さらに、ユーザー管理テーブル1200にて、認証したユーザーID1202の種別1204が[ユーザー]であるかを確認する。HTTPサーバーモジュール610は、ユーザー認証に失敗、つまり、ユーザー管理テーブル1200に、取得した情報が登録されていないか、もしくは種別1204が[ユーザー]でない場合は、不図示の認証エラー画面をWebブラウザー820に応答する。
ユーザー認証に成功した場合、HTTPサーバーモジュール610は認証トークンを生成する。この認証トークンはHTTPサーバーモジュール610の不揮発メモリ上に、ユーザーID1201、テナントID1203と対応付けて保存される。そして、HTTPサーバーモジュール610は、認証トークンを認可サーバーモジュール600に通知する。なお、この認証トークンはHTTP Cookieとして設定され、HTTPサーバーモジュール610からWebブラウザー820への応答に設定され通知される。以後、Webブラウザー820から認可サーバーモジュール600へのアクセスは上記のとおり、HTTPサーバーモジュール610による認証トークンの検証、認証処理、および認証トークンの認可サーバーモジュール610への通知が実行されるとして説明を省略する。
S1.9にて、認証トークンを含む認可要求を受け付けた認可サーバーモジュール600は、S1.10にて、受信した認可要求のうち、クライアントIDとリダイレクトURLの組が正しいか検証する。より具体的には、クライアント管理テーブル1300に登録されているクライアントID1301とリダイレクトURL1304の組が一致するか検証する。不一致の場合、認可サーバーモジュール600は不図示のエラー画面を、HTTPサーバーモジュール610を介してWebブラウザー820に応答する。一致した場合、認可サーバーモジュール600はS1.11にてAPI上限検証処理を実行する。この際、HTTPサーバーモジュール610から通知された認証トークンから取得したユーザーID、および、認可要求として受信したクライアントIDを用いて処理を実行する。API上限検証処理の詳細については後述する。
API上限検証処理の結果が[拒否応答]である場合は、認可サーバーモジュール600はS2.11、S2.12にて、Webブラウザー820を介して連携サーバーモジュール800に対して権限エラーを応答する。より具体的には、認可要求時に取得したリダイレクトURLに対してWebブラウザー820をリダイレクトするようWebブラウザー820にリダイレクト応答する。S2.13にて連携サーバーモジュール800は図8cに例示した権限エラー画面をWebブラウザー820に応答し、処理を終了する。なお、図8cに示した画面は一例であり、例えば、連携サーバーモジュール800がエラー応答の内容を認識できるのであれば、権限に関するエラー内容のみを表示する画面、またはAPIの利用数の上限に達したことを通知する画面のように切り替えて表示しても良い。ここまでの一連の処理により、APIの利用数が既に上限に達していた場合に、連携サーバーモジュール800からリソースサーバーモジュール700へのアクセスをすることなく、処理を終了する事ができる。結果的に、リソースサーバーモジュール700の負荷を軽減する事ができる。
次に、API上限検証処理の結果が[許可応答]である場合は、認可サーバーモジュール600はS2.1にて、Webブラウザー820に対して認可確認画面を応答する。図8bは応答される認可確認画面である。認可確認画面3100は、認可要求に含まれるクライアントIDをキーとしてクライアント管理テーブル1300から取得したクライアント名1305を表示する領域であるアクセス元表示領域3101を備える。また、認可確認画面3100は、ユーザーが上記情報の内容について認可操作を実行する許可ボタン3102、および拒否を実行する拒否ボタン3103を備える。ここで、ユーザーが拒否ボタン3103を押下した場合は、認可サーバーモジュール600は、API上限検証処理の結果が[拒否応答]であった場合と同様にS2.11、S2.12にて連携サーバーモジュール800に権限エラーを応答する。なお、これら権限エラー応答については、応答を受け付ける連携サーバーモジュール800にて表示する画面の構成、もしくは文言を変更するために、エラー応答の内容を区別可能に構成する事も可能である。
S2.2にてユーザーが認可確認画面3100にて、許可ボタン3102を押下、つまりユーザーのリソースサーバー300が提供するサービスにおける権限を、連携サーバー400に委譲することを許可する認可操作を行った場合、Webブラウザー820を介し、S2.3にて認可サーバーモジュール600に認可した事が通知される。
S2.4にて認可サーバーモジュール600は、認可コードを発行する。より具体的には、認可トークンIDを発行し、認可要求に含まれるクライアントID、許可を得たユーザーのユーザーIDを認可トークン管理テーブル1400に登録する。その際、トークン種別1402は認可コードとし、有効期限1403に当該認可コードが有効である日時を登録する。そして、S2.5、S2.6にて認可サーバーモジュール600は発行した認可コードの認可トークンIDを付与してWebブラウザー820を介し、連携サーバーモジュール800に認可を応答する。より具体的には、認可要求時に取得したリダイレクトURLに対してWebブラウザー820をリダイレクトするようWebブラウザー820にリダイレクト応答する。
S2.7にて連携サーバーモジュール800は、認可サーバーモジュール600に対して認可トークンを要求する。この認可トークン要求には、少なくとも、取得した認可コード、クライアントID、シークレット、および認可要求時に送信したリダイレクトURLが含まれる。
S2.8にて認可サーバーモジュール600は取得したクライアントID、シークレットの組をもってクライアントを認証する。より具体的には、クライアント管理テーブル1300のクライアントID1301、シークレット1302の組と一致するかを検証する事で認証する。ここでクライアント認証に失敗した場合は連携サーバーモジュール800に認証エラーを応答する。クライアント認証に成功した場合、S2.9にて認可サーバーモジュール600は、取得した認可コードを検証する。認可コードの検証としては、取得した認可コードの認可トークンIDが認可トークン管理テーブル1400に登録されているか否かを検証する。登録されている場合、認可サーバーモジュール600は有効期限1403の範囲内か否かを検証する。さらには、認可トークン要求にて取得したリダイレクトURLが、認可トークンIDに紐づくクライアントID1404をキーとしてクライアント管理テーブル1300に登録されているリダイレクトURL1304と一致するかを検証する。認可コード検証の結果が無効であった場合、認可サーバーモジュール600は連携サーバーモジュール800にトークン不正エラーを応答する。そして、認可コード検証の結果が有効であった場合、認可サーバーモジュール600はS2.10にてAPI上限検証処理を実行する。この際、認可コードに紐づくユーザーID、および、認証したクライアントIDを用いて処理を実行する。API上限検証処理の詳細については後述する。API上限検証処理の結果が[拒否応答]である場合は、認可サーバーモジュール600はS3.9にて、連携サーバーモジュール800に対して権限エラーを応答する。S3.10にて連携サーバーモジュール800は図8cに例示した権限エラー画面をWebブラウザー820に応答し、処理を終了する。
ここまでの一連の処理により、APIの利用数が既に上限に達していた場合に、連携サーバーモジュール800からリソースサーバーモジュール700へのアクセスをすることなく、処理を終了する事ができる。結果的に、リソースサーバーモジュール700の負荷を軽減する事ができる。
次に、API上限検証処理の結果が[許可応答]である場合は、S3.1にて認可サーバーモジュール600は認可トークンを発行する。より具体的には、認可トークンIDを発行し、認可コードに紐づくユーザーID、および認証したクライアントIDを認可トークン管理テーブル1400に登録する。その際、トークン種別1402は認可トークンとし、有効期限1403に当該認可トークンが有効である日時を登録する。
そして、S3.2にて、認可サーバーモジュール600は発行した認可トークンの認可トークンIDを連携サーバーモジュール800に応答する。その際、認可トークンの有効期限を応答するよう構成する事もできる。本実施例では、OAuth2.0に規定された、認可トークンを更新するためのリフレッシュトークンを発行しない例で説明したが、認可トークン管理テーブル1400にて、リフレッシュトークンのID、および有効期限を管理するよう構成する事もできる。その際、認可トークン発行時に同時にリフレッシュトークンも発行し、認可トークンの応答時に発行したリフレッシュトークンのIDも含めて応答するよう構成する事もできる。
認可トークンを取得した連携サーバーモジュール800は、S3.3にてリソースサーバーモジュール700が公開するAPIに対してリソース要求を行う。リソース要求を受け付けたリソースサーバーモジュール700は、S3.4にて認可トークン検証要求を認可サーバーモジュール600に行う。この認可トークン検証要求には、検証対象となる認可トークンの認可トークンIDを含む。
S3.5にて、認可サーバーモジュール600は、リソースサーバーモジュール700より受けた認可トークンの検証を行う。認可サーバーモジュール600は、取得した認可トークンIDを基に認可トークンの情報を取得する。より具体的には、認可トークン管理テーブル1400から、認可トークンID、およびトークン種別が[認可トークン]に一致するデータ特定し、有効期限1403を取得する。そして、認可トークンが存在しているか、つまり、認可トークン管理テーブル1400に存在するかの検証、および、有効期限内であるかを検証する。
認可サーバーモジュール600は、認可トークン検証の結果、存在しない場合、もしくは存在するが有効期限内でない場合は認可トークンが[無効]と判断し、S3.8にてリソースサーバーモジュール700に[拒否応答]を通知する。認可トークン検証要求の結果が[拒否応答]である場合は、リソースサーバーモジュール700はS4.4にて、連携サーバーモジュール800に対してエラーを応答する。S4.5にて連携サーバーモジュール800は図8cに例示した権限エラー画面をWebブラウザー820に応答し、処理を終了する。
認可サーバーモジュール600は、認可トークンの検証の結果、認可トークンが存在し、かつ有効期限内である場合は認可トークンが[有効]と判断し、S3.6にてAPI上限検証処理を実行する。この際、認可トークンに紐づくユーザーID、およびクライアントIDを用いて処理を実行する。API上限検証処理の詳細については後述する。
API上限検証処理の結果が[拒否応答]である場合は、S3.8にてリソースサーバーモジュール700に[拒否応答]を通知する。認可トークン検証要求の結果が[拒否応答]である場合は、リソースサーバーモジュール700はS4.4にて、連携サーバーモジュール800に対してエラーを応答する。S4.5にて連携サーバーモジュール800は図8cに例示した権限エラー画面をWebブラウザー820に応答し、処理を終了する。
API上限検証処理の結果が[許可応答]である場合は、S3.7にて認可サーバーモジュール600はAPIの呼び出し回数の加算処理を実行する。より具体的には、後述するAPI上限検証処理が通常上限処理であった場合は、取得した認可トークンIDを基に認可トークン管理テーブル1400からクライアントID1404を取得する。そして、取得したクライアントIDが、API利用数上限管理テーブル1500のクライアントID1501に一致するデータの期間あたりのコール数1506を1回分加算する。
また、後述するAPI上限検証処理が個別上限検証処理であった場合は、取得した認可トークンIDを基に、認可トークン管理テーブル1400からクライアントID1404、およびユーザーID1405を取得する。さらに、取得したユーザーIDを基に、ユーザー管理テーブル1200からテナントID1203を取得する。そして、取得したクライアントID、およびテナントIDが、テナント個別許可設定管理テーブル1800のクライアントID1801、および許可テナントID1802の組に一致するデータの期間あたりのコール数1804を1回分加算する。そして、S3.8 にて認可サーバーモジュール600はリソースサーバーモジュール700に[許可応答]を通知する。認可トークン検証要求の結果が[許可応答]である場合は、リソースサーバーモジュール700はS4.1にて、公開しているAPIの機能に従ったリソース取得処理を実行し、取得したリソースをS4.2にて連携サーバーモジュール800に応答する。S4.3にて連携サーバーモジュール800は不図示の連携画面をWebブラウザー820に応答し、処理を終了する。以上が、連携サーバーモジュール800が、リソースサーバーモジュール700が公開するAPIを利用するまでの説明である。
ここで、S1.11、S2.10にて、API利用数の上限検証を実施する事による効果について詳細を説明する。例えば、API利用数が上限に達しているかを検証するタイミングは、S1.11、S2.10、S3.3、S3.6の4か所で行う事が考えられる。まず、S3.3で行う場合、つまりリソースサーバーモジュール700が独自でAPI利用数の上限を検証するケースでは、リソースサーバーモジュール700で受けつけるAPIの詳細な処理情報を用いて上限管理が可能となる。つまり、OAuth2.0の範疇で授受される粒度より詳細に上限管理を行う事ができるというメリットがある。一方、本発明の目的である、リソースサーバー300の負荷軽減という観点では、リソースサーバーモジュール700にて、独自にAPI利用数の上限を管理するモジュールの構成および、検証を実施する必要があり、逆に、かかる負荷が増加する事が予想される。さらに、リソースサーバー300が複数存在し、それぞれ違うサービスを展開しAPIを公開している構成では、それぞれのリソースサーバー300にてAPI利用数の上限を管理するモジュールを構成する必要があり非効率である。さらには、クライアントからの観点では、利用するリソースサーバー300のAPI毎にAPI利用数の上限管理方法が違う事が発生しうるため、クライアント側の処理制御が複雑になってしまう可能性がある。
次に、S3.6のみで行う場合、つまり、リソースサーバーモジュール700が、認可サーバーモジュール600に対して、API利用数が上限に達しているかを検証するケースである。本ケースでは、例えば、リソースサーバー300が複数存在し、それぞれ違うサービスを展開しAPIを公開していたとしても、統一的なAPI利用数の上限管理方法を実現する事が可能となる。結果、クライアントからの観点にて、クライアント側の処理制御が容易になる。一方、本発明の目的である、リソースサーバー300の負荷軽減という観点では、上述の通り、API利用数が上限に達していた場合においても、リソースサーバーモジュール700は、S3.3からS3.8の処理を実行しなければならず、完全に負荷が軽減されているとはいいがたい。特に、S3.3にてクライアントからリソース要求を受け付けるという事は、リソースサーバーモジュール700にてWAN100および、LAN101を介した通信を確立する必要があり、ネットワークリソースにかかる負荷が軽減できない。
S1.11、およびS2.10の認可トークンの発行を制限するケースについて説明する。本ケースでは、本発明の目的であるリソースサーバー300にかかる負荷軽減の効果はもっとも高いと考えられる。しかしながら、OAuth2.0における認可トークンは、有効期限内であれば、何度も再利用可能な構成が一般的である。これは、複数APIを連続実行する事で、一つのサービスが成立するようなケースでは有用であるが、API利用数の上限を管理するという面では、厳密に利用数をカウントできない、というデメリットが生じる。結果、APIの利用数の上限に達しているにもかかわらず、有効期限内の認可トークンを再利用されることによって、結果的に、リソースサーバー300にかかる負荷を制御できない、というデメリットが生じてしまう。
結果、本発明では、S3.6の検証処理のタイミングでAPI利用数の上限管理する方法に合わせて、S1.11、およびS2.10の認可トークンの発行処理のタイミングで認可トークンの発行を制限することを同時実現することで、リソースサーバー300にかかる負荷を制御するという目的に対しより格別な効果が発揮できる構成としている。
次に、認可サーバーモジュール600にて処理される上限検証処理について図9、図10、図11を用いて説明する。図9は認可サーバーモジュール600にて行われるAPI上限検証処理のフローチャートである。本フローは図7を用いて説明した処理の内、S1.11、S2.10、S3.6にて呼び出され処理される。S5.1にてAPI上限検証処理の依頼を受けた認可サーバーモジュール600は、S5.2 にて依頼に合わせて通知されたクライアントID、ユーザーIDを取得する。次に、S5.3にてAPI利用数上限管理テーブル1500から、取得したクライアントIDの上限時モード1505を取得する。
S5.4にて認可サーバーモジュール600は、取得した上限時モード1505が[超過分後払い]だった場合は、S5.5にて[許可応答]を応答し処理を終了する。その際、上限検証処理の種別は通常上限検証処理として応答する。S5.4にて認可サーバーモジュール600は、取得した上限時モード1505が[拒否]だった場合は、S5.6にてテナント個別設定管理テーブル1600から、取得したクライアントIDのテナント個別拒否設定1602、テナント個別許可設定1603を取得する。
S5.7にて認可サーバーモジュール600は、取得したテナント個別拒否設定1602、テナント個別許可設定1603が共に[設定しない]だった場合は、S5.8にて通常上限検証処理を実行する。通常上限検証処理の詳細については後述する。S5.7にて認可サーバーモジュール600は、取得したテナント個別拒否設定1602、テナント個別許可設定1603が、少なくともどちらかが[設定する]だった場合は、S5.9にて取得したユーザーIDからテナントIDを取得する。より詳細には、ユーザー管理テーブル1200から、ユーザーIDをキーとしてテナントID1203を取得する。ここで取得したテナントIDとは、OAuth2.0としては、クライアントに対して権限委譲した、つまり権限委譲元のユーザーが所属するテナントを識別するための情報となる。
次に、S5.8にて認可サーバーモジュール600は、取得したテナント個別拒否設定1602が[設定しない]であればS5.13に処理を移動する。取得したテナント個別拒否設定1602が[設定する]であればS5.11にて取得したテナントIDのテナントが拒否対象であるか否かを確認する。より具体的には、取得したクライアントID、テナントIDの組がテナント個別拒否設定管理テーブル1700に登録されているかを確認する。登録されている場合は、拒否テナントとして、S5.12にて[拒否応答]を応答し処理を終了する。登録されていない場合は、S5.13に処理を移動する。
S5.13にて、認可サーバーモジュール600は取得したテナント個別許可設定1603が[設定しない]であればS5.8にて通常上限検証処理を実行する。通常上限検証処理の詳細については後述する。取得したテナント個別許可設定1603が[設定する]であれば、S5.14にて取得したテナントIDのテナントが個別設定の対象であるかを確認する。より具体的には、取得したクライアントID、テナントIDの組がテナント個別許可設定テーブル1800に登録されているか、を確認する。登録されていない場合はS5.8にて通常上限検証処理を実行する。通常上限検証処理の詳細については後述する。登録されている場合はS5.15にて個別上限検証処理を実行する。個別上限検証処理の詳細については後述する。
図10は認可サーバーモジュール600にて行われる通常上限検証処理のフローチャートである。本フローは図9を用いて説明した処理の内、S5.8にて呼び出され処理される。
S6.1にて認可サーバーモジュール600は、取得したクライアントIDにてAPI利用数上限管理テーブル1500から上限値1502、期間あたりのコール数1506を取得する。そして、S6.2にて、期間あたりのコール数1506の回数が、上限値1502の回数以下であるかを確認する。上限値1502の回数を上回る場合は、S6.3にて[拒否応答]を応答し処理を終了する。上限値1502の回数以下である場合は、S6.4にて[許可応答]を応答し処理を終了する。その際、上限検証処理の種別は通常上限検証処理として応答する。
図11は認可サーバーモジュール600にて行われる個別上限検証処理のフローチャートである。本フローは図9を用いて説明した処理の内、S5.15にて呼び出される処理である。
S7.1にて認可サーバーモジュール600は、取得したクライアントID、テナントIDにてテナント個別許可設定管理テーブル1800から上限値1803、期間あたりのコール数1804を取得する。そして、S7.2にて、期間あたりのコール数1804の回数が、上限値1803の回数以下であるかを確認する。上限値1803の回数を上回る場合は、S7.3にて[拒否応答]を応答し処理を終了する。上限値1803の回数以下である場合は、S7.4にて[許可応答]を応答し処理を終了する。その際、上限検証処理の種別は個別上限検証処理として応答する。
以上が、認可サーバーモジュール600にて処理される上限検証処理の説明である。これら処理、特にテナント個別許可設定および、個別上限検証処理によってOAuth2.0の権限委譲元のユーザーが所属するテナントごとにAPI利用数の上限を管理する事が可能となる。つまり、クライアントからAPI利用された場合に、API利用数について権限委譲元のテナント間の偏りを解消する事ができる。
図9で説明した上限検証処理フローでは、S5.14にてテナント個別許可設定されていないテナントであった場合は、通常上限検証処理を実行するとして説明した。しかし、その処理フローでは、テナント個別許可設定していないテナントが複数存在した場合、その複数の許可外設定外のテナント間でAPI利用数の偏りが発生する課題が残る。
一方、連携サーバー400を用いてクラウドサービスを展開している事業者と、認可サーバー200、リソースサーバー300を用いてクラウドサービスを展開している事業者は、違う事業者である事が想定される。その場合、セキュリティや契約の関係上、連携サーバー400の管理者が、認可サーバー200にて管理しているユーザー管理テーブル1200に登録されている全てのテナントの情報を把握する事は困難である。また、ユーザー管理テーブル1200に登録されている全てのユーザーが連携サーバー400の利用者であるとは限らない。そのため、連携サーバー400の管理者が連携サーバー400からリソースサーバー300のAPIを利用する全てのユーザーの所属テナントを事前にテナント個別許可設定する事は難しい。
結果として、テナント個別許可設定していないテナント間でAPI利用数の偏りが発生する課題が発生する可能性がある。
そこで、上記課題を解決するための第2の実施形態について図12、図13および図14を用いて説明する。なお、第2の実施形態では、図6c、図9以外には差異が無いため説明を省略する。また、図6c、図9と同様の構成および、同じ処理を実施する箇所については同じ番号を付与し説明を省略する。
図12は、第2の実施形態の認可サーバー200がLAN101を介して通信可能に構成されたデータベースサーバー500の外部メモリに記憶するデータテーブルである。これらデータテーブルは、認可サーバー200の外部メモリに構成する事もできる。
図12はテナント個別詳細設定管理テーブル1900である。テナント個別詳細設定管理テーブル1900は、クライアントID1901、未登録テナントモード1902、自動設定値1903、設定上限値1905、および設定上限時モード1906から成る。これらテナント個別詳細設定管理テーブル1900の処理の詳細については後述する。
図13はテナント個別許可設定画面4000である。この画面は、連携サーバー400の管理者か、もしくは管理を委譲されているユーザーが利用するWebブラウザー820に表示される画面である。なお、本画面は図6aを用いて説明したAPI利用数上限管理画面2000にて、テナント個別許可設定ボタン2004を押下した場合に生成される画面である。テナント個別許可設定画面4000は、図6cを用いて説明したテナント個別許可設定画面2200に第2の実施形態の特徴を追加した画面となっている。なお、テナント個別許可設定画面2200と同様の構成については同じ番号を付与しており説明を省略する。
テナント個別許可設定画面4000は、テナント個別許可設定画面2200の構成に対して、詳細設定4001、設定ボタン4002を追加で構成している。設定ボタン4002は、詳細設定4001の各項目の選択状態を設定、反映するためのボタンである。設定ボタン4002が押下された場合、未登録テナントからの利用された場合の動作、未登録テナントを自動的に登録するか、および、自動登録時の各設定値が、Webブラウザー820から認可サーバーモジュール600に通知される。通知を受けた認可サーバーモジュール600は、特定したクライアントIDを用いてテナント個別詳細設定管理テーブル1900の各項目に反映する。より具体的には、テナント個別詳細設定管理テーブル1900において、特定したクライアントIDを元に、クライアントID1901、未登録テナントモード1902、自動設定値1903、設定上限値1905、および設定上限時モード1906に値を反映する。
図14は認可サーバーモジュール600にて行われるAPI上限検証処理のフローチャートである。本フローは図7を用いて説明した処理の内、S1.11、S2.10、S3.6にて呼び出され処理される。本フローは、図9を用いて説明したAPI上限検証処理フローに第2の実施形態の特徴を追加したフローとなっている。なお、図9のAPI上限検証処理フローと同様のフローについては同じ番号を付与しており説明を省略する。
認可サーバーモジュール600は、S5.14にて取得したテナントIDのテナントが個別設定の対象であるかを確認する。より具体的には、取得したクライアントID、テナントIDの組がテナント個別許可設定テーブル1800に登録されているかを確認する。登録されている場合はS5.15にて個別上限検証処理を実行する。登録されていない場合は、取得したクライアントIDを基に、S8.1にてテナント個別詳細設定テーブル1900の未登録テナントモード1902を確認する。未登録テナントモードが[拒否]の場合はS8.2にて[拒否応答]を応答し処理を終了する。未登録テナントモードが[許可]の場合は、S8.3にて取得したクライアントIDを基に、テナント個別詳細設定テーブル1900の自動登録1903を確認する。自動登録1903が[しない]の場合はS5.8にて通常上限検証処理を実行する。自動登録1903が[する]の場合はS8.4にて、取得したクライアントIDを元にテナント個別設定管理テーブル1600のテナント個別上限値合計1604、テナント個別詳細設定管理テーブル1900の自動設定値1904、および設定上限値1905を取得する。
認可サーバーモジュール600はS8.5にて、自動設定値1904とテナント個別上限値合計1604を加算した値が、設定上限値1905以下であるかを確認する。設定上限値1905の値以下である場合は、S8.6にてテナントを自動登録する。より具体的には、テナント個別許可設定管理テーブル1800に対して、取得したクライアントID、テナントID、および自動設定値1904を上限値として設定する。そして、S5.15にて個別上限検証処理を実行する。設定上限値1905を上回る場合は、S8.7にて、取得したクライアントIDを元に、テナント個別詳細設定テーブル1900の設定上限時モード1906を取得し、確認する。
認可サーバーモジュール600は、設定上限時モード1906が[拒否する]の場合は、S8.8にて[拒否応答]を応答し、処理を終了する。設定上限時モード1906が[許可する]の場合は、S5.8にて通常上限検証処理を実行する。
上記処理により、連携サーバー400の管理者が、テナント個別許可設定をしていないテナントからのAPI利用が来た場合の制御を設定可能となり、設定によっては、テナント個別許可設定していない複数のテナント間のAPI利用数の偏りを回避する事ができる。
(その他の実施例)
本願発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本願発明はクライアントとしてインターネット上のサービスを例に説明をした。しかしながら、端末に備えられたアプリケーションがクライアントであっても良い。
200 認可サーバー
300 リソースサーバー
400 連携サーバー
500 データベースサーバー
600 認可サーバーモジュール
700 リソースサーバーモジュール
800 連携サーバーモジュール
820 Webブラウザー

Claims (11)

  1. ネットワークを介して提供されるサービスの利用を制限する認可サーバーシステムであって、
    ユーザーの前記サービスを利用する権限をクライアントへ委譲することを許可する認可操作が行われたことに応じて認可情報を発行する認可処理手段と、
    前記認可処理手段により発行された認可情報を取得した前記クライアントが前記サービスを利用する際に送信する前記認可情報を検証し、当該検証の結果、前記クライアントに対し前記ユーザーの権限で前記サービスの利用を許可する検証処理手段と、
    前記サービスを利用するために前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断する判断手段と、
    前記判断手段により超えていると判断された場合、前記関数の利用を制限する制限手段と、を有し、
    前記判断手段は、前記認可処理手段により前記認可情報が発行される際と、前記検証処理手段により前記認可情報が検証される際の両方のタイミングにおいて、前記サービスを利用するために前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断することを特徴とする認可サーバーシステム。
  2. 前記ユーザーが属するグループを特定するグループIDと、前記関数の利用数の上限とを関連付けた情報を前記グループID毎に登録するテーブルを保持する保持手段を更に有し、
    前記判断手段は、前記クライアントが前記ユーザーの権限で前記サービスを利用する場合、前記ユーザーに対応する前記グループIDを特定し、特定された前記グループIDに対応する前記関数の利用数の上限に基づき前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断することを特徴とする請求項1に記載の認可サーバーシステム。
  3. 前記関数の利用の拒絶、および/または許可を前記グループID毎に設定するための管理画面を提供する提供手段を更に有し、
    前記画面を介し拒絶が指定されたグループIDに対応するユーザーの権限で前記クライアントがアクセスしてきた場合、エラー応答を行うことを特徴とする請求項2に記載の認可サーバーシステム。
  4. 前記提供手段は、前記管理画面を介し許可が指定されたグループIDに対し、当該グループIDに対して前記関数の利用数の上限を設定するための前記管理画面を提供し、
    前記保持手段が保持するテーブルには、前記管理画面を介し許可が指定されたグループIDと、前記管理画面において設定された前記関数の利用数の上限とが関連付けた情報が登録されていることを特徴とする請求項3に記載の認可サーバーシステム。
  5. 前記提供手段は、前記管理画面を介し拒絶、および許可の何れも指定されていない未登録のグループIDに対応するユーザーの権限で前記クライアントがアクセスしてきた場合に前記関数の利用を拒絶、または許可を設定するための前記管理画面を提供し、
    更に、前記提供手段は、未登録のグループIDに対応するユーザーの権限で前記クライアントがアクセスしてきた場合に、未登録テナントのグループIDを自動的に前記テーブルに登録するか否かの設定、および自動的に前記テーブルに登録する際に設定される前記関数の利用数の上限の設定をするための前記管理画面を提供することを特徴とする請求項3または4に記載の認可サーバーシステム。
  6. ネットワークを介して提供されるサービスの利用を制限する認可サーバーシステムを制御する制御方法であって、
    認可処理手段は、ユーザーの前記サービスを利用する権限をクライアントへ委譲することを許可する認可操作が行われたことに応じて認可情報を発行し、
    検証処理手段は、前記認可処理手段により発行された認可情報を取得した前記クライアントが前記サービスを利用する際に送信する前記認可情報を検証し、当該検証の結果、前記クライアントに対し前記ユーザーの権限で前記サービスの利用を許可し、
    判断手段は、前記サービスを利用するために前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断し、
    制限手段は、前記判断手段により超えていると判断された場合、前記関数の利用を制限し、
    更に、前記判断手段は、前記認可処理手段により前記認可情報が発行される際と、前記検証処理手段により前記認可情報が検証される際の両方のタイミングにおいて、前記サービスを利用するために前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断することを特徴とする制御方法。
  7. 保持手段は、前記ユーザーが属するグループを特定するグループIDと、前記関数の利用数の上限とを関連付けた情報を前記グループID毎に登録するテーブルを保持し、
    前記判断手段は、前記クライアントが前記ユーザーの前記サービスを利用する場合、前記ユーザーに対応する前記グループIDを特定し、特定された前記グループIDに対応する前記関数の利用数の上限に基づき前記クライアントが呼び出す関数の利用数が上限を超えているか否かを判断することを特徴とする請求項6に記載の制御方法。
  8. 提供手段は、前記関数の利用の拒絶、および/または許可を前記グループID毎に設定するための管理画面を提供し、
    前記画面を介し拒絶が指定されたグループIDに対応するユーザーの権限で前記クライアントがアクセスしてきた場合、エラー応答を行うことを特徴とする請求項7に記載の制御方法。
  9. 前記提供手段は、前記管理画面を介し許可が指定されたグループIDに対し、当該グループIDに対して前記関数の利用数の上限を設定するための前記管理画面を提供し、
    前記保持手段が保持するテーブルには、前記管理画面を介し許可が指定されたグループIDと、前記管理画面において設定された前記関数の利用数の上限とが関連付けた情報が登録されていることを特徴とする請求項8に記載の制御方法。
  10. 前記提供手段は、前記管理画面を介し拒絶、および許可の何れも指定されていない未登録のグループIDに対応するユーザーの権限で前記クライアントがアクセスしてきた場合に前記関数の利用を拒絶、または許可を設定するための前記管理画面を提供し、
    更に、前記提供手段は、未登録のグループIDに対応するユーザーの権限で前記クライアントがアクセスしてきた場合に、未登録テナントのグループIDを自動的に前記テーブルに登録するか否かの設定、および自動的に前記テーブルに登録する際に設定される前記関数の利用数の上限の設定をするための前記管理画面を提供することを特徴とする請求項8または9に記載の制御方法。
  11. 請求項6乃至10の何れか1項に記載の制御方法をコンピュータに実行させるためのプログラム。
JP2013233498A 2013-11-11 2013-11-11 認可サーバーシステム、その制御方法、およびそのプログラム。 Active JP6245949B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013233498A JP6245949B2 (ja) 2013-11-11 2013-11-11 認可サーバーシステム、その制御方法、およびそのプログラム。
US14/536,470 US20150135275A1 (en) 2013-11-11 2014-11-07 Authorization server system, control method therefor, and storage medium
DE102014222852.2A DE102014222852A1 (de) 2013-11-11 2014-11-10 Autorisierungsserversystem, Steuerverfahren dafür und Speichermedium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013233498A JP6245949B2 (ja) 2013-11-11 2013-11-11 認可サーバーシステム、その制御方法、およびそのプログラム。

Publications (2)

Publication Number Publication Date
JP2015095056A true JP2015095056A (ja) 2015-05-18
JP6245949B2 JP6245949B2 (ja) 2017-12-13

Family

ID=53045018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013233498A Active JP6245949B2 (ja) 2013-11-11 2013-11-11 認可サーバーシステム、その制御方法、およびそのプログラム。

Country Status (3)

Country Link
US (1) US20150135275A1 (ja)
JP (1) JP6245949B2 (ja)
DE (1) DE102014222852A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017107396A (ja) * 2015-12-09 2017-06-15 キヤノン株式会社 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム
WO2019159894A1 (ja) * 2018-02-14 2019-08-22 日本電信電話株式会社 認証認可情報統合装置及び認証認可情報統合方法
US10412075B2 (en) 2016-11-18 2019-09-10 Canon Kabushiki Kaisha Authorization server, non-transitory computer-readable medium, and authority delegating system

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016085641A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム
US11038894B2 (en) * 2015-04-07 2021-06-15 Hewlett-Packard Development Company, L.P. Providing selective access to resources
JP2016224684A (ja) * 2015-05-29 2016-12-28 キヤノン株式会社 サーバーシステム、サーバーシステムの制御方法、およびプログラム
CN106469270A (zh) * 2015-08-17 2017-03-01 中国移动通信集团公司 一种应用权限的管理方法、设备及系统
US10567381B1 (en) 2015-12-17 2020-02-18 Amazon Technologies, Inc. Refresh token for credential renewal
US10412168B2 (en) 2016-02-17 2019-09-10 Latticework, Inc. Implementing a storage system using a personal user device and a data distribution device
US11128734B2 (en) * 2016-05-10 2021-09-21 Veniam, Inc. Configuring a communication system using analytics of a restful API in a network of moving things
KR101874384B1 (ko) 2016-05-11 2018-07-04 오라클 인터내셔날 코포레이션 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스
CN109088858B (zh) * 2018-07-13 2021-09-21 南京邮电大学 一种基于权限管理的医疗系统及方法
US11122048B2 (en) * 2018-09-26 2021-09-14 International Business Machines Corporation User profile access from engaging applications with privacy assurance associated with an API
US11151199B2 (en) * 2019-01-07 2021-10-19 EMC IP Holding Company LLC Query result overlap detection using unique identifiers
CN111881397B (zh) * 2020-06-15 2023-11-21 明博教育科技股份有限公司 一种给静态页面添加访问控制的方法及系统
JP2022133817A (ja) * 2021-03-02 2022-09-14 株式会社リコー 通信システム、通信管理方法、及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131751A (ja) * 2001-06-11 2003-05-09 Matsushita Electric Ind Co Ltd ライセンス管理サーバ、ライセンス管理システム及び利用制限制御方法
JP2011198064A (ja) * 2010-03-19 2011-10-06 Fuji Xerox Co Ltd プログラム、情報処理装置、および情報処理システム
JP2013109620A (ja) * 2011-11-22 2013-06-06 Nippon Telegr & Teleph Corp <Ntt> 情報システム及びその認証状態管理方法
JP2013196036A (ja) * 2012-03-15 2013-09-30 Fujitsu Ltd サービス要求装置、サービス要求方法およびサービス要求プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1430373A2 (en) * 2001-06-11 2004-06-23 Matsushita Electric Industrial Co., Ltd. License management server, license management system and usage restriction method
EP1788773A1 (en) * 2005-11-18 2007-05-23 Alcatel Lucent Method and apparatuses to request delivery of a media asset and to establish a token in advance
US20110283259A1 (en) * 2009-10-07 2011-11-17 Jeffrey Lawson Method and system for creating a platform application with multiple applets
JP5129313B2 (ja) * 2010-10-29 2013-01-30 株式会社東芝 アクセス認可装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131751A (ja) * 2001-06-11 2003-05-09 Matsushita Electric Ind Co Ltd ライセンス管理サーバ、ライセンス管理システム及び利用制限制御方法
JP2011198064A (ja) * 2010-03-19 2011-10-06 Fuji Xerox Co Ltd プログラム、情報処理装置、および情報処理システム
JP2013109620A (ja) * 2011-11-22 2013-06-06 Nippon Telegr & Teleph Corp <Ntt> 情報システム及びその認証状態管理方法
JP2013196036A (ja) * 2012-03-15 2013-09-30 Fujitsu Ltd サービス要求装置、サービス要求方法およびサービス要求プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017107396A (ja) * 2015-12-09 2017-06-15 キヤノン株式会社 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム
US10412075B2 (en) 2016-11-18 2019-09-10 Canon Kabushiki Kaisha Authorization server, non-transitory computer-readable medium, and authority delegating system
WO2019159894A1 (ja) * 2018-02-14 2019-08-22 日本電信電話株式会社 認証認可情報統合装置及び認証認可情報統合方法

Also Published As

Publication number Publication date
US20150135275A1 (en) 2015-05-14
DE102014222852A1 (de) 2015-05-28
JP6245949B2 (ja) 2017-12-13

Similar Documents

Publication Publication Date Title
JP6245949B2 (ja) 認可サーバーシステム、その制御方法、およびそのプログラム。
JP6265733B2 (ja) 権限管理サーバー及び権限管理方法
JP6198477B2 (ja) 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
US10084823B2 (en) Configurable adaptive access manager callouts
EP2689372B1 (en) User to user delegation service in a federated identity management environment
EP2540051B1 (en) Method for managing access to protected resources and delegating authority in a computer network
US9450963B2 (en) Multiple resource servers interacting with single OAuth server
US10116448B2 (en) Transaction authorization method and system
KR101137269B1 (ko) 리소스의 위임을 수행하는 방법 및 시스템
AU2018287526A1 (en) Systems and methods for dynamic flexible authentication in a cloud service
US10250609B2 (en) Privileged access to target services
CN110138718A (zh) 信息处理系统及其控制方法
EP3062254A1 (en) License management for device management system
JP5177505B2 (ja) シングルサインオンによるグループ内サービス認可方法と、その方法を用いたグループ内サービス提供システムと、それを構成する各サーバ
US9232078B1 (en) Method and system for data usage accounting across multiple communication networks
Dodanduwa et al. Trust-based identity sharing for token grants

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170921

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171114

R151 Written notification of patent or utility model registration

Ref document number: 6245949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151