[go: up one dir, main page]

JP2017107396A - 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム - Google Patents

権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム Download PDF

Info

Publication number
JP2017107396A
JP2017107396A JP2015240613A JP2015240613A JP2017107396A JP 2017107396 A JP2017107396 A JP 2017107396A JP 2015240613 A JP2015240613 A JP 2015240613A JP 2015240613 A JP2015240613 A JP 2015240613A JP 2017107396 A JP2017107396 A JP 2017107396A
Authority
JP
Japan
Prior art keywords
authorization
client
information
tenant
user
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
JP2015240613A
Other languages
English (en)
Other versions
JP6727799B2 (ja
JP2017107396A5 (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 JP2015240613A priority Critical patent/JP6727799B2/ja
Priority to US15/362,128 priority patent/US10375069B2/en
Publication of JP2017107396A publication Critical patent/JP2017107396A/ja
Publication of JP2017107396A5 publication Critical patent/JP2017107396A5/ja
Application granted granted Critical
Publication of JP6727799B2 publication Critical patent/JP6727799B2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】デバイスの利用者のテナントが変わった場合においても情報漏洩することなくサービスを利用できる権限委譲システムを提供する。【解決手段】デバイス500は、ベンダークライアント登録に応じて認可サーバ200から提供されたベンダークライアントIDとシークレットを基に、テナント専用クライアントを作成するユーザの権限がベンダークライアントに委譲されたことを示す認可トークンを取得する。デバイス500は、認可トークンを基に認可サーバ200にテナント専用クライアントを登録し、登録に応じて認可サーバ200から提供されたテナント専用クライアントIDとシークレットを基に、リソースサーバ300のサービスにおけるユーザの権限がテナント専用クライアントに委譲されたことを示すアプリケーション用認可トークンを取得する。デバイス500は、アプリケーション用認可トークンを基に、リソースサーバ300のサービスを利用する。【選択図】図1

Description

本発明は、権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラムに関する。
クラウドサービスは、一般的にWebサービスのAPI(Application Programming Interface)を公開しており、デバイスや他のクラウドサービスからAPIを介してサービスが提供する機能を利用する事ができる。このAPI利用における認証、認可のプロトコルとして、OAuth 2.0と呼ばれる標準プロトコルが策定されている。OAuth 2.0では、クライアントとなるデバイスや他のクラウドサービスと認可サーバとが連携することで認証および認可を行う。認証および認可を受けたクライアントは、認可サーバから認可トークンを取得し、その認可トークンを送信することでAPIを利用する。
OAuth 2.0では、認可プロトコルのフローをGrant Typeと呼んでいる。代表的なGrant Typeとして、ユーザがクライアントに権限を委譲するAuthorization Code Grantと、クライアントが自身のリソースにアクセスするためのClient Credentials Grantが定義されている。
デバイスは、ユースケースによってGrant Typeを使い分ける事が考えられる。例えば、デバイスのオーナーであるユーザが、デバイスを操作した事を契機にクラウドサービスと連携する場合は、Authorization Code Grantが選択される。一方、デバイスが備えるセンサーや機器における変化を検知し、クラウドサービスと連携する場合は、Client Credentials Grantが選択される。このように、OAuth 2.0を利用する事で、様々なユースケースに対応する事が可能である。
OAuth 2.0を利用するためには、事前に認可サーバに対してクライアントを登録し、クライアントを識別するためのクライアントIDと、認証するためのシークレットとを、クライアントとなるデバイスに登録しておく必要がある。特許文献1は、OAuth 2.0のためのクライアントを自動的に登録する権限委譲システムを開示している。特許文献1が開示する権限委譲システムでは、アプリケーションが保持しているX.509形式のクライアント証明書を利用する事で、認可サーバに対して動的にクライアントが登録される。そして、自動的に取得されたクライアントIDおよびシークレットを利用する事で、OAuth 2.0の各種プロトコルを利用することが可能となる。
特開2015−5202号公報
従来の権限委譲システムでは、クラウドサービスに登録されたクライアントが、どのテナントのクライアントなのかが特定される仕組みがなかった。したがって、デバイスから送信されるデータに含まれる、個人のプライバシーに関する情報や機密情報が、他のテナントやクラウドサービスを提供するベンダーに漏洩するリスクがある。
本発明は、デバイスの利用者のテナントが変わった場合においても情報漏洩することなくサービスを利用できる権限委譲システムの提供を目的とする。
本発明の一実施形態の権限委譲システムは、情報処理装置と、ネットワークを介してサービスを提供するサービス提供装置と、認可サーバとを含み、前記情報処理装置をクライアントとして前記認可サーバに登録する権限委譲システムである。前記情報処理装置は、前記認可サーバへの第1のクライアントの登録に応じて前記認可サーバから提供された第1の認証情報を基に、第2のクライアントを作成するユーザの権限が前記第1のクライアントへ委譲されたことを示す第1の認可情報の取得要求をする第1の取得要求手段と、前記第1の取得要求手段による前記取得要求によって前記第1の認可情報が取得されたことに応じて、前記認可サーバへの前記第2のクライアントの登録要求をする登録要求手段と、を有する。前記認可サーバは、前記登録要求とともに送信された前記第1の認可情報を基に前記ユーザのテナントを特定し、特定された前記テナントと新たに登録する前記第2のクライアントとを紐付けて管理する管理手段と、前記テナントと紐付けて管理される前記第2のクライアントに対応する第2の認証情報を発行する発行手段と、を有する。さらに、前記情報処理装置は、前記登録要求による前記第2のクライアントの登録に応じて前記認可サーバから提供された前記第2の認証情報を基に、特定の権限が前記第2のクライアントに委譲されたことを示す第2の認可情報の取得要求をする第2の取得要求手段と、前記第2の取得要求手段による前記取得要求によって取得された前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する利用手段とを有する。また、前記サービス提供装置は、前記第2の認可情報を基に特定された前記テナントを確認し、サービスの提供に関するデータを確認された前記テナントに紐付けて保存する保存手段を有する。
本発明の権限委譲システムによれば、デバイスの利用者のテナントが変わった場合においても情報漏洩することなくサービスを利用できる。
権限委譲システムの構成を示す図である。 認可サーバ、リソースサーバ、端末、およびデバイスのハードウェア構成を示す図である。 認可サーバ、リソースサーバ、デバイスの機能ブロック図の一例である。 クライアント登録処理を説明する図である。 ログイン画面とデバイス登録画面の一例を示す図である。 リソースサーバモジュールのAPIを呼び出す処理を説明する図である。 権限委譲の開始が行われた場合の処理を説明する図である。 認可確認画面の一例である。 リソースサーバモジュールのAPIを呼び出す処理を説明する図である。 認可トークンを用いた処理を説明する図である。 第一、第二、第三の方式を使い分ける判断処理を説明する図である。 第一、第二、第三の方式を使い分ける判断処理を説明する図である。
まず、クライアントの登録方式として複数の方式を説明し、各方式の課題を説明後、それら課題を解決する本実施形態の権限委譲システムを説明する。
前述のとおり、OAuth 2.0では、複数のGrant Typeが定義されている。本実施形態では、Client Credentials Grantを用いた方式として2種の方式、およびAuthorization Code Grantを用いた方式について説明する。
第一の方式は、Client Credentials Grantを用いた2種の方式のうちの1種目の方式である。この方式は、デバイスを識別する情報として、クライアントIDだけでなく、クライアントの機体ごとに個体識別可能に付与されている機体番号(以後、デバイスシリアルIDと呼称する)を用いる事で、各テナントと紐づける方式である。第一の方式では、クラウドサービス側でデバイスとテナントを紐づけるので、デバイス側でユーザの特別な操作を必要としないメリットがある。一方、第一の方式では、デバイスシリアルIDが変わらないまま当該デバイスがリサイクルされ、別のテナントのユーザに利用された場合に、情報漏えいのリスクがある。第一の方式の詳細については後述する。
第二の方式は、Authorization Code Grantを用いた方式である。第二の方式は、デバイスを特定のテナントと紐づけるために、Authorization Code Grantで権限委譲したユーザの情報を用いる。第二の方式では、デバイス内にユーザから権限委譲された事を示すトークンを保持し、そのトークンを利用する事でクラウドサービスを利用する。第二の方式では、デバイス内で保持しているトークンを削除する事によって、デバイスとテナントの紐づけが解消されるので、デバイスのリサイクルによる情報漏えいのリスクを下げる事が可能である。一方、第二の方式は、デバイスが権限委譲を実施したユーザ個人に紐づくので、ユーザに対する権限の剥奪や、ユーザ情報がクラウドサービス側で削除される事によりトークンが利用できなくなるデメリットが存在する。第二の方式の詳細については後述する。
第三の方式は、Client Credentials Grantを用いた2種目の方式である。第三の方式は、本実施形態における、最も特徴的な方式である。第三の方式は、Client Credentials Grantを用いるためのクライアントID、シークレットを、Authorization Code Grantを利用して動的に発行することに特徴がある。第三の方式は、第一、第二の方式のデメリットがないため、最も情報の漏洩リスクが低い方式である。第三の方式の詳細については、後述する。なお、これら第一、第二、第三の方式は、排他的にどれか一つの方式のみが実施可能に構成されるわけではなく、デバイスにおけるユースケースによって使い分ける、つまり、全ての方式が実現可能に構成する事が可能である。
次に、本明細書において用いる用語の定義について説明する。
Webサービスとは、サーバ上で起動するソフトウェアがクライアントからの要求に従い実行されることでそのクライアントに対して提供される機能である。なお、WebサービスのソフトウェアであるWebアプリケーションのこともWebサービスと呼ぶ場合もある。本実施形態においては、クラウドサービスとして、リソースサーバが提供するWebサービスがあり、ユーザは、デバイスを介してリソースサーバが提供するWebサービスを利用していることを想定する。もちろん、この想定は、本実施形態を説明する上での想定であり、リソースサーバおよびデバイスは、各々単数で構成される事を限定しているわけではない。例えば、複数台から構成されたサーバ群がサービスを提供していても良い。
図1は、本実施形態の権限委譲システムの構成を示す図である。
WAN100は、Wide Area Networkである。すなわち、本実施形態では、World Wide Web(WWW)システムが構築されている。LAN101は各構成要素を接続するLocal Area Networkである。
認可サーバ200は、OAuth 2.0を実現するための認可処理を行う。リソースサーバ300は、ネットワーク(LAN101,WAN100)を介してサービスを提供するサービス提供サーバとして機能する。端末400は、ユーザが操作する装置である。端末400は、Webブラウザ410を備える。
デバイス500は、例えば、プリンタやスマートフォンと呼ばれる携帯端末等である。
デバイス500は、ネットワークを介してクライアントとして認可サーバ200に登録され、リソースサーバ300が提供するサービスを利用する。サービスの利用例として、デバイス500は、データをリソースサーバ300に送信してアップロードする。デバイス500は、Webブラウザ510等、各種モジュールを備える。ユーザは、Webブラウザ410、もしくは510(図3(B))を用いて、認可サーバ200と通信する。
認可サーバ200とリソースサーバ300とは、LAN101を介して接続されている。また、認可サーバ200、リソースサーバ300、端末400、およびデバイス500は、それぞれWAN100を介して通信可能に接続されている。また、認可サーバ200、リソースサーバ300は、不図示のデータベースサーバとLAN101を介して接続しており、各サーバモジュールが利用するデータを格納するよう構成してもよい。さらに、リソースサーバ300、認可サーバ200は、同一のサーバ上に構成されていてもよい。また、認可サーバ200およびリソースサーバ300は、WAN100を介して接続するように構成する事もできる。
図2は、認可サーバ、リソースサーバ、端末、およびデバイスのハードウェア構成を示す図である。
本実施形態の各サーバおよび端末、デバイスには、一般的な情報処理装置のハードウェア構成を適用できる。さらに、各サーバについては、IaaS(Infrastructure as a Service)として提供される情報処理装置の仮想的なハードウェア構成を適用することもできる。
図2において、CPU(Central Processing Unit)2001は、ROM2003が有するプログラム用ROMに記憶されたOSやアプリケーション等のプログラムを実行し、システムバス2004に接続される各ブロックを制御する。また、CPU2001は、ハードディスク(HD)等の外部メモリ2011からRAM2002にロードされたプログラムを実行し、各ブロックを制御する。OSとは、コンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各シーケンスの処理は、CPU2001によるプログラムの実行により実現できる。なお、ROMは、Read Only Memoryの略称であり、RAMは、Random Access Memoryの略称である。
RAM2002は、CPU2001の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)2005は、キーボード2009や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)2006は、CRTディスプレイ2010の表示を制御する。ディスクコントローラ(DKC)2007は、各種データを記憶するハードディスク(HD)等の外部メモリ2011におけるデータアクセスを制御する。ネットワークコントローラ(NC)2008は、WAN100、LAN101を介して接続された他の機器との通信制御処理を実行する。
IaaSとして提供される仮想的な情報処理を想定する場合においては、KBC2005、CRTC2006等は設けられず、NC2008を介して接続される端末に備えるキーボード2009や、CRTディスプレイ2010から操作されるよう構成される。後述の全ての説明において、特に断りのない限り、サーバや端末、およびデバイスにおける実行のハード上の主体は、CPU2001であり、ソフトウェア上の主体は、外部メモリ2011にインストールされたアプリケーションプログラムである。
図3は、認可サーバ、リソースサーバ、デバイスの機能ブロック図の一例である。
図3(A)は、認可サーバ200の構成を示す。認可サーバ200は、認可サーバモジュール210、HTTPサーバモジュール220を備える。HTTPサーバモジュール220は、WAN100を介して接続する端末400に設置されたWebブラウザ410、デバイス500に設置されたWebブラウザ510とのHTTP通信を行うためのモジュールである。また、HTTPサーバモジュール220は、SSL/TLSによる通信が可能に構成されており、不図示の証明書ストアを持つ。また、本実施形態では、HTTPサーバモジュール220は、後述するクライアント登録要求を受け付けた場合に、要求元に対してクライアント認証を要求する。
認可サーバモジュール210は、HTTPサーバモジュール220上で動作もしくはHTTPサーバモジュール220と連携して動作するWebアプリケーションである。認可サーバモジュール210は、HTTPサーバモジュール220を介して、Webブラウザ410、510からの要求を受け付け、処理し、応答する。また、本実施形態では、認可サーバモジュール210は、後述する認可要求を受け付けた場合に、要求元に対してユーザID、パスワードによるユーザ認証を要求する。以下の説明では、HTTPサーバモジュール220を介して認可サーバモジュール210がWebブラウザと通信する処理について、SSL/TLSの処理について説明が必要でない限り、Webブラウザと認可サーバモジュール210が通信すると記述する。
認可サーバモジュール210は、ユーザ認証を受け付け、要求元の認証に成功した場合、認証したユーザ情報を紐づけた認証トークンを生成し、Webブラウザ410、510に応答する。認証トークンは、ユーザが認証されてログインしていること、またはユーザが認証されているかを検証するためのトークンである。認証トークンの利用により、ユーザを識別する事が可能となる。後述の認可コードは認証トークンとは異なる。認可コードは、OAuth 2.0のAuthorization Code Grantにて、認証されたユーザによる認可操作対象のクライアントが、ユーザの権限をもって、ユーザに成り代わってアクセスする事を許可したことを示すトークンである。
また、認可トークンは、Authorization Code Grantの場合は、認可コードを用いて取得され、クライアントがクラウドサービスの公開APIを利用する際に送信される。認可トークンは、認可操作を行ったユーザの権限がクライアントに委譲されたことを示すトークンである。認可トークンは、認証トークンとは異なる。特に顕著なのは、認証トークンは、ユーザの確認を目的としているが、認可トークンは、権限の確認を目的としている点である。さらには、リフレッシュトークンは、同じく認可コードを用いて取得し、認可トークンを再発行することが可能であることを示すトークンである。なお、Client Credentials Grantの場合の認可トークンは、クライアント自身の権限を示すトークンである。
認可サーバモジュール210は、LAN101を介してリソースサーバモジュール310から認可トークン検証処理を受け付け、処理し、応答する。認可トークン検証処理は、RPC(Remote Procedure Call)として構成する事も可能である。また、認可トークン検証処理は、HTTPサーバモジュール220を介してLAN101内、もしくはWAN100を介して通信可能なWebサービスのAPIとして構成する事も可能である。
図3(B)は、リソースサーバ300の構成を示す。リソースサーバ300は、リソースサーバモジュール310を備える。リソースサーバモジュール310は、不図示のHTTPサーバモジュール上で動作するよう構成する事も可能である。リソースサーバモジュール310は、Webサービスとして公開するAPIを備えており、デバイス500からのリソース要求を受け付け、処理し、応答する。また、リソースサーバモジュール310は、認可サーバモジュール210に対して、LAN101もしくはWAN100を介して、後述の認可トークン検証処理を要求する。
図3(C)は、デバイス500の構成を示す。デバイス500が備えるCPU2001(図2)が、ROM2003または外部メモリ2011に記憶されたOSを実行する事で、各アプリケーションを制御する。
デバイス500は、Webブラウザ510、ログインアプリケーション520、アクセストークンプロバイダ530、リソースサーバ連携アプリケーション540を備える。Webブラウザ510は、WWWを利用するためのユーザエージェントである。
ログインアプリケーション520は、デバイスの利用者を認証するための機能を備える。ログインアプリケーション520は、ユーザからのユーザID、パスワードを受け付ける画面(不図示)を表示する。ログインアプリケーション520は、この画面を通じて入力されたユーザID、パスワードの組が、予めデバイス500に記憶されているデータと一致するか検証する。ログインアプリケーション520は、検証結果が正しい場合は、記憶されているユーザの情報を含むログインコンテキストを生成することで、各ユーザを認証する機能を備える。また、ログインアプリケーション520は、デバイス500に接続された不図示のICカードリーダーからICカード情報を取得し、デバイス500に記憶されているICカード情報の情報と合っているか検証する。
ログインアプリケーション520は、検証結果が正しい場合は、対応するユーザの情報を含むログインコンテキストを生成する事で、各ユーザを認証する機能を備えてもよい。また、ログインアプリケーション520が、WAN100によって通信可能に接続された不図示のシングルサインオンサーバと連携し、SAMLや、OpenID Connectといったシングルサインオンプロトコルによるユーザ認証を実現してもよい。
アクセストークンプロバイダ530は、WAN100を介して、認可サーバ200と連携し、後述するクライアントの登録や認可トークンの取得を行う。その際、アクセストークンプロバイダ530は、Webブラウザ510や、端末400のWebブラウザ410とも通信するよう構成されており、OAuth 2.0のAuthorization Code Grantを実行する。また、アクセストークンプロバイダ530は、後述のリソースサーバ連携アプリケーション540からのリクエストに応じて、取得した認可トークンを提供する事ができる。
また、アクセストークンプロバイダ530は、自身を証明するためのベンダーデフォルトクレデンシャルとして、X.509形式のクライアント証明書およびその秘密鍵を備える。そして、アクセストークンプロバイダ530が、クライアント証明書およびその秘密鍵を、認可サーバ200のHTTPサーバモジュール220との通信確立時に利用する事で、アクセストークンプロバイダ530が認証される。
リソースサーバ連携アプリケーション540は、アクセストークンプロバイダ530から取得した認可トークンを用いて、リソースサーバ300が公開するAPIを呼び出すように構成されている。また、リソースサーバ連携アプリケーション540は、デバイス500内での各種イベントの発生時に動作するよう構成されている。例えば、リソースサーバ連携アプリケーション540は、ユーザがログインアプリケーション520を利用してログインした場合や、デバイス500が備えるセンサーやアプリケーションが変化を検知した場合に動作する。デバイス500が、例えばプリンタである場合は、端末400からの印刷リクエストを受け付けた場合や、印刷が完了した際にイベントが発生し、リソースサーバ連携アプリケーション540が動作する。
図4は、第一、第二、第三の方式において共通に実施されるクライアント登録処理を説明する図である。
本シーケンスは、デバイス500から認可サーバモジュール210に対してクライアントを登録する処理を示す。本シーケンスで登録されたクライアントは、後述するテナント専用のクライアントと区別するために、以後、ベンダークライアントと呼称する。
S1.1において、デバイス500のアクセストークンプロバイダ530が、認可サーバ200のHTTPサーバモジュール220に対して、ベンダークライアント登録要求を行う。なお、アクセストークンプロバイダ530が、ベンダークライアント登録要求を行うタイミングは、本実施形態では、デバイス500にて、ユーザが当該アクセストークンプロバイダ530を初めて起動したタイミングとする。なお、他のタイミングとして、ユーザが、アクセストークンプロバイダ530の機能を選択し、リソースサーバ300へのリソース要求が発生するタイミングが考えられる。また、他のタイミングとして、アクセストークンプロバイダ530が、明示的に開始する操作を備え、ユーザがデバイス500にて当該操作をしたタイミングが考えられる。
なお、ベンダークライアント登録要求は、クライアント名、Authorization Code Grantを利用するためのリダイレクトURL、およびデバイス500を個体識別可能なデバイスシリアルIDを含む。また、ベンダークライアント登録要求が、その他の情報として、クライアントを説明するための文字列や、説明が記載されるサイトのURL等の付属情報を含むように構成する事もできる。なお、ベンダークライアント登録要求は、何れの装置のアクセストークンプロバイダ530に共通な情報が含まれており、テナントを含むユーザに関する情報が一切含まれていない。これは、アクセストークンプロバイダ530を起動した段階ではどのユーザのテナントにアクセストークンプロバイダ530が所属しているか不明なためである。これを解消するのが第二の方式および第三の方式である。第一の方式の場合、サービスの提供に関するデータはユーザのテナントに紐付くことはできない。
アクセストークンプロバイダ530からのベンダークライアント登録要求を受け付けたHTTPサーバモジュール220は、SSL/TLS通信のネゴシエーションを開始する。その際、ベンダークライアント登録要求に関してはクライアント認証を要求するよう設定されているため、アクセストークンプロバイダ530に対してベンダーデフォルトクレデンシャルによるクライアント認証を要求する。
S1.2において、HTTPサーバモジュール220が、不図示の証明書ストアにて設定されている証明書を用いて、取得したクライアント認証情報を検証し、アクセストークンプロバイダ530をデバイス登録の要求元として認証する。本実施形態では、ベンダークライアント登録要求の要求元の認証方法として、SSL/TSLのクライアント証明書による認証方式を用いる。認証方法として、Basic認証やDigest認証などの、ベンダーデフォルトクレデンシャルとしてIDおよびパスワードを用いてもよい。また、認証された主体に対してベンダークライアントを登録するための認可トークンを発行し、当該認可トークンを検証する事によってベンダークライアント登録を受け付けるよう構成する事も可能である。認証に失敗した場合、HTTPサーバモジュール220は、アクセストークンプロバイダ530に対してエラーを応答する。
S1.3において、HTTPサーバモジュール220が、アクセストークンプロバイダ530を認証した後に、認可サーバモジュール210に対して、アクセストークンプロバイダ530から受信したベンダークライアント登録要求を通知する。HTTPサーバモジュール220は、認証したアクセストークンプロバイダ530を識別する情報(取得したベンダーデフォルトクレデンシャルの情報)も通知する。
S1.4において、認可サーバモジュール210が、HTTPサーバモジュール220から認証情報として通知されたベンダーデフォルトクレデンシャルの情報を取得する。次に、S1.5において、認可サーバモジュール210が、取得したベンダーデフォルトクレデンシャルの情報に含まれる識別子をキーとして取得する。識別子は、例えば、X.509の証明書の場合は、発行者の識別子、主体の識別子、シリアル番号等である。認可サーバモジュール210は、これらキーおよびキーに対応するテナントIDが登録されている不図示の証明書管理テーブルを備える。
認可サーバモジュール210は、証明書管理テーブルから、キーに紐づくテナントIDを取得する。その際、ベンダーデフォルトクレデンシャルの開始日時、終了日時を有効期間として、検証するよう構成する事もできる。証明書管理テーブルに該当のレコードが無い場合や、有効期間の検証に失敗した場合、認可サーバモジュール210は、HTTPサーバモジュール220を介して、アクセストークンプロバイダ530にエラーを応答する。
S1.6において、認可サーバモジュール210が、ベンダークライアント登録要求によって取得した情報と、取得したテナントIDを基に、クライアント管理テーブルにベンダークライアントを新規登録する。具体的には、認可サーバモジュール210は、クライアントID、シークレットを発行し、それぞれクライアント管理テーブルに格納する。以後、ここで発行し登録したクライアントIDについては、後述するテナント専用のクライアントのクライアントIDと区別するために、ベンダークライアントIDと呼称する。
認可サーバモジュール210は、取得したクライアント名、リダイレクトURL、デバイスシリアルIDおよびテナントIDを、それぞれクライアント管理テーブルに格納する。その際、テナントIDとして、認可サーバ200を提供するベンダーを示すIDが付与される。
表1に、ベンダークライアントが新規登録された状態のクライアント管理テーブルの例を示す。
Figure 2017107396
なお、登録されたクライアントに対してデフォルトで設定すべき権限を、証明書管理テーブルに予め設定しておき、その設定に従って、S1.6で登録したベンダークライアントに対してデフォルトの権限を付与するよう構成する事もできる。クライアントの登録が完了した後に、S1.7において、認可サーバモジュール210が、発行したベンダークライアントIDとシークレットとを、HTTPサーバモジュール220を介してアクセストークンプロバイダ530に応答する。以上がベンダークライアントの登録処理の説明である。
次に、第一の方式、つまりClient Credentials Grantを用いた2種の方式のうちの1種について説明する。この方式は、デバイスを識別する情報として、クライアントIDだけでなくデバイスシリアルIDを用いる方式である。第一の方式では、まず、デバイスシリアルIDとテナントIDとを紐づける作業、つまり、デバイスのテナントへの登録作業が必要となる。デバイスを登録する方法としては、リソースサーバ300にてデバイスシリアルIDを入力する方法が考えられる。以下、デバイスの登録について詳細を説明する。なお、デバイスを登録するユーザは、デバイスの管理者か、もしくは管理を委譲されているユーザを想定しており、ユーザは、端末400またはデバイス500に設けられたWebブラウザ410、510を利用して作業する。
ユーザは、Webブラウザ410、510を利用して、リソースサーバモジュール310のデバイス登録画面へアクセスする。リソースサーバモジュール310は、Webブラウザ410、510からのアクセスを受けると、Webブラウザ410、510からの通知に、HTTP Cookieとして有効な認証トークンが含まれているか検証する。HTTP Cookieに認証トークンが含まれている場合、リソースサーバモジュール310は、認証トークンを認可サーバモジュール210に通知する。HTTP Cookieに認証トークンが含まれていない場合は、以下の処理を実行する。リソースサーバモジュール310は、Webブラウザ410、510に対し、認可サーバモジュール210が提供する、ユーザを認証するためのログイン画面に対してリダイレクトするよう応答する。
図5は、ログイン画面とデバイス登録画面の一例を示す図である。
図5(A)は、認可サーバモジュール210が生成する、ユーザがログインするためのログイン画面例である。この例では、ユーザは、ユーザIDおよびパスワードを入力し、それらの組が、後述する認可サーバモジュール210のユーザ管理テーブルに登録されている情報の組と一致する場合に認証が成功する。
図5(A)に示すログイン画面5000は、ユーザIDを入力するためのユーザID入力欄5001、パスワードを入力するためのパスワード入力欄5002、およびログイン操作を実行するためのログインボタン5003を有する。
ユーザは、Webブラウザ410、510に表示されたログイン画面5000上で必要な情報を入力し、ログインボタン5003を押下する。Webブラウザ410、510は、入力された情報を認可サーバモジュール210に送信する。認可サーバモジュール210は、ユーザID、パスワードを取得し、ユーザ管理テーブルのユーザID、パスワードの情報の組と比較し、一致するかを検証する事でユーザを認証する。表2に、認可サーバモジュール210が備えるユーザ管理テーブルの例を示す。
Figure 2017107396
本実施形態では、ユーザID「user@xx.com」、パスワード「user」が、ログイン画面5000に入力され、認可サーバモジュール210は、入力されたデータを検証し、認証する。なお、認可サーバモジュール210は、ユーザ認証に失敗、つまり、ユーザ管理テーブルに情報が登録されていない場合は、不図示の認証エラー画面をWebブラウザ410、510に応答する。
ユーザ認証に成功した場合、認可サーバモジュール210は、認証トークンを生成する。認証トークンは、認可サーバモジュール210の不揮発メモリ上に、ユーザIDと、ユーザIDに対応するUUIDとテナントIDとに対応付けて保存される。なお、UUIDとは、Universal Unique Identifierの略称であり、重複しないユニークなIDである。本実施形態では、認証トークンは、ユーザID「user@xx.com」、UUID「10000001」およびテナントID「1000AA」に対応付けて保存される。
認可サーバモジュール210は、認証トークンをWebブラウザ410、510に応答する。なお、認証トークンは、HTTP Cookieとして設定され、認可サーバモジュール210からWebブラウザ410、510への応答に設定され、通知される。その際、認可サーバモジュール210は、リソースサーバモジュール310のデバイス登録画面へリダイレクトするよう応答する。
リソースサーバモジュール310は、Webブラウザ410、510からのアクセスを受けると、Webブラウザ410、510からの通知に、HTTP Cookieとして有効な認証トークンが含まれているか検証する。HTTP Cookieに認証トークンが含まれている場合、リソースサーバモジュール310は、認証トークンを認可サーバモジュール210に通知する。認可サーバモジュール210は、受信した認証トークンが有効であるかを検証し、有効である場合は、認証トークンに紐づいた情報であるユーザID、UUID、テナントIDを応答する。この例では、ユーザID「user@xx.com」、UUID「10000001」および、テナントID「1000AA」が応答される。
認証トークンが無効、つまり認可サーバモジュール210の不揮発メモリ上に保存されていない場合は、その旨がリソースサーバモジュール310に応答される。以後、Webブラウザからリソースサーバモジュール310、認可サーバモジュール210へのアクセスの際には、認可サーバモジュール210による認証トークンの検証、認証処理、および認証トークンの認可サーバモジュール210での検証が実行される。
図5(B)は、リソースサーバモジュール310が生成するデバイスをテナントに登録するためのデバイス登録画面の一例である。デバイス登録画面は、デバイスの管理者か、もしくは管理を委譲されているユーザが利用するWebブラウザ410、510にて表示される。
デバイス登録画面5100は、登録するデバイスのデバイスシリアルIDを入力するためのデバイスシリアルID入力欄5101、デバイスを登録するための登録ボタン5102を備える。登録の処理については後述する。デバイス登録画面5100は、既に登録されている状態のデバイスの一覧を表示する、登録デバイス一覧5103を備える。表3は、リソースサーバモジュール310が管理するデバイス管理テーブルを示す。
Figure 2017107396
ユーザが、Webブラウザ410、510に表示されたデバイス登録画面5100のデバイスシリアルID入力欄5101に仮登録するデバイスのデバイスシリアルIDを入力する。本実施形態では、デバイスシリアルID「DS10000003」が入力されたものとする。次に、ユーザは、登録ボタン5102を押下する。登録ボタン5102を押下されると、Webブラウザ410、510が、リソースサーバモジュール310に対して、デバイスシリアルID「DS10000003」と、認証トークンとを送信する。リソースサーバモジュール310は、取得したデバイスシリアルIDがデバイス管理テーブルに登録されていないかを確認する。デバイスシリアルIDがデバイス管理テーブルに登録されていない場合は、リソースサーバモジュール310は、認証トークンに紐づいているテナントID「1000AA」と共に、デバイス管理テーブルにデータを格納する。表4は、デバイスシリアルID「DS10000003」のデバイスが登録された状態のデバイス管理テーブルを示す。
Figure 2017107396
以上の処理により、デバイスシリアルID「DS10000003」のデバイスがテナントID「1000AA」のデバイスに紐づけされる。
次に、デバイスシリアルIDとテナントIDとが紐づいた状態での、デバイス500からリソースサーバモジュール310へのAPI呼び出しについて説明する。まず、API呼び出しを実施する契機であるが、デバイス500が備えるセンサーや機器における変化を検知した事が契機となる。より具体的には、例えば、デバイス500がプリンタである場合は、API呼び出しを実施する契機は、リモートからの印刷要求をうけ、印刷が行われたときや、プリンタが印字するためのインクやトナーといった材料の残量が低下したとき等である。デバイス500が、スマートフォンである場合は、API呼び出しを実施する契機は、通話が行われたときである。デバイス500が、GPSを備える機器である場合は、API呼び出しを実施する契機は、特定の場所へ移動したとき等である。その他の契機として、デバイス500の利用者に関する生体認証の実施時や、心拍の変化等が発生した時等が考えられる。デバイス500は、デバイス500が備えるセンサーや機器における変化を検知した場合に、図6に示すシーケンスを実施する。
図6は、デバイスによる、リソースサーバモジュールのAPIを呼び出す処理を説明する図である。
S2.1において、デバイス500での変化を検知したことを契機として、リソースサーバ連携アプリケーション540が、アクセストークンプロバイダ530に対して、認可トークンを要求する。その際、リソースサーバ連携アプリケーション540は、リソースサーバモジュール310の公開するAPIに合わせたスコープ「API」を権限範囲として要求する。
S2.2において、アクセストークンプロバイダ530が、認可サーバモジュール210に対して認可トークン要求を行う。認可トークン要求には、ベンダークライアントID、シークレットおよびリソースサーバ連携アプリケーション540から取得したスコープ「API」が含まれる。
S2.3において、認可サーバモジュール210が、ベンダークライアントを認証する。より具体的には、認可サーバモジュール210が、取得したベンダークライアントIDとシークレットの組が、クライアント管理テーブルに登録されているか否かを検証する。ベンダークライアントIDとシークレットの組が、クライアント管理テーブルに登録されている場合に、ベンダークライアントの認証が成功する。続いて、S2.4において、認可サーバモジュール210が、認証したベンダークライアントに紐づく認可トークンを発行する。より具体的には、認可サーバモジュール210は、認可トークンIDを発行し、トークン管理テーブルにおいて、認可トークンIDに紐付けて、トークン種別「認可トークン」、のクライアントID(ベンダークライアントID)、スコープ「API」を管理する。表5に認可サーバモジュール210が備えるトークン管理テーブルを示す。
Figure 2017107396
また、前述した表1に示すクライアント管理テーブルにおいて、クライアントIDに紐付けて、テナントID「ベンダー」とデバイスシリアルIDが管理されている。したがって、認可サーバモジュールは、トークン管理テーブルとクライアント管理テーブルを介して、デバイス500とテナントとに紐付けて認可トークンを管理していることになる。
S2.5において、認可サーバモジュール210が、発行した認可トークンIDをアクセストークンプロバイダ530に応答する。S2.6において、アクセストークンプロバイダ530が、取得した認可トークンID、ベンダークライアントID、シークレット、リソースサーバ連携アプリケーション540から取得したアプリケーションID「APP0001」を用いて、以下の処理を行う。アクセストークンプロバイダ530は、認可サーバモジュール210に対してアプリケーション用認可トークン発行を要求する。その際、アクセストークンプロバイダ530は、リソースサーバ連携アプリケーション540から取得したスコープ「API」を要求する。アプリケーション用認可トークンは、認可トークンIDに対して紐づける情報としてアプリケーションIDが追加された認可トークンである。アクセストークンプロバイダ530は、認可トークンを要求してきたアプリケーションに対して、専用の認可トークンとしてアプリケーション用認可トークンを提供する。
S2.7において、認可サーバモジュール210が、S2.3における処理と同様に、ベンダークライアントを認証する。S2.8において、認可サーバモジュール210が、取得した認可トークンIDがトークン管理テーブルに登録されているか検証する。認可トークンIDがトークン管理テーブルに登録されている場合は、認可トークンの認証が成功する。
S2.9において、認可サーバモジュール210が、認証したベンダークライアントおよび取得したアプリケーションIDに紐づくアプリケーション用認可トークンを発行する。具体的には、認可サーバモジュール210は、認可トークンIDを発行する。そして、トークン管理テーブルにおいて、認可トークンIDに紐付けて、トークン種別「認可トークン」、クライアントID(ベンダークライアントID)、アプリケーションID「APP0001」、スコープ「API」を管理する。表6は、アプリケーション用認可トークンが発行された状態におけるトークン管理テーブルを示す。認可サーバモジュールは、表6のトークン管理テーブルと表1のクライアント管理テーブルを介して、デバイス500とテナントとに紐付けてアプリケーション用認可トークンを管理していることになる。
Figure 2017107396
S2.10において、認可サーバモジュール210が、発行したアプリケーション用認可トークンIDをアクセストークンプロバイダ530に応答する。続いて、S2.11において、アクセストークンプロバイダ530が、リソースサーバ連携アプリケーション540に対して、取得したアプリケーション用認可トークンIDを応答する。
S2.12において、リソースサーバ連携アプリケーション540が、取得したアプリケーション用認可トークンを用いて、リソースサーバモジュール310が公開するAPIを呼び出す。APIの呼び出しには、検知した変化の情報が含まれる。例えば、デバイス500がプリンタであり、印刷を契機としてAPIを呼び出す場合は、APIの呼び出しには、印刷された文書名や、印刷者、印刷した枚数、カラーかモノクロかを示す情報等が含まれる。
S2.13において、リソースサーバモジュール310が、認可サーバモジュール210に対して、取得したアプリケーション用認可トークンの検証を要求する。S2.14において、認可サーバモジュール210が、取得したアプリケーション用認可トークンが、トークン管理テーブルに登録されているかを検証する。アプリケーション用認可トークンがトークン管理テーブル登録されている場合は、認可サーバモジュール210は、以下の処理を実行する。認可サーバモジュール210は、トークン管理テーブルおよびクライアント管理テーブルを参照して、アプリケーション用認可トークンIDに紐づく情報として、ベンダークライアントID、デバイスシリアルID、およびテナントIDを応答する。
S2.15において、リソースサーバモジュール310が、デバイス登録APIに応じた処理として、取得したテナントIDを確認する。テナントIDが「ベンダー」を示す値であった場合に、リソースサーバモジュール310は、以下の処理を実施する。リソースサーバモジュール310は、取得したデバイスシリアルIDがデバイス管理テーブルに登録されているか確認する。登録されている場合は、デバイスシリアルIDに紐づいたテナントIDを取得する。そして、リソースサーバモジュール310は、API呼び出し時に受信した各種デバイス500で検出した情報を、デバイスシリアルIDに紐づいたテナントIDの情報として取り扱う。より具体的には、例えば、テナントIDに所属するユーザのみが参照可能な形式で不揮発メモリに記憶する。また、例えば、テナントIDに所属するユーザに対して、電子メールを送信する。どのような処理を行うかは、公開するAPI毎に定義される。続いて、S2.16において、リソースサーバモジュール310が、APIの応答をリソースサーバ連携アプリケーション540に返して、処理を終了する。以上、第一の方式による、デバイス500の情報をクラウドサービス、つまりリソースサーバモジュール310が公開するAPIへ通知する処理について説明した。
本実施形態では、デバイスシリアルIDとテナントIDとを、直接デバイスシリアルIDをリソースサーバモジュール310に登録することで紐付ける処理例を説明したが、デバイスシリアルIDとテナントIDとの紐付けを他の処理で実現してもよい。例えば、テナントID毎にデバイスを登録するためのキーを発番し、そのキーをデバイスに入力し、デバイスがリソースサーバモジュール310に自身のデバイスシリアルIDと共に通知する構成を採ってもよい。この構成の場合は、リソースサーバ300に、キーに紐づくテナントIDがデバイスシリアルIDと紐づけられて登録される。また、別途、不図示のデバイスシリアルIDを管理する管理サーバを設け、管理サーバがデバイスシリアルIDとテナントとの結びつき情報を管理し、リソースサーバモジュール310が通信してテナントの情報を取得するような構成も考えられる。
また、後述する第二の方式で用いるAuthorization Code Grantにて発行された認可トークンを利用して、デバイスシリアルIDとテナントIDを紐づける構成を採ってもよい。この構成を採る場合は、Authorization Code Grantによって権限委譲したユーザが所属するテナントのテナントIDと、権限委譲されたベンダークライアントに紐づくデバイスシリアルIDとが紐づけられる。
第一の方式では、デバイス500と、デバイス500を利用するユーザが所属するテナントとの紐づけを、デバイス500を識別するためのデバイスシリアルIDを用いている。そのため、以下の課題が発生する。デバイス500のユーザが、リサイクルにより別のテナントのユーザに変更されたとする。その際、リソースサーバモジュール310に対して通知が行われ、リソースサーバモジュール310が保存しているデバイス500からの通知データが削除されるのであれば問題ない。しかし、リソースサーバモジュール310に対して通知が無かった場合、新しいユーザがデバイス500を利用した場合のデータが、デバイスシリアルIDが紐づく旧ユーザのテナントIDに紐づいて保存されるリスクがある。その結果、新しいユーザに付随する機密情報や個人情報が別のテナントのユーザに漏洩されるリスクが発生する。以上が、第一の方式による課題の説明である。
次に、第二の方式について説明する。第二の方式では、ユーザが、ベンダークライアントであるアクセストークンプロバイダ530に対して、Authorization Code Grantを用いて自身の権限を委譲する。そして、リソースサーバモジュール310は、権限を委譲したユーザが所属するテナントIDに紐付けて、サービスの提供に係るデータを保存する。
第二の方式では、まず、ユーザがアクセストークンプロバイダ530に対して権限を委譲するフローが必要となる。この権限を委譲するフローを開始するタイミングとしては、以下の2種のパターンが考えられる。第1のパターンは、ユーザが、Webブラウザ410、510を用いて、アクセストークンプロバイダ530が提供するサイトへのアクセスしたことをもって、権限を委譲するフローを開始するパターンである。第2のパターンは、ユーザによるリソースサーバ連携アプリケーションの操作時に、リソースサーバ連携アプリケーションがWebブラウザ510を用いてアクセストークンプロバイダが提供するサイトへアクセスすることでフローを開始するパターンである。
図7は、権限委譲の開始が行われた場合の処理を説明する図である。
認可サーバモジュール210のユーザ管理テーブルおよびクライアント管理テーブルは、第一の方式の説明時と同様である。本実施形態において、ユーザは、ユーザID「user@xx.com」および、そのパスワードを利用するものとして説明する。また、アクセストークンプロバイダ530は、ベンダークライアントID「c001@xx.com」の各種データである、シークレット、リダイレクトURIを保持している。リダイレクトURIは、アクセストークンプロバイダ530が、認可応答を受け付けるためのURIである。これら各種データは、図4を参照して説明したベンダークライアント登録処理によって認可サーバモジュール210に登録されている。
S3.1において、Webブラウザ410、510が、アクセストークンプロバイダ530に対して権限委譲開始要求を行う。S3.2において、権限委譲開始要求を受けたアクセストークンプロバイダ530が、Webブラウザ410、510を介して、認可サーバモジュール210に対して認可要求を行う。S3.3の認可要求から、S3.20の認可トークン、リフレッシュトークン応答までの認可トークン、リフレッシュトークンの発行処理は、OAuth 2.0に定義されているAuthorization Code Grantフローに従って実施される。認可要求は、少なくとも、アクセストークンプロバイダ530が保持しているベンダークライアントID「c001@xx.com」と、リダイレクトURI「https://xx/res」と、スコープ「リソース」を含む。スコープ「リソース」は、アクセストークンプロバイダ530がユーザから権限委譲されるリソースの範囲を示す。リダイレクトURIは、前述したとおり、認可サーバ200にて発行された認可コードを受け付けるベンダークライアントのURLである。
S3.3において、Webブラウザ410、510から認可要求を受け付けた認可サーバモジュール210が、Webブラウザ410、510からの通知に、HTTP Cookieとして有効な認証トークンが含まれているか検証する。Webブラウザ410、510からの通知に有効な認証トークンが含まれている場合、処理がS3.9に移行する。Webブラウザ410、510からの通知に有効な認証トークンが含まれていない場合は、S3.10乃至S3.7の処理として、図5(A)を参照して説明したログイン処理を実施し、S3.8においてS3.3での認可要求を再実施する。
S3.8において、認証トークンを含む認可要求を受け付けた認可サーバモジュール210が、S3.9において、受信した認可要求のうち、クライアントIDとリダイレクトURLの組が正しいか検証する。より具体的には、認可サーバモジュール210は、クライアントテーブルに登録されているクライアントIDとリダイレクトURIの組が一致するか検証する。クライアントテーブルに登録されているクライアントIDとリダイレクトURIの組が不一致の場合、認可サーバモジュール210は、不図示のエラー画面をWebブラウザ410、510に応答する。クライアントテーブルに登録されているクライアントIDとリダイレクトURIの組が一致した場合、S3.10において、認可サーバモジュール210は、Webブラウザ410、510に対して認可確認画面を応答する。
図8は、認可確認画面の一例である。
図8(A)は、第二の方式における認可確認画面を示す。認可確認画面8000は、認可要求に含まれるクライアントIDをキーとして、クライアントテーブルから取得したクライアント名8001を表示する領域であるアクセス元表示領域8001を備える。認可確認画面8000は、さらに、認可要求で取得したスコープに対応する説明を表示する領域である委譲権限表示領域8002を備える。今回はスコープとして「リソース」が要求されたため、本画面例では、リソースサーバのリソースが権限委譲の範囲として提示される。また、認可確認画面8000は、ユーザが上記情報の内容について認可操作を実行する許可ボタン8003と、拒否を実行する拒否ボタン8004とを備える。
図7の説明に戻る。S3.11において、ユーザが許可ボタン8003を押下して認可操作を行う。S3.12において、Webブラウザ410、510が、認可確認結果を認可サーバモジュール210に通知する。S3.13において、認可サーバモジュール210が、認可コードを発行する。より具体的には、認可サーバモジュール210は、トークンID「cd_000001」を発行する。認可サーバモジュール210は、認可要求内のベンダークライアントID「c001@xx.com」とリダイレクトURI「https://xx/res」、スコープ「リソース」、UUID「10000001」をトークン管理テーブルに登録する。UUID「10000001」は、認証し許可を得たユーザのユーザIDに対応するUUIDである。その際、トークン種別を認可コードとする。なお、不図示の項目として有効期限として,認可コードが有効である期限の日時を登録する事もできる。なお、トークンが有効か否かを示す状態を登録する事もできる。その場合は、有効期限ではなく、状態が有効であるかを検証する事となる。表7は、認可サーバモジュールが備えるトークン管理テーブルの例を示す。
Figure 2017107396
S3.14、S3.15において、認可サーバモジュール210が、発行した認可コードのトークンID「cd_000001」を付与する。そして、認可サーバモジュール210は、Webブラウザ410、510を介して、アクセストークンプロバイダ530に認可を応答する。より具体的には、認可サーバモジュール210は、認可要求時に取得したリダイレクトURI「https://xx/res」に対してリダイレクトするようWebブラウザ410、510にリダイレクト応答する。
S3.16において、アクセストークンプロバイダ530が、認可サーバモジュール210に対して認可トークンを要求する。認可トークン要求は、少なくとも、認可コード「cd_000001」、ベンダークライアントID「c001@xx.com」、シークレット「xxxxxxxxxx」、認可要求時に送信したリダイレクトURI「https://xx/res」を含む。
S3.17において、認可サーバモジュール210が、取得したベンダークライアントID「c001@xx.com」、シークレット「xxxxxxxxxx」の組を用いてクライアントを認証する。より具体的には、ベンダークライアントIDとシークレットの組がクライアントテーブルにある場合に、クライアント認証が成功する。クライアント認証に失敗した場合は、認可サーバモジュール210が、アクセストークンプロバイダ530に認証エラーを応答する。クライアント認証に成功した場合は、処理がS3.18に進む。
S3.18において、認可サーバモジュール210が、取得した認可コード「cd_000001」を検証する。具体的には、認可サーバモジュール210は、取得した認可コードがトークン管理テーブルに登録されているかを検証し、登録されている場合は、認可コードが有効であるかを検証する。認可コードが有効である場合、認可サーバモジュール210は、認可トークン要求にて取得したベンダークライアントID「c001@xx.com」とリダイレクトURI「https://xx/res」を用いて、以下の検証を実施する。認可サーバモジュール210は、ベンダークライアントID、リダイレクトURIが、トークン管理テーブルのベンダークライアントID、リダイレクトURIと一致するかを検証する。ベンダークライアントID、リダイレクトURIが、トークン管理テーブルのベンダークライアントID、リダイレクトURIと一致する場合は、認可コードの検証結果が有効となる。
認可コードの検証結果が無効である場合、認可サーバモジュール210は、アクセストークンプロバイダ530にエラーを応答する。認可コードの検証結果が有効である場合、S3.19において、認可サーバモジュール210が認可トークンを発行する。具体的には、認可サーバモジュール210は、トークンID「at_000001」を発行する。そして、認可サーバモジュール210は、認可コードに紐づくユーザのUUID「10000001」、スコープ「リソース」、認証したベンダークライアントID「c001@xx.com」をトークン管理テーブルに登録する。その際、認可サーバモジュール210は、トークン種別を認可トークンとし、有効期限として当該認可トークンが有効である期限の日時を登録する。
S3.20において、認可サーバモジュール210が、リフレッシュトークンを発行する。より具体的には、認可サーバモジュール210は、トークンID「rt_000001」を発行する。そして、認可サーバモジュール210は、認可トークン「at_000001」に紐づくユーザのUUID「10000001」、スコープ「リソース」、および認証したベンダークライアントID「c001@xx.com」をトークン管理テーブルに登録する。その際、トークン種別をリフレッシュトークンとする。また、有効期限として、リフレッシュトークンが有効である期限の日時を登録する事もできる。また、OAuth 2.0では、認可コードは一度しか利用できないように制御することが推奨されている。したがって、認可サーバモジュール210は、トークンID「cd_000001」の認可コードの状態を「無効」にする。なお、認可コードの状態を無効にする方法として、状態を利用するのではなく、有効期限を過去の日時に更新することで無効扱いとすることや、テーブルのレコードそのものを削除することで無効にするという方法を用いてもよい。表8は、認可サーバモジュールのトークン管理テーブルを示す。表8中、ハッチングを施した行は、無効となったレコードを示す。
Figure 2017107396
S3.21において、認可サーバモジュール210が、発行した認可トークンのトークンID「at_000001」、リフレッシュトークンのトークンID「rt_000001」をアクセストークンプロバイダ530に応答する。以上が、OAuth 2.0における、Authorization Code Grantを利用した、ユーザがアクセストークンプロバイダ530へ権限を委譲するフローの説明である。
アクセストークンプロバイダ530は、取得したリフレッシュトークンを不揮発メモリに保存する。その際、アクセストークンプロバイダ530は、リフレッシュトークンをアプリケーションIDに紐づけて保存する。これにより、アプリケーションIDが示すアプリケーションつまりリソースサーバ連携アプリケーション540からのリクエストによりリフレッシュトークンを取り出す事が可能となる。
認可サーバモジュール210が、デバイス500のログインアプリケーション520が生成したログインコンテキストに紐づけてリフレッシュトークンを保存する構成を採ってもよい。そして、再度ユーザがデバイス500にログインした場合に、認可サーバモジュール210が、ログインコンテキストを元に保存されたリフレッシュトークンを取り出すようにしてもよい。さらに、権限を委譲するフローを開始するタイミングが、第2のパターン、つまりリソースサーバ連携アプリケーション540の操作を契機に開始している場合は、取得した認可トークンを用いて、アプリケーション用認可トークンを発行し、応答してもよい。
次に、デバイス500とテナントIDとを紐づける方法について説明する。ここで、第二の方式においてデバイス500とテナントIDとを紐づける方法としては、以下の2種の方法が考えられる。第一の方法では、アクセストークンプロバイダ530が保存したリフレッシュトークンを用いて認可トークンを発行し、認可トークンからアプリケーション用認可トークンを発行する。そして、アプリケーション用認可トークンに紐づくユーザのテナントIDを用いて、第一の方式と同様に、リソースサーバモジュール310においてデバイスシリアルIDとテナントIDとを紐づける。なお、第二の方式における第一の方法は、第一の方式と比較して、デバイスの登録方法に差異があるだけであり、結果的にデバイスとテナントを紐づける情報はデバイスのデバイスシリアルIDであるので、第一の方式と同様の課題がある。
第二の方法は、アクセストークンプロバイダ530が保存したリフレッシュトークンを用いて、都度アプリケーション用認可トークンを発行し、アプリケーション用認可トークンに紐づくユーザのテナントIDを利用する方法である。第二の方法は、デバイスとテナントとの紐づけを行うタイミングが,第一の方式や、第二の方式の第一の方法と異なる。第一の方式や、第二の方式の第一の方法では、デバイスシリアルIDとテナントIDとを予め紐づけておき、その後、デバイス500が、主体的にリソースサーバモジュール310へのAPI呼び出しを開始する。第二の方式の第二の方法は、デバイスシリアルIDとテナントIDを紐づけるのではなく、リソースサーバへのAPI呼び出しに用いられたアプリケーション用認可トークンに紐づくユーザのテナントIDを用いて、都度、テナントIDを特定し、処理を実行する。以下、詳細について説明する。
まず、API呼び出しを実施する契機は、アクセストークンプロバイダ530にリフレッシュトークンを保存する構成によって異なる。リフレッシュトークンがアプリケーションIDに紐づけて保存されている場合は、第二の方法においても第一の方式と同様の契機でAPI呼び出しを実施する。一方、ログインコンテキストに紐づけて保存された場合は、API呼び出しを実施する契機は、ユーザがデバイス500にログインした状態で、デバイス500を操作した場合に限定される。
デバイス500が複写機である場合は、API呼び出しを実施する契機は、例えばデバイス500にて複写操作をしたとき等である。デバイス500がスマートフォンである場合は、API呼び出しを実施する契機は、通話が行われたとき等である。デバイス500がGPSを備える機器である場合は、API呼び出しを実施する契機は、特定の場所へ移動したとき等である。その他、デバイス500の利用者から得られる生体認証が行われたとき、または心拍の変化等が発生したときを、API呼び出しを実施する契機としてもよい。
図9は、デバイスによる、リソースサーバモジュールのAPIを呼び出す処理を説明する図である。
デバイス500での変化が検知されたことを契機として、S4.1において、リソースサーバ連携アプリケーション540が、アクセストークンプロバイダ530に対して認可トークンを要求する。その際、リソースサーバ連携アプリケーション540は、リソースサーバモジュール310の公開するAPIに合わせたスコープを権限範囲として要求する。
次に、アクセストークンプロバイダ530は、リフレッシュトークンを保存した構成に従って、リフレッシュトークンを特定し取得する。例えば、リフレッシュトークンがログインコンテキストに紐付けて保存されていて、ユーザがログインしている場合は、ログインコンテキストに基づいてリフレッシュトークンを取得する。リフレッシュトークンがアプリケーションIDに紐付けて保存されている場合は、アプリケーションIDに基づいてリフレッシュトークンを取得する。
S4.2において、アクセストークンプロバイダ530が、認可サーバモジュール210に対してリフレッシュ要求を行う。このリフレッシュ要求には、ベンダークライアントID、シークレットおよび取得したリフレッシュトークンが含まれる。S4.3において、認可サーバモジュール210が、リフレッシュ要求に起因して、ベンダークライアントを認証する。より具体的には、認可サーバモジュール210は、取得したベンダークライアントIDとシークレットの組がクライアント管理テーブルに登録されているか否かを検証する。続いて、S4.4において、認可サーバモジュール210が、取得したリフレッシュトークンの検証を行う。より具体的には、認可サーバモジュール210は、取得したリフレッシュトークンがトークン管理テーブルに登録されているか、登録されている場合は、有効かを検証する。さらに、認可サーバモジュール210は、リフレッシュ要求によって取得したベンダークライアントID「c001@xx.com」がトークン管理テーブルのクライアントIDと一致するかを検証する。
次に、S4.5において、認可サーバモジュール210が、認可トークンを発行する。より具体的には、認可サーバモジュール210は、トークンID「at_000002」を発行する。そして、認可サーバモジュール210は、リフレッシュトークンに紐づくユーザのUUID「10000001」、スコープ「API」、および認証したベンダークライアントID「c001@xx.com」をトークン管理テーブルに登録する。その際、トークン種別は認可トークンとし、有効期限として当該認可トークンが有効である期限の日時を登録する。さらに、認可サーバモジュール210が、新たなリフレッシュトークンを発行するようにしてもよい。その際、古いリフレッシュトークンは無効化される。表9は、認可サーバモジュールのトークン管理テーブルの例を示す。
Figure 2017107396
S4.6において、認可サーバモジュール210が、発行した認可トークンのトークンID「at_000002」をアクセストークンプロバイダ530に応答する。その際、認可サーバモジュール210は、新しいリフレッシュトークンを発行した場合は、合わせて応答する。以降、S4.7からS4.12の処理については、図6を参照して説明したS2.6からS2.11の処理と同様である。
S4.13において、リソースサーバ連携アプリケーション540が、取得したアプリケーション用認可トークンを用いて、リソースサーバモジュール310が公開するAPIを呼び出す。APIの呼び出しには、検知されたデバイス500における変化の情報が含まれる。例えば、デバイス500が複写機であり、複写を契機としてAPI呼び出しする場合は、APIの呼び出しには、複写した者、複写した枚数、カラーかモノクロか、といった情報が含まれる。
S4.14において、リソースサーバモジュール310が、認可サーバモジュール210に対して取得したアプリケーション用認可トークンの検証を要求する。続いて、S4.15において、認可サーバモジュール210が、取得したアプリケーション用認可トークンがトークン管理テーブルに登録されているかを検証する。アプリケーション用認可トークンがトークン管理テーブルに登録されている場合は、認可サーバモジュール210は、アプリケーション用認可トークンIDに紐づく情報として、以下の情報を応答する。認可サーバモジュール210は、ユーザのUUID、ユーザのテナントID、ベンダークライアントID、デバイスシリアルID、およびベンダークライアントのテナントIDを応答する。ベンダークライアントのテナントIDは、表1に示すクライアント管理テーブルから取得される。ユーザのテナントIDは、表2に示すユーザ管理テーブルから取得される。
S4.16において、リソースサーバモジュール310が、APIに応じた処理として、取得したユーザのテナントIDを確認する。リソースサーバモジュール310は、ユーザのテナントIDを用いて、以下の処理を実施する。リソースサーバモジュール310は、API呼び出し時に受信した、各種デバイス500で検出した情報を、取得したユーザのテナントIDの情報として取り扱う。リソースサーバモジュール310は、例えば、ユーザのテナントIDに所属するユーザのみが参照可能な形式でAPI呼び出し時に受信した情報を不揮発メモリに記憶する。また、リソースサーバモジュール310は、例えば、ユーザのテナントIDに所属するユーザに対して、電子メールを送信する。どのような処理を行うかは、公開するAPI毎に定義される。
次に、S4.17において、リソースサーバモジュール310が、APIの応答をリソースサーバ連携アプリケーション540に返して、処理を終了する。以上、第二の方式における第二の方法を用いた、リソースサーバモジュール310が提供するサービスの利用について説明した。
前述した通り、第二の方式に関する構成のうち、リフレッシュトークンをログインコンテキストに紐づけて保存する構成は、ユーザがデバイス500を操作したときに限って利用可能である。そのため、例えば、ユーザのログインと関係しない契機によって発生する情報を送信する場合には、利用できない。一方、第二の方式に関する構成のうち、リフレッシュトークンをアプリケーションIDと紐づけて保存する構成では、デバイスとテナントとを紐づけるためにユーザを仲介している。したがって、当該ユーザが認可サーバモジュール210の利用を停止した場合は、継続的に利用できない。
次に、第三の方式、つまりClient Credentials Grantを用いた2種目の方式について説明する。第三の方式は、本実施形態における、最も特徴的な方式である。第三の方式は、Client Credentials Grantを用いるためのクライアントID、シークレットを、Authorization Code Grantを利用して動的に発行することに特徴がある。第三の方式は、第一、第二の方式のデメリットがないので、最も情報の漏洩リスクが低い方式である。以下、この第三の方式について図4、図6乃至図9を参照して説明する。
第三の方式では、第二の方式と同様に、まず、ユーザがアクセストークンプロバイダ530に対して権限を委譲する。権限を委譲するフローを開始するタイミングとしては、以下の2種のパターンが考えられる。まず第1のパターンは、ユーザが、Webブラウザ410、510を用いてアクセストークンプロバイダ530の権限委譲を開始するサイトへアクセスすることをもって開始するパターンである。第2のパターンは、ユーザによるリソースサーバ連携アプリケーションの操作時に、リソースサーバ連携アプリケーションがWebブラウザ510を用いてアクセストークンプロバイダ530のサイトへアクセスすることをもってフローが開始するパターンである。第三の方式では、この2種のパターンによって以降の処理の方法が違うため、それぞれ第一の方法、第二の方法として説明する。
まず、第三の方式における第一の方法、すなわち、ユーザが、Webブラウザ410、510を用いてアクセストークンプロバイダ530の権限委譲を開始するサイトへのアクセスをもって開始する方法について説明する。なお、権限委譲の開始が行われた場合のシーケンスについて、図7を参照して説明するが、第二の方式の説明で図7を参照して述べた処理と同様の処理の説明は省略する。
図7のS3.1において、Webブラウザ410、510からアクセストークンプロバイダ530に権限委譲開始要求が行われる。S3.2において、権限委譲開始要求を受けたアクセストークンプロバイダ530が、Webブラウザ410、510を介して、認可サーバモジュール210に対して認可要求を行う。
S3.3の認可要求から、S3.20の認可トークン、リフレッシュトークン応答までの認可トークン、リフレッシュトークンの発行処理は、OAuth 2.0に定義されているAuthorization Code Grantフローに従って実施される。認可要求には、少なくとも、アクセストークンプロバイダ530が保持しているベンダークライアントID「c001@xx.com」、リダイレクトURI「https://xx/res」、スコープ「テナント専用クライアント」を含む。スコープ「テナント専用クライアント」は、アクセストークンプロバイダ530がユーザから権限委譲されるリソースの範囲を示す。リダイレクトURIは、認可サーバ200にて発行された認可コードを受け付けるベンダークライアントのURLである。S3.2からS3.9までの処理については、第二の方式と同様であるので、説明を省略する。S3.10において、認可サーバモジュール210が、認可確認画面データをWebブラウザ410,510に対して応答する。すなわち、認可サーバモジュール210は、認可要求に応じて、ユーザが操作する端末に対して認可確認画面データを送信する画面送信手段として機能する。
図8(B)は、第三の方式において表示される認可確認画面の例である。
Webブラウザ410,510が、認可確認画面データに基づいて認可確認画面8000を表示する。認可確認画面8000は、アクセス元表示領域8001を備える。アクセス元表示領域8001は、認可要求に含まれるクライアントIDをキーとしてクライアントテーブルから取得されたクライアント名8001が表示される領域である。また、認可確認画面8000は、委譲権限表示領域8002を備える。委譲権限表示領域8002は、認可要求で取得したスコープに対応する説明が表示される領域である。今回はスコープとして「テナント専用クライアント」が要求されたので、本画面例では、テナント専用クライアントを作成する権限が権限委譲の範囲として表示される。
また、認可確認画面8000は、ユーザがアクセス元表示領域8001,委譲権限表示領域8002に表示された情報の内容に関する認可操作を実行するための許可ボタン8003、および拒否操作を実行するための拒否ボタン8004を備える。以降S3.12までは第二の方式と同様の処理である。ユーザは、許可ボタン8003を押下することで、テナント専用クライアントを作成する権限をデバイス500に委譲することを許可する指示を出す。本実施形態では、テナント専用クライアントに対応するテナントは、テナント専用クライアントを作成する権限を委譲したユーザが所属するテナントである。
S3.13において、認可サーバモジュール210が、認可コードを発行する。より具体的には、認可サーバモジュール210は、トークンID「cd_000001」を発行する。そして、認可要求に含まれるベンダークライアントID「c001@xx.com」、リダイレクトURI「https://xx/res」、スコープ「テナント専用クライアント」、UUID「10000001」をトークン管理テーブルに登録する。UUID「10000001」は、認証し許可を得たユーザのユーザIDに対応する。なお、不図示の項目として、有効期限として当該認可コードが有効である期限の日時を登録する事もできる。また、トークンが有効か否かを示す状態を「有効」として登録する事もできる。トークンが有効か否かを示す状態を登録する場合は、有効期限ではなく、状態が有効であるかを検証する事となる。表10は、S3.13の処理後の認可サーバモジュールのトークン管理テーブルの例を示す。
Figure 2017107396
S3.14、S3.15において、認可サーバモジュール210が、発行した認可コードのトークンID「cd_000001」を付与して、Webブラウザ410、510を介し、アクセストークンプロバイダ530に認可を応答する。より具体的には、認可サーバモジュール210は、認可要求時に取得したリダイレクトURI「https://xx/res」に対してリダイレクトするようWebブラウザ410、510にリダイレクト応答する。
S3.16において、アクセストークンプロバイダ530が、認可サーバモジュール210に対して認可トークンを要求する。認可トークン要求には、少なくとも、認可コード「cd_000001」、ベンダークライアントID「c001@xx.com」、シークレット「xxxxxxxxxx」、リダイレクトURI「https://xx/res」が含まれる。また、認可トークン要求には、スコープ「テナント専用クライアント」が含まれる。
以降、S3.21まで、各種トークンに設定されるスコープが「テナント専用クライアント」である事を除き、第二の方式と同様の処理が行われる。以上が、OAuth 2.0におけるAuthorization Code Grantを利用した、ユーザがアクセストークンプロバイダ530へテナント専用クライアントを作成する権限を委譲するフローの説明である。以上の説明から、認可サーバモジュール210は、認可確認画面を介し、ユーザがテナント専用クライアントを作成する権限をデバイス500に委譲することを許可する指示をした場合に、認可トークンを発行する第1の発行手段として機能する。また、アクセストークンプロバイダ530は、認可サーバ200への第1のクライアント(ベンダークライアント)の登録に応じて提供された第1の認証情報を基に、以下の処理をする第1の取得要求手段として機能する。第1の認証情報は、ベンダークライアントIDとシークレットである。アクセストークンプロバイダ530は、第2のクライアント(テナント専用クライアント)を作成するユーザの権限が、ベンダークライアントとしてのデバイス500へ委譲されたことを示す第1の認可情報(認可トークン)の取得要求をする(S3.16)。
次に、図4を参照して、アクセストークンプロバイダ530が、図7のS3.21において取得した認可トークンを用いて行う処理について説明する。
S1.1において、デバイス500のアクセストークンプロバイダ530が、認可サーバ200が備えるHTTPサーバモジュール220に対して、テナント専用クライアントの登録要求(テナント専用クライアント登録要求)を行う。テナント専用クライアント登録要求は、少なくとも図7を参照して説明した処理によって取得された取得した認可トークンを含む。
アクセストークンプロバイダ530からのテナント専用クライアント登録要求を受け付けたHTTPサーバモジュール220は、S1.2の認証を省略し、S1.3において、テナント専用クライアント登録要求を認可サーバモジュール210に通知する。S1.4において、認可サーバモジュール210が、認証情報として、HTTPサーバモジュール220から通知された認可トークンの情報を取得する。次に、S1.5において、認可サーバモジュール210が、取得した認可トークンに基づいて、トークン管理テーブルから認可トークンに紐づくユーザのテナントIDの情報を取得する。トークン管理テーブルに該当のレコードが無い場合、認可サーバモジュール210が、HTTPサーバモジュール220を介して、アクセストークンプロバイダ530にエラーを応答する。
次に、S1.6において、認可サーバモジュール210が、クライアント管理テーブルにテナント専用クライアントを新規登録する。より具体的には、認可サーバモジュール210は、クライアントID、シークレットを発行し、それぞれクライアント管理テーブルに格納する。以後、ここで発行し登録したクライアントIDは、先述のベンダークライアントIDとは異なるIDである。また、認可サーバモジュール210は、取得したテナントIDを、クライアント管理テーブルに格納する。テナントIDは、権限委譲したユーザが所属するテナントIDとなる。表11は、テナント専用クライアントが新規登録されたクライアント管理テーブルの例を示す。
Figure 2017107396
なお、登録されたテナント専用クライアントに対してデフォルトで設定すべき権限を証明書管理テーブルに予め設定しておき、その設定に従って、S1.6で登録したテナント専用クライアントに対してデフォルトの権限を付与するよう構成する事もできる。また、デフォルトで設定すべき権限をスコープとして定義し、そのスコープも合わせて権限委譲することによって、テナント専用クライアントにスコープに対応する権限を付与するよう構成してもよい。
テナント専用クライアントの登録が完了した後に、S1.7において、認可サーバモジュール210が、発行したテナント専用クライアントIDとシークレットとを、HTTPサーバモジュール220を介してアクセストークンプロバイダ530に応答する。以上がテナント専用クライアントの登録処理の説明である。
次に、テナント専用クライアントが発行された後の、デバイス500からリソースサーバモジュール310へのAPI呼び出しについて説明する。
まず、API呼び出しの実施は、デバイス500に備えるセンサーや機器における変化を検知した事が契機となる。例えば、デバイス500がプリンタである場合は、API呼び出しの実施の契機は、リモートからの印刷要求を受けて印刷が行われたときや、プリンタが印字するためのインクやトナーといった材料の残量が低下したとき等である。例えば、デバイス500がスマートフォンである場合は、API呼び出しの実施の契機は、通話が行われたとき等である。また、例えば、デバイス500がGPSを備える機器の場合は、特定の場所へ移動したとき等が契機として考えられる。その他、デバイス500の利用者の生体認証が実施されたとき、心拍の変化が生じたとき等が契機として考えられる。デバイス500はこれらを検知し、以下のシーケンスを実施する。
次に、図6を参照して、デバイス500によるリソースサーバモジュール310のAPIを呼び出すシーケンスについて説明する。なお、図6を参照して前述したシーケンスと同様である部分の説明は省略し、差異がある部分のみ説明する。
デバイス500での変化の検知を契機として、S2.1において、リソースサーバ連携アプリケーション540が、アクセストークンプロバイダ530に対してテナント専用クライアントの認可トークンを要求する。その際、リソースサーバモジュール310の公開するAPIに合わせたスコープを権限範囲として要求する。
S2.2からS2.11までの処理は、スコープ以外については前述した処理と同様である。具体的には、S2.6において、アクセストークンプロバイダ530は、認可トークンID、テナント専用クライアントID、シークレット、アプリケーションIDを用いて、認可サーバモジュール210に対してアプリケーション用認可トークン発行を要求する。すなわち、アクセストークンプロバイダ530は、認可サーバから提供された第2の認証情報(テナント専用クライアントIDとシークレット)を基に、第2の認可情報(アプリケーション用認可トークン)の取得要求をする第2の取得要求手段として機能する。このアプリケーション用認可トークンは、サービスの利用に関する特定の権限がデバイス500(この場合は、テナント専用クライアントとしてのデバイス)に委譲されたことを示す。
また、S2.9において、認可サーバモジュール210は、認証したテナント専用クライアントおよびアプリケーションIDに紐づくアプリケーション用認可トークンを発行する。認可サーバモジュール210は、認可トークンIDを発行し、前述した表10の構成のトークン管理テーブルに、トークン種別を「認可トークン」、クライアントIDをテナント専用クライアントIDすなわち「c002@1000AA」として保存する。このトークン管理テーブルと、表11のクライアント管理テーブルとによって、アプリケーション用認可トークンは、テナント専用クライアントIDと、テナント専用クライアントが所属するテナントのテナントID「1000AA」とに紐付くことになる。
S2.12において、リソースサーバ連携アプリケーション540が、取得したアプリケーション用認可トークンを用いて、リソースサーバモジュール310が公開するAPIを呼び出す。すなわち、リソースサーバ連携アプリケーション540は、取得されたアプリケーション用認可トークンを基に、リソースサーバ300のサービスを利用する。APIの呼び出しには、検知されたデバイスでの変化の情報が含まれる。例えば、デバイス500がプリンタであり、印刷を契機としてAPI呼び出しする場合は、印刷された文書名や、印刷者、印刷した枚数、カラーかモノクロか、といった情報が含まれる。
S2.13において、リソースサーバモジュール310が、認可サーバモジュール210に対して、取得したアプリケーション用認可トークンの検証を要求する。S2.14において、認可サーバモジュール210が、アプリケーション用認可トークンが、トークン管理テーブルに登録されているかを検証する。アプリケーション用認可トークンがトークン管理テーブルに登録されている場合は、認可サーバモジュール210は、以下の処理を実行する。認可サーバモジュール210は、トークン管理テーブルとクライアント管理テーブルとを参照して、アプリケーション用認可トークンIDに紐づくテナント専用クライアントIDとテナントIDを応答する。すなわち、認可サーバモジュール210は、サービスの利用に伴い送信されるアプリケーション用認可トークンを基に、リソースサーバ連携アプリケーション540が特定の権限でサービスを利用することを認可するか否かを検証する認可手段として機能する。
S2.15において、リソースサーバモジュール310が、APIに応じた処理として、取得したテナント専用クライアントのテナントIDを確認する。リソースサーバモジュール310は、テナント専用クライアントのテナントIDを用いて、以下の処理を実施する。リソースサーバモジュール310は、API呼び出し時に受信した各種デバイス500で検出された情報を、取得したテナント専用クライアントのテナントIDの情報として取り扱う。より具体的には、リソースサーバモジュール310は、API呼び出し時に受信した情報を、テナント専用クライアントのテナントIDに所属するユーザのみが参照可能な形式で不揮発メモリに記憶する。すなわち、リソースサーバモジュール310は、アプリケーション用認可トークンに基づくサービスの提供に関するデータを、テナント専用クライアントに紐付けて保存する保存手段として機能する。リソースサーバモジュール310が、テナント専用クライアントのテナントIDに所属するユーザに対して、電子メールを送信してもよい。これら、どのようなアクションを行うかは,公開するAPI毎に定義される。
次に、S2.16において、リソースサーバモジュール310が、APIの応答リソースサーバ連携アプリケーション540に応答し、処理を終了する。以上がクライアント登録方式における第三の方式の第一の方法による、リソースサーバモジュール310が提供するサービスの利用の説明である。
次に、第三の方式の第二の方法について説明する。ユーザによるリソースサーバ連携アプリケーション540の操作時に、リソースサーバ連携アプリケーションがデバイス500のWebブラウザを用いてアクセストークンプロバイダの権限委譲を開始するサイトへのアクセスしたことをもって、処理が開始する。
第二の方法では、まず、図7を参照して前述した、第一の方法における、Authorization Code Grantを用いた認可トークンの取得処理が実施される。次に、アクセストークンプロバイダ530が、認可サーバモジュール210から取得した認可トークンを用いて、図10に示す処理を行う。
図10は、認可サーバモジュールから取得された認可トークンを用いた処理を説明する図である。
図10のS4.8からS4.12までの処理は、図9のS4.8からS4.12までの処理と同様であるので、説明を省略する。
S5.1において、アクセストークンプロバイダ530が、認可トークンID、ベンダークライアントID、シークレット、リソースサーバ連携アプリケーション540から取得したアプリケーションID「APP0001」を用いて、以下の処理を実行する。すなわち、アクセストークンプロバイダ530は、認可サーバモジュール210に対してアプリケーション用認可トークン発行を要求する。その際、リソースサーバ連携アプリケーション540から取得したスコープ「テナント専用クライアント」を要求する。このアプリケーション用認可トークンは、アプリケーションIDが追加された認可トークンであり、認可トークンIDに紐づけられる。アクセストークンプロバイダ530は、認可トークンの要求元であるリソースサーバ連携アプリケーション540に対して、アプリケーション用認可トークンを提供する。ここでは、認可トークン発行要求と、アプリケーション用認可トークン発行要求とを別シーケンスとして記載するが、認可トークン発行要求時にアプリケーションIDを追加し、1回のシーケンスでアプリケーション用認可トークンが取得されるようにしてもよい。
S5.2において、デバイス500のリソースサーバ連携アプリケーション540が、テナント専用クライアント登録要求を認可サーバモジュール210に通知する。その際、取得したアプリケーション用認可トークンを認証情報として送信する。リダイレクトURIを登録する場合は、リソースサーバ連携アプリケーション540が認可コードを受信するURIを登録する事になる。本実施形態ではリダイレクトURIを指定しないものとして説明する。
次に、図10のS1.4において、認可サーバモジュール210が、認証情報として通知されたアプリケーション用認可トークンを取得する。S1.5において、認可サーバモジュール210が、取得したアプリケーション用認可トークンに基づき、トークン管理テーブルとユーザ管理テーブル(表2)とを参照して、アプリケーション用認可トークンに紐づくユーザのテナントIDの情報を取得する。アプリケーション用認可トークンに紐づくユーザのテナントIDの情報がない場合、認可サーバモジュール210は、リソースサーバ連携アプリケーション540にエラーを応答する。
次に、S1.6において、認可サーバモジュール210が、クライアント管理テーブルにテナント専用クライアントを新規登録する。より具体的には、認可サーバモジュール210は、クライアントID、シークレットを発行し、それぞれクライアント管理テーブルに格納する。以後、ここで発行し登録したクライアントIDは、先述のベンダークライアントIDとは異なるIDである。そして、認可サーバモジュール210は、取得したテナントIDを、記憶手段が有するクライアント管理テーブルに格納する。その際、テナントIDは権限委譲したユーザが所属するテナントIDとなる。表12は、テナント専用クライアントが新規登録されたクライアント管理テーブルの例を示す。
Figure 2017107396
なお、登録されたテナント専用クライアントに対してデフォルトで設定すべき権限を、証明書管理テーブルに予め設定しておき、その設定に従って、S1.6で登録したテナント専用クライアントに対してデフォルトの権限を付与するよう構成する事もできる。また、デフォルトで設定すべき権限をスコープとして定義し、スコープも合わせて権限委譲することによって、テナント専用クライアントにスコープに対応する権限を付与するよう構成してもよい。
次に、S5.3において、認可サーバモジュール210が、クライアント登録応答として、発行したテナント専用クライアントIDとシークレットとを、リソースサーバ連携アプリケーション540に返す。以上がテナント専用クライアントの登録処理の説明である。
次に、テナント専用クライアントが発行された後の、デバイス500からリソースサーバモジュール310へのAPI呼び出しについて説明する。まず、API呼び出しは、デバイス500が備えるセンサーや機器における変化を検知した事が契機となる。例えば、デバイス500がプリンタである場合は、API呼び出しの実施の契機は、リモートからの印刷要求を受けて印刷が行われたときや、プリンタが印字するためのインクやトナーといった材料の残量が低下したとき等である。例えば、デバイス500がスマートフォンである場合は、API呼び出しの実施の契機は、通話が行われたとき等である。また、例えば、デバイス500がGPSを備える機器の場合は、特定の場所へ移動したとき等が契機として考えられる。その他、デバイス500の利用者の生体認証が実施されたとき、心拍の変化が生じたとき等が契機として考えられる。デバイス500はこれらを検知し、以下のシーケンスを実施する。
デバイス500での変化の検知を契機として、S5.4において、リソースサーバ連携アプリケーション540が、認可サーバモジュール210に対してテナント専用クライアントの認可トークンを要求する。その際、リソースサーバモジュール310の公開するAPIに合わせたスコープを権限範囲として要求する。S2.3からS2.4までの処理は、スコープ以外については前述した処理と同様であるので、説明を省略する。
S5.5において、認可サーバモジュール210が、発行した認可トークンIDをリソースサーバ連携アプリケーション540に応答する。続いて、S5.6において、リソースサーバ連携アプリケーション540が、取得した認可トークンを用いて、リソースサーバモジュール310が公開するAPIを呼び出す。APIの呼び出しには、検知されたデバイス500での変化の情報が含まれる。例えば、デバイス500がプリンタであり、印刷を契機としてAPIの呼び出しを行う場合は、APIの呼び出しには、印刷された文書名や、印刷者、印刷した枚数、カラーかモノクロか、といった情報が含まれる。
S2.13において、リソースサーバモジュール310が、認可サーバモジュール210に対して、認可トークンの検証を要求する。続いて、S2.14において、認可サーバモジュール210は、認可トークンがトークン管理テーブルに登録されているかを検証する。認可トークンがトークン管理テーブルに登録されている場合は、認可サーバモジュール210は、以下の処理を行う。認可サーバモジュール210は、トークン管理テーブルとクライアント管理テーブルとを参照して、アプリケーション用認可トークンIDに紐づく情報として、テナント専用クライアントIDとテナントIDとを応答する。
S2.15において、リソースサーバモジュール310が、APIに応じた処理として、取得したテナント専用クライアントのテナントIDを確認する。リソースサーバモジュール310は、テナント専用クライアントのテナントIDを用いて、以下の処理を実施する。リソースサーバモジュール310は、API呼び出し時に受信した、各種デバイス500で検出された情報を、テナント専用クライアントのテナントIDの情報として取り扱う。より具体的には、リソースサーバモジュール310は、API呼び出し時に受信した情報を、テナント専用クライアントのテナントIDに所属するユーザのみが参照可能な形式で不揮発メモリに記憶する。また、例えば、リソースサーバモジュール310は、テナント専用クライアントのテナントIDに所属するユーザに対して、電子メールを送信する。どのようなアクションを行うかは、公開するAPI毎に定義される。
次に、S2.16において、リソースサーバモジュール310が、APIの応答としてリソースサーバ連携アプリケーション540に応答し、処理を終了する。以上が、第三の方式の第二の方法による、リソースサーバモジュール310が提供するサービスの利用である。
第三の方式では、デバイス利用者のテナント専用のクライアントとしてデバイスを登録する事が可能となるため、デバイスから送信されるデータは、デバイスの利用者のテナントと紐づけられる。第三の方式では、デバイスとテナントの紐づけを、第一の方式のようにデバイスシリアルIDを使って実施しないので、リマニュファクチャリングやリファービッシュが発生しても、情報が漏洩するリスクが低減する。また、第三の方式では、第二の方式のようにユーザを仲介していないので、ユーザのログイン状況や、ユーザの登録状況に依存した制限は発生しない。したがって、マルチテナントの形態であるクラウドサービスを利用する場合においても、クライアントが特定のテナントに所属する事が可能となる。その結果、データに含まれる個人のプライバシーに関する情報や機密情報が、他のテナントやクラウドサービスを提供するベンダーに漏洩するリスクが低減される。
なお、第一、第二、第三の方式は、デバイスにおけるユースケースによって使い分けることができる。つまり、全ての方式を実現可能に構成する事が可能である。もちろん、排他的にいずれかの方式を実施するようにしてもよい。
図11および図12は、リソースサーバ連携アプリケーションとリソースサーバモジュールにおいて第一、第二、第三の方式を使い分ける判断処理を説明する図である。
図11は、リソースサーバ連携アプリケーション540によるデータ送信処理を説明するフローチャートである。送信されるデータは、API呼び出しの際つまりサービスの利用時にリソースサーバモジュール310に送信されるデータ(例えばアップロード対象となるデータ)である。
S11.1において、リソースサーバ連携アプリケーション540が、データを検出する。続いて、S11.2において、リソースサーバ連携アプリケーション540は、データに個人情報を含むか否かを判断する。データに個人情報を含まない場合は、処理がS11.3に進む。そして、リソースサーバ連携アプリケーション540が、第一の方式を用いて、リソースサーバモジュール310のAPIを呼び出す。なお、データに個人情報を含まない場合に、処理がS11.4に進むようにしてもよい。また、S11.4乃至S11.7の処理を省略し、データに個人情報を含む場合に、S11.8に進んで、第三の方式でAPI呼び出しを行うようにしてもよい。
S11.4において、リソースサーバ連携アプリケーション540が、送信するデータが認可サーバモジュール210のユーザに関連するデータであるか否かを判断する。ユーザに関連するデータは、例えば、ユーザの操作ログである。送信するデータが認可サーバモジュール210のユーザに関連するデータである場合は、処理がS11.5に進む。S11.5において、リソースサーバ連携アプリケーション540が、ユーザがデバイス500にログイン状態であるか否かを判断する。ユーザがデバイス500にログイン状態である場合は、処理がS11.6に進む。そして、S11.6において、リソースサーバ連携アプリケーション540が、第二の方式の第二の方法のうち、ログインコンテキストに紐づけてリフレッシュトークンを保存している構成を用いて、リソースサーバモジュール310のAPIを呼び出す。
ユーザがデバイス500にログインしていない状態である場合は、処理がS11.7に進む。そして、S11.7において、リソースサーバ連携アプリケーション540が、第二の方式の第二の方法のうち、アプリケーションIDに紐づけてリフレッシュトークンを保存している構成を用いて、リソースサーバモジュール310のAPIを呼び出す。なお、S11.4において、送信するデータが認可サーバモジュール210のユーザに関連するデータであると判断された場合に、S11.5の判断処理を省略してもよい。この場合には、リソースサーバ連携アプリケーション540は、第二の方式、つまりリソースサーバ300のサービスにおける権限をデバイス500に委譲したユーザが所属するテナントを利用する方式でAPIを呼び出す。
S11.4において、送信するデータが認可サーバモジュール210のユーザに関連するデータでない場合は、処理がS11.8に進む。そして、S11.8において、リソースサーバ連携アプリケーション540が、第三の方式を用いて、リソースサーバモジュール310のAPIを呼び出す。以上の処理により、リソースサーバ連携アプリケーション540は、データの特性によって複数の方式を使い分けて、リソースサーバモジュール310のサービスを利用することが可能となる。
図12は、リソースサーバモジュール310によるデータの受信処理を説明するフローチャートである。
S12.1において、リソースサーバモジュール310が、データを受信する。その際、リソースサーバモジュール310は、APIとして認可トークンまたはアプリケーション用認可トークンを合わせて受信する。続いて、S12.2において、認可トークンに紐づく情報を取得する。具体的には、リソースサーバモジュール310は、認可サーバモジュール210に対して認可トークンの検証を依頼し、その応答として認可トークンに紐づく情報を取得する。認可トークンに紐づく情報として、Authorization Code Grantを用いる方式の場合は、ユーザのUUID、ユーザのテナントID、クライアントID、クライアントのテナントIDが取得される。認可トークンに紐づく情報として、デバイスシリアルID、アプリケーションIDが取得される場合もある。
S12.3において、リソースサーバモジュール310が、認可トークンに紐づく情報に、ユーザのUUIDが含まれているか否かを判断する。認可トークンに紐づく情報に、ユーザのUUIDが含まれている場合は、処理がS12.4に進む。そして、S12.4において、リソースサーバモジュール310が、ユーザのUUIDとユーザのテナントIDとに紐づけてデータを保存し、処理を終了する。
認可トークンに紐づく情報にユーザのUUIDが含まれていない場合は、処理がS12.5に進む。そして、S12.5において、リソースサーバモジュール310が、認可トークンに紐づく情報のクライアントのテナントIDを確認することで、クライアントのテナントがベンダーであるか否かを判断する。クライアントのテナントがベンダーである場合は、処理がS12.6に進む。そして、S12.6において、リソースサーバモジュール310が、データをベンダーに紐づけて保存し、処理を終了する。
クライアントのテナントがベンダーでない場合は、処理がS12.7に進む。そして、S12.7において、リソースサーバモジュール310が、クライアントのテナントIDに紐づけてデータを保存し、処理を終了する。以上の処理により、デバイス500が送信したデータは、データの特性に従ってリソースサーバモジュール310で保存されるようになる。その結果、リソースサーバ連携アプリケーション540は、個人のプライバシーに関する情報や機密情報が含まれるような詳細なデータを送信できるようになる。その結果、リソースサーバモジュール310もセキュリティが確保された状態でデータを取り扱う事が可能となる。また、例えばビッグデータとして蓄積される情報に関して、テナント内では、より有用な解析結果を得る事が可能となる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
200 認可サーバ
300 リソースサーバ
400 端末
500 デバイス

Claims (18)

  1. 情報処理装置と、ネットワークを介してサービスを提供するサービス提供装置と、認可サーバとを含み、前記情報処理装置をクライアントとして前記認可サーバに登録する権限委譲システムであって、
    前記情報処理装置は、
    前記認可サーバへの第1のクライアントの登録に応じて前記認可サーバから提供された第1の認証情報を基に、第2のクライアントを作成するユーザの権限が前記第1のクライアントへ委譲されたことを示す第1の認可情報の取得要求をする第1の取得要求手段と、
    前記第1の取得要求手段による前記取得要求によって前記第1の認可情報が取得されたことに応じて、前記認可サーバへの前記第2のクライアントの登録要求をする登録要求手段と、を有し、
    前記認可サーバは、
    前記登録要求とともに送信された前記第1の認可情報を基に前記ユーザのテナントを特定し、特定された前記テナントと新たに登録する前記第2のクライアントとを紐付けて管理する管理手段と、
    前記テナントと紐付けて管理される前記第2のクライアントに対応する第2の認証情報を発行する発行手段と、を有し、
    さらに、前記情報処理装置は、
    前記登録要求による前記第2のクライアントの登録に応じて前記認可サーバから提供された前記第2の認証情報を基に、特定の権限が前記第2のクライアントに委譲されたことを示す第2の認可情報の取得要求をする第2の取得要求手段と、
    前記第2の取得要求手段による前記取得要求によって取得された前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する利用手段とを有し、
    前記サービス提供装置は、前記第2の認可情報を基に特定された前記テナントを確認し、サービスの提供に関するデータを確認された前記テナントに紐付けて保存する保存手段を有する
    ことを特徴とする権限委譲システム。
  2. 前記認可サーバは、
    前記第1の認可情報の取得要求に応じて、前記ユーザが操作する端末に対して認可確認画面データを送信する画面送信手段と、
    前記端末にて表示される認可確認画面を介し、前記ユーザが前記第2のクライアントを作成する権限を前記第1のクライアントに委譲することを許可する指示をした場合、前記第1の認可情報を提供する第1の提供手段と、
    前記第2の取得要求手段からの前記取得要求に応じて、前記第2の認可情報を提供する第2の提供手段と、
    前記利用手段による前記サービス提供装置のサービスの利用の際に送信される前記第2の認可情報を基に、前記利用手段が前記特定の権限で前記サービス提供装置のサービスを利用することを認可するか否かを検証する認可手段と、を有する
    ことを特徴とする請求項1に記載の権限委譲システム。
  3. 前記認可サーバへの第1のクライアントの登録は、前記ユーザのテナントの情報を含んでいない登録要求によってなされる
    ことを特徴とする請求項1または請求項2に記載の権限委譲システム。
  4. 前記認可サーバは、少なくとも前記第2のクライアントと前記テナントとに紐付けられる前記第2の認可情報を記憶する記憶手段を有する
    ことを特徴とする請求項1乃至3のいずれか1項に記載の権限委譲システム。
  5. 前記利用手段は、前記サービスの利用時に前記サービス提供装置に送信するデータに個人情報を含むかを判断し、前記データに個人情報を含む場合に、前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する
    ことを特徴とする請求項1乃至4のいずれか1項に記載の権限委譲システム。
  6. 前記利用手段は、前記データに個人情報を含む場合に、前記データが前記認可サーバのユーザに関連するデータであるかを判断し、前記データが前記認可サーバのユーザに関連するデータでない場合に、前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する
    ことを特徴とする請求項5に記載の権限委譲システム。
  7. 前記利用手段は、前記データに個人情報を含まない場合に、前記認可サーバに登録される前記情報処理装置とテナントとに紐付く認可情報と、前記サービス提供サーバに登録される前記情報処理装置に紐付くテナントとを利用する第一の方式で、前記サービス提供装置のサービスを利用する
    ことを特徴とする請求項5または請求項6に記載の権限委譲システム。
  8. 前記情報処理装置が、前記情報処理装置を示すデバイスシリアルIDとともに、前記テナントを示すテナントIDに紐付くキーを前記サービス提供サーバに送信することで、前記テナントが前記情報処理装置と紐付けられて前記サービス提供サーバに登録される
    ことを特徴とする請求項7に記載の権限委譲システム。
  9. 前記利用手段は、
    前記データが前記認可サーバのユーザに関連するデータである場合に、前記サービス提供装置のサービスに関する権限を前記情報処理装置に委譲したユーザに紐付く認可情報を利用する第二の方式で、前記サービス提供装置のサービスを利用する
    ことを特徴とする請求項6に記載の権限委譲システム。
  10. 前記利用手段は、
    前記データが前記認可サーバのユーザに関連するデータである場合に、前記ユーザが前記情報処理装置にログインしているかを判断し、
    前記ユーザが前記情報処理装置にログインしていない場合に、前記第二の方式のうち、前記権限の委譲によって前記情報処理装置にアプリケーションIDに紐付けて保存されるリフレッシュトークンのリフレッシュ要求に起因して発行される認可情報を用いる方式で、前記サービス提供装置のサービスを利用する
    ことを特徴とする請求項9に記載の権限委譲システム。
  11. 前記利用手段は、
    前記データが前記認可サーバのユーザに関連するデータである場合に、前記ユーザが前記情報処理装置にログインしているかを判断し、
    前記ユーザが前記情報処理装置にログインしている場合に、前記第二の方式のうち、前記権限の委譲によって前記情報処理装置にログインコンテキストに紐付けて保存されるリフレッシュトークンのリフレッシュ要求に起因して発行される認可情報を用いる方式で、前記サービス提供装置のサービスを利用する
    ことを特徴とする請求項9に記載の権限委譲システム。
  12. 前記第1の認可情報の取得要求は、前記第1のクライアントを示すクライアントIDとシークレットとを有する前記第1の認証情報を含み、
    前記第2の認可情報の取得要求は、前記第2のクライアントを示すクライアントIDとシークレットとを有する前記第2の認証情報を含む
    ことを特徴とする請求項1乃至11のいずれか1項に記載の権限委譲システム。
  13. ネットワークを介して認可サーバにクライアントとして登録され、サービス提供装置が提供するサービスを利用する情報処理装置であって、
    前記認可サーバへの第1のクライアントの登録に応じて前記認可サーバから提供された第1の認証情報を基に、第2のクライアントを作成するユーザの権限が前記第1のクライアントへ委譲されたことを示す第1の認可情報の取得要求をする第1の取得要求手段と、
    前記第1の取得要求手段による前記取得要求によって前記第1の認可情報が取得されたことに応じて、前記認可サーバへの前記第2のクライアントの登録要求をする登録要求手段と、を有し、
    前記認可サーバによって、前記登録要求とともに送信された前記第1の認可情報を基に特定される前記ユーザのテナントと新たに登録する前記第2のクライアントとが紐付けて管理され、前記テナントと紐付けて管理される前記第2のクライアントに対応する第2の認証情報が発行され、
    さらに、前記情報処理装置は、前記登録要求による前記第2のクライアントの登録に応じて前記認可サーバから提供された前記第2の認証情報を基に、特定の権限が前記第2のクライアントに委譲されたことを示す第2の認可情報の取得要求をする第2の取得要求手段と、
    前記第2の取得要求手段による前記取得要求によって取得された前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する利用手段と、を有する
    ことを特徴とする情報処理装置。
  14. 前記認可サーバへの前記第1のクライアントの登録は、前記ユーザのテナントの情報を含んでいない登録要求によってなされる
    ことを特徴とする請求項13に記載の情報処理装置。
  15. 情報処理装置をクライアントとして登録し、前記情報処理装置がネットワークを介してサービス提供装置が提供するサービスを利用するための認可処理を行う認可サーバであって、
    前記情報処理装置からの第1のクライアントの登録要求に応じて前記第1のクライアントを登録するとともに、第1の認証情報を発行する第1の発行手段と、
    前記第1の認証情報を提供された前記情報処理装置が実行する、第2のクライアントを作成するユーザの権限が前記情報処理装置へ委譲されたことを示す第1の認可情報の取得要求に応じて、前記第1の認可情報を前記情報処理装置に提供する第1の提供手段と、
    前記第1の認可情報を提供された前記情報処理装置が実行する、前記第2のクライアントの登録要求に応じて、前記登録要求とともに送信された前記第1の認可情報を基に前記ユーザのテナントを特定し、特定された前記テナントと新たに登録する前記第2のクライアントとを紐付けて管理する管理手段と、
    前記テナントと紐付けて管理される前記第2のクライアントに対応する第2の認証情報を発行する第2の発行手段と、
    前記情報処理装置からの、前記第2のクライアントの登録に応じて提供される前記第2の認証情報を基にした、特定の権限が前記情報処理装置に委譲されたことを示す第2の認可情報の取得要求に応じて、前記第2の認可情報を前記情報処理装置に提供する第2の提供手段と、を有し、
    前記情報処理装置によって、前記第2の認可情報を基に、前記サービス提供装置のサービスが利用される
    ことを特徴とする認可サーバ。
  16. 前記認可サーバへの前記第1のクライアントの登録は、前記ユーザのテナントの情報を含んでいない登録要求によってなされる
    ことを特徴とする請求項15に記載の認可サーバ。
  17. 情報処理装置をクライアントとして登録し、前記情報処理装置がネットワークを介してサービス提供装置が提供するサービスを利用するための認可処理を行う認可サーバの制御方法であって、
    前記情報処理装置からの第1のクライアントの登録要求に応じて前記第1のクライアントを登録するとともに、第1の認証情報を発行する第1の発行工程と、
    前記第1の認証情報を提供された前記情報処理装置が実行する、第2のクライアントを作成するユーザの権限が前記情報処理装置へ委譲されたことを示す第1の認可情報の取得要求に応じて、前記第1の認可情報を前記情報処理装置に提供する第1の提供工程と、
    前記第1の認可情報を提供された前記情報処理装置が実行する、前記第2のクライアントの登録要求に応じて、前記登録要求とともに送信された前記第1の認可情報を基に前記ユーザのテナントを特定し、特定された前記テナントと新たに登録する前記第2のクライアントとを紐付けて管理する管理工程と、
    前記テナントと紐付けて管理される前記第2のクライアントに対応する第2の認証情報を発行する第2の発行工程と、
    前記情報処理装置からの、前記第2のクライアントの登録に応じて提供される前記第2の認証情報を基にした、特定の権限が前記情報処理装置に委譲されたことを示す第2の認可情報の取得要求に応じて、前記第2の認可情報を前記情報処理装置に提供する第2の提供工程と、を有し、
    前記情報処理装置によって、前記第2の認可情報を基に、前記サービス提供装置のサービスが利用される
    ことを特徴とする制御方法。
  18. コンピュータに請求項17に記載の制御方法を実行させることを特徴とするプログラム。
JP2015240613A 2015-12-09 2015-12-09 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム Active JP6727799B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015240613A JP6727799B2 (ja) 2015-12-09 2015-12-09 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム
US15/362,128 US10375069B2 (en) 2015-12-09 2016-11-28 Authorization delegation system, information processing apparatus, authorization server, control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015240613A JP6727799B2 (ja) 2015-12-09 2015-12-09 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2017107396A true JP2017107396A (ja) 2017-06-15
JP2017107396A5 JP2017107396A5 (ja) 2019-01-17
JP6727799B2 JP6727799B2 (ja) 2020-07-22

Family

ID=59021011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015240613A Active JP6727799B2 (ja) 2015-12-09 2015-12-09 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム

Country Status (2)

Country Link
US (1) US10375069B2 (ja)
JP (1) JP6727799B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019012447A (ja) * 2017-06-30 2019-01-24 キヤノン株式会社 情報処理装置、管理サーバ、サービス提供サーバ、画像処理装置、情報処理システム、制御方法、および、プログラム
JP2019046060A (ja) * 2017-08-31 2019-03-22 キヤノン株式会社 権限委譲システム、制御方法、およびプログラム
EP3462701A1 (en) 2017-09-27 2019-04-03 Canon Kabushiki Kaisha Device, control method of the same, and program
EP3525415A1 (en) 2018-02-09 2019-08-14 Canon Kabushiki Kaisha Information processing system and control method therefor
JP2019200484A (ja) * 2018-05-14 2019-11-21 キヤノン株式会社 デバイス管理システム及び方法
CN110930163A (zh) * 2019-10-23 2020-03-27 贝壳技术有限公司 一种房源委托业务的实现方法、系统及存储介质
JP2020119147A (ja) * 2019-01-22 2020-08-06 キヤノン株式会社 システム、テナントの移動方法、情報処理装置およびその制御方法、認可サーバーおよびその制御方法、並びにプログラム
CN111562891A (zh) * 2019-02-13 2020-08-21 佳能株式会社 打印设备、控制方法及存储介质
US11582232B2 (en) * 2019-11-07 2023-02-14 Canon Kabushiki Kaisha Authority transfer system, server and method of controlling the server, and storage medium

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6729145B2 (ja) * 2016-08-03 2020-07-22 富士通株式会社 接続管理装置、接続管理方法および接続管理プログラム
EP3742667A1 (en) 2016-09-02 2020-11-25 Assa Abloy AB Key delegation for controlling access
US10785200B2 (en) * 2016-11-29 2020-09-22 Ricoh Company, Ltd. Information processing system, information processing terminal, and information processing method for reducing burden of entering a passcode upon signing in to a service
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
KR101816651B1 (ko) * 2017-02-14 2018-01-09 주식회사 코인플러그 Utxo 기반 프로토콜의 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
US10491595B2 (en) 2017-07-31 2019-11-26 Airwatch, Llc Systems and methods for controlling email access
US10491596B2 (en) * 2017-07-31 2019-11-26 Vmware, Inc. Systems and methods for controlling email access
US10721222B2 (en) * 2017-08-17 2020-07-21 Citrix Systems, Inc. Extending single-sign-on to relying parties of federated logon providers
US11138529B2 (en) * 2017-09-11 2021-10-05 Bentley Systems, Incorporated Techniques for coordinating codes for infrastructure modeling
WO2020251563A1 (en) * 2019-06-12 2020-12-17 Visa International Service Association System and method for authorizing a transaction
EP4036769A4 (en) 2019-11-26 2023-11-01 Kabushiki Kaisha Toshiba APPROVAL SYSTEM
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
US11582236B2 (en) 2020-09-24 2023-02-14 Toshiba Tec Kabushiki Kaisha Image forming apparatus and controlling method
JP7543154B2 (ja) * 2021-01-29 2024-09-02 キヤノン株式会社 認証連携サーバ、認証連携方法、認証連携システムおよびプログラム
US12210579B2 (en) 2021-11-30 2025-01-28 Salesforce, Inc. High scalable document generation service
US12155658B2 (en) * 2021-11-30 2024-11-26 Salesforce, Inc. Multi-tenant two-stage authentication
US11411954B1 (en) 2021-12-27 2022-08-09 Coretech LT, UAB Access control policy for proxy services
US12210506B2 (en) 2022-12-07 2025-01-28 Bentley Systems, Incorporated Serverless code service
US20240223402A1 (en) * 2022-12-29 2024-07-04 Garantir LLC Sharing secrets over one or more computer networks using proxies
US12321792B2 (en) 2023-01-17 2025-06-03 Bentley Systems, Incorporated Serverless property store

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130044343A1 (en) * 2011-08-19 2013-02-21 Canon Kabushiki Kaisha Server system and control method thereof, and computer-readable medium
JP2015005202A (ja) * 2013-06-21 2015-01-08 キヤノン株式会社 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
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
JP2015095056A (ja) * 2013-11-11 2015-05-18 キヤノン株式会社 認可サーバーシステム、その制御方法、およびそのプログラム。

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997246B2 (en) * 2005-10-04 2015-03-31 Disney Enterprises, Inc. System and/or method for authentication and/or authorization via a network
WO2008042913A2 (en) * 2006-10-02 2008-04-10 Presenceid, Inc. Systems and methods for delegating information technology authorization to at least one other person
US8505078B2 (en) * 2008-12-28 2013-08-06 Qualcomm Incorporated Apparatus and methods for providing authorized device access
US8505084B2 (en) * 2009-04-06 2013-08-06 Microsoft Corporation Data access programming model for occasionally connected applications
US9699170B2 (en) * 2011-09-29 2017-07-04 Oracle International Corporation Bundled authorization requests
US9043886B2 (en) * 2011-09-29 2015-05-26 Oracle International Corporation Relying party platform/framework for access management infrastructures
WO2014042446A2 (ko) * 2012-09-12 2014-03-20 엘지전자 주식회사 무선 통신 시스템에서 특정 리소스에 대한 특정 권한 획득을 요청하기 위한 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130044343A1 (en) * 2011-08-19 2013-02-21 Canon Kabushiki Kaisha Server system and control method thereof, and computer-readable medium
JP2015005202A (ja) * 2013-06-21 2015-01-08 キヤノン株式会社 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
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
JP2015095056A (ja) * 2013-11-11 2015-05-18 キヤノン株式会社 認可サーバーシステム、その制御方法、およびそのプログラム。

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019012447A (ja) * 2017-06-30 2019-01-24 キヤノン株式会社 情報処理装置、管理サーバ、サービス提供サーバ、画像処理装置、情報処理システム、制御方法、および、プログラム
JP2019046060A (ja) * 2017-08-31 2019-03-22 キヤノン株式会社 権限委譲システム、制御方法、およびプログラム
US10754934B2 (en) 2017-09-27 2020-08-25 Canon Kabushiki Kaisha Device, control method of the same, and storage medium
EP3462701A1 (en) 2017-09-27 2019-04-03 Canon Kabushiki Kaisha Device, control method of the same, and program
EP3525415A1 (en) 2018-02-09 2019-08-14 Canon Kabushiki Kaisha Information processing system and control method therefor
US11082225B2 (en) 2018-02-09 2021-08-03 Canon Kabushiki Kaisha Information processing system and control method therefor
JP2019200484A (ja) * 2018-05-14 2019-11-21 キヤノン株式会社 デバイス管理システム及び方法
JP7123621B2 (ja) 2018-05-14 2022-08-23 キヤノン株式会社 デバイス管理システム及び方法
JP2020119147A (ja) * 2019-01-22 2020-08-06 キヤノン株式会社 システム、テナントの移動方法、情報処理装置およびその制御方法、認可サーバーおよびその制御方法、並びにプログラム
JP7208807B2 (ja) 2019-01-22 2023-01-19 キヤノン株式会社 システム、テナントの移動方法、情報処理装置およびその制御方法、並びにプログラム
CN111562891A (zh) * 2019-02-13 2020-08-21 佳能株式会社 打印设备、控制方法及存储介质
JP2020135069A (ja) * 2019-02-13 2020-08-31 キヤノン株式会社 印刷装置、制御方法、プログラム
JP7362260B2 (ja) 2019-02-13 2023-10-17 キヤノン株式会社 印刷装置、制御方法、プログラム
CN111562891B (zh) * 2019-02-13 2024-05-24 佳能株式会社 打印设备、控制方法及存储介质
CN110930163A (zh) * 2019-10-23 2020-03-27 贝壳技术有限公司 一种房源委托业务的实现方法、系统及存储介质
CN110930163B (zh) * 2019-10-23 2023-04-18 贝壳找房(北京)科技有限公司 一种房源委托业务的实现方法、系统及存储介质
US11582232B2 (en) * 2019-11-07 2023-02-14 Canon Kabushiki Kaisha Authority transfer system, server and method of controlling the server, and storage medium

Also Published As

Publication number Publication date
US10375069B2 (en) 2019-08-06
JP6727799B2 (ja) 2020-07-22
US20170171201A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
JP6727799B2 (ja) 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム
CN110138718B (zh) 信息处理系统及其控制方法
CN109428947B (zh) 权限转移系统及其控制方法和存储介质
US9571494B2 (en) Authorization server and client apparatus, server cooperative system, and token management method
JP6061633B2 (ja) デバイス装置、制御方法、およびそのプログラム。
JP6882080B2 (ja) 画像処理装置、方法、プログラム及びシステム
JP6929181B2 (ja) デバイスと、その制御方法とプログラム
US11023568B2 (en) Image processing apparatus, system related to image processing apparatus, and method
JP7058949B2 (ja) 情報処理システム、制御方法及びそのプログラム
JP6675163B2 (ja) 権限委譲システム、認可サーバの制御方法、認可サーバおよびプログラム
JP6141041B2 (ja) 情報処理装置及びプログラム、制御方法
US10326758B2 (en) Service provision system, information processing system, information processing apparatus, and service provision method
JP7030476B2 (ja) 画像処理装置、画像処理装置の制御方法、プログラム、システム、およびシステムの制御方法
JP2019046059A (ja) 権限委譲システム、制御方法、およびプログラム
JP2016009299A (ja) シングルサインオンシステム、端末装置、制御方法およびコンピュータプログラム
CN111316267A (zh) 使用委托身份的认证
JP6278651B2 (ja) ネットワークシステム、管理サーバシステム、制御方法及びプログラム
JP7543150B2 (ja) 多要素認証機能を備えた画像形成装置
JP2019046133A (ja) 情報処理装置、制御方法、およびプログラム
JP6859195B2 (ja) 情報処理システム、制御方法及びそのプログラム
JP2014167664A (ja) 認証システム、モバイル端末、認証サーバ及び画像形成装置
JP2016115260A (ja) 権限移譲システム、権限移譲システムに用いられる認可サーバー、リソースサーバー、クライアント、媒介装置、権限移譲方法およびプログラム
JP2016009466A (ja) Webサービスシステム、認証認可装置、情報処理装置、情報処理方法及びプログラム
JP2021060924A (ja) 情報処理装置、情報処理システム及びプログラム
JP2017120502A (ja) クラウドサービスへのIoT機器の登録方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200701

R151 Written notification of patent or utility model registration

Ref document number: 6727799

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151