JP6198477B2 - 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム - Google Patents

権限移譲システム、認可サーバーシステム、制御方法、およびプログラム Download PDF

Info

Publication number
JP6198477B2
JP6198477B2 JP2013130857A JP2013130857A JP6198477B2 JP 6198477 B2 JP6198477 B2 JP 6198477B2 JP 2013130857 A JP2013130857 A JP 2013130857A JP 2013130857 A JP2013130857 A JP 2013130857A JP 6198477 B2 JP6198477 B2 JP 6198477B2
Authority
JP
Japan
Prior art keywords
authority
service
application
authorization
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.)
Active
Application number
JP2013130857A
Other languages
English (en)
Other versions
JP2015005202A (ja
Inventor
勇人 松ヶ下
勇人 松ヶ下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013130857A priority Critical patent/JP6198477B2/ja
Priority to US14/308,502 priority patent/US9521144B2/en
Publication of JP2015005202A publication Critical patent/JP2015005202A/ja
Application granted granted Critical
Publication of JP6198477B2 publication Critical patent/JP6198477B2/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
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

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)

Description

権限移譲システムにおけるクライアント登録を行う権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
OAuth2.0と呼ばれる認可の連携を実現させるための標準プロトコルが策定されている(非特許文献1を参照)。OAuth2.0によれば、例えばインターネット上に備えられたサービスAが管理するユーザーのデータに対し、ユーザーにより認可されたアプリケーションであって、そのユーザーが操作する端末に備えられたアプリケーションBがアクセスすることができる。OAuth2.0においては、アプリケーションBのように権限の移譲を受ける主体をOAuthクライアント、または単にクライアントと呼ぶ。このときサービスAは、アプリケーションBからアクセスされる範囲を明らかにした上で、アプリケーションBによるアクセスに対してユーザーの明示的な認可を得ることになっている。ユーザーが明示的に認可を行うことを認可操作と称する。
ユーザーが認可操作を行うと、アプリケーションBはサービスAからアクセスを認められたことを証明するトークン(以下、認可トークンと称する)を受け取り、以降のアクセスはその認可トークンを用いて実現できる。認可トークンを用いるアプリケーションBは、ユーザーの認証情報の入力を求めずに、認可操作を行ったユーザーの権限でサービスAにアクセスできる。そのため、ユーザーから認可を受け認可トークンを取得したアプリケーションBは、その認可トークンを厳重かつ適正に管理する責務を負う。
また、OAuth2.0では、アプリケーションBの成り済ましを防ぐため、認可操作が行われる前にアプリケーションBを事前に認証し規定された権限を与えておく必要がある。このアプリケーションBを認証するために、サービスAは予めアプリケーションBの認証情報、より具体的にはクライアントIDおよびシークレットを発行、管理し、さらにはアプリケーションBにそれら認証情報を設定しておく必要がある。OAuth2.0に付随する仕様として、オンラインによるアプリケーションの登録プロトコルが検討されている(非特許文献2を参照)。このオンライン登録の仕様はDynamic Client Registration Protocolとして定義されている。このDynamic Client Registration Protocolによれば、各クライアント登録の要求元は、クライアント登録用のエンドポイントに対してメタデータを送信する事で動的にクライアント登録され、認証情報を取得する事ができる。エンドポイントはOAuth2.0を実装したサーバーサイドに備えられた認可サービスとなる。この仕組みにより、大量に配布されるアプリケーションに対して個々に認証情報を設定するのではなく、各アプリケーションが主体的に認証情報を取得する事で個々の設定による煩雑さを回避する事ができる。認可トークンの確認時には、ユーザーから移譲された権限の確認のみならず、アプリケーションB自身の権限も確認され、サービスの利用可否が決定される。
"The OAuth 2.0 Authorization Framework"、[online]D.Hardt、2013年5月 <URL http://tools.ietf.org/html/rfc6749> "OAuth 2.0 Dynamic Client Registration Protocol draft−ietf−oauth−dyn−reg−11"、[online]J.Richer、2013年5月 <URL http://tools.ietf.org/html/draft−ietf−oauth−dyn−reg−11>
OAuth2.0を始めとする権限移譲処理におけるアプリケーションの登録プロトコルは、登録を行うアプリケーション全てに対して一律同じ権限を与えている。例えば、特定のアプリケーションに対して不必要な権限を与えてしまった場合、ユーザーの権限がその特定のアプリケーションに与えられてしまえば、利用が想定されていないサービスをその特定のアプリケーションが利用されてしまう可能性がある。
本発明はこれら前述の課題を鑑みてなされたものであり、権限移譲処理におけるアプリケーションの登録プロトコルにおいて、アプリケーションに応じて適切な権限を与えて登録を行う認可サーバーを提供することを目的とする。
本願発明の一実施形に係る権限移譲システムは、アプリケーションを備えたデバイスへサービスを提供するサーバーシステムと、前記サービスにおけるユーザーの権限を前記サービスの利用元へ移譲するための認可処理を行う認可サーバーシステムとを含む権限移譲システムであって、前記アプリケーションを前記利用元として登録する要求を受信したことに応じて前記アプリケーションの権限を特定し、特定された前記権限と前記アプリケーションの識別子とを紐付けて管理する管理手段と、前記サービスを利用するための要求を送信するアプリケーションに前記ユーザーの権限を移譲することを許可する認可操作が行われ、かつ前記アプリケーションが利用する権限が、前記アプリケーションの識別子に紐付く権限内に含まれる場合に前記サービスを提供することを特徴とする。
本発明によれば、権限移譲処理におけるアプリケーションの登録プロトコルにおいて、アプリケーションに応じて適切な権限を与えて登録を行うことが可能となる。
システム構成図 各装置のハードウェア構成図 各装置のソフトウェアモジュール構成図 認可サーバーで管理するクライアント関連テーブル構造 認可サーバーで管理する認可トークン関連テーブル構造 クライアント登録からリソースアクセスまでのシーケンス Authorization Code Grantの場合の認可トークン発行シーケンス 画面例 Client Credentials Grantの場合の認可トークン発行シーケンス 認可トークン検証処理フロー 第2の実施形態における登録シーケンス 登録権限検証処理フロー
本願発明で用いられる用語、および本願発明の各実施例におけるシステムが備えたサービスの概要、およびそのサービスと連携するアプリケーションについて説明する。サービスとはネットワークを介して接続されたサーバーに備えられた機能であり、アクセス元の端末に備えられていない機能を補填することが可能である。サービスを提供すると称した場合、サーバーに備えられた機能をアクセス元、および/またはユーザーに利用させることを意味する。
サービスには、利用量が課金される有償サービスと、課金されない無償サービスとか存在する。有償サービスは基本的に利用者との契約が行われる事で利用可能となり、契約した内容に従ったサービスを安定的に提供する責務を負う。例えば、SLA(Service Level Agreement)と呼ばれるサービスの品質を保証する制度がよく知られている。このSLAには、提供するサービスの最低速度や、利用不可能な時間の上限などが定義されている。ユーザーは、このSLAに定義されているサービスの品質の対価として利用料金を支払う。また、SLAには、定義されている品質が守れなかった場合の処置としてサービス提供者側の罰則や、ユーザーへの保証、例えば利用料金の減額、が定義されている。よって、有償サービスでは、SLAに定義された品質を守る事が非常に重要となっている。無償サービスは、サービスを受けるためのインターフェース仕様が公開されており、第三者にアプリケーション作成の機会が与えられている。無償サービスにはSLAのような規約は存在しない。
そして、本願発明の各実施例におけるシステムが少なくとも備える3つのサービスは次の通りである。1つ目は、有償サービスであり、インターネット上に登録されたユーザーデータをプロビジョニングするためのユーザープロビジョニングサービスが、インターネット上のサーバーに設置されている。2つ目は、有償サービスであり、端末が保持する文書データを印刷可能なデータに変換する有償データ変換サービスが、インターネット上のサーバーに設置されている。3つ目は、無償サービスであり、2つ目のサービス同様、端末が保持する文書データを印刷可能なデータに変換する無償データ変換サービスが、インターネット上のサーバーに設置されている。夫々のサーバーはリソースサーバーと称することとし、本願発明が想定するシステムを構成するサーバーとする。なお、リソースサーバーには1つのサービスが備えられていることとするが、1台のリソースサーバーに異なる2つ以上のサービスが備えられていても良い。
さらに、スマートフォンやタブレットと言った端末に提供されるアプリケーションであって、サービスと連携するアプリケーションにも、有償アプリケーションと無償アプリケーションとが存在する。有償アプリケーションは、有償サービスと同様にユーザーに対して品質を保証する必要がある。さらには、有償サービスのSLAを守るために、有償サービスと連携するアプリケーションの品質を高いコストをかけて作り込む事があり得る。つまりは、有償サービスのSLAを達成するために、サービス提供者は高いコストをかけてアプリケーションを作成する。そして、有償アプリケーションはお金を払ったユーザーに提供され、無償アプリケーションは一律無料で配布される。
このようなシステムの場合、次の様なより具体的な課題が存在する。アプリケーションの配布の煩雑さを回避するために権限移譲処理における従来のアプリケーション登録プロトコルを提供した場合、第三者が作成した無償アプリケーションが有償サービスを利用してしまう事を防ぐことが困難となる。有償サービスにおけるユーザーの権限が無償アプリケーションに移譲されてしまえば、無償アプリケーションは有償アプリケーションと変わらずサービスを利用する権限を有しているため、防げないのである。結果、有償サービス提供者としてはSLAの達成が困難となり有償サービスとしてのビジネスが崩れかねない。さらには、SLA達成のために高いコストをかけて作成したアプリケーションが利用されず費用回収が困難となる。
実施例1では、上述した課題を解決するためのシステムの詳細な説明を行う。本実施の形態に係るシステムである権限移譲システムは、図1に示すような構成のネットワーク上に実現される。100は、Wide Area Network(WAN100)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。101は各構成要素を接続するLocal Area Network(LAN101)である。102は各構成要素を接続する公衆回線である。
200はOAuth2.0を実現するための認可サーバーであり、トークンを発行するための認可処理を行う認可サーバーモジュールが設置されている。300はリソースサーバーであり、ユーザープロビジョニングサービスや、有償データ変換サービス、無償データ変換サービスといったリソースサーバーモジュールが設置されている。なお1台のリソースサーバーに設置されるリソースサーバーモジュールは1つでもよく、複数でもよい。400はスマートフォンと呼ばれる携帯端末や、画像形成装置と言ったデバイス機器であり、1つまたは複数のアプリケーションモジュールがインストールされている。ユーザーはそれらのアプリケーションモジュールを用いてリソースサーバーと通信する。500はデータベースサーバーであり、認可サーバー200とLAN101を介して接続しており、認可サーバーモジュールが利用するデータが格納されている。
また認可サーバー200、リソースサーバー300、端末400はそれぞれWAN100およびLAN101を介して接続されている。なお認可サーバー200、リソースサーバー300、端末400はそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また認可サーバー200、リソースサーバー300、ないしはデータベースサーバー500は同一のサーバー上に構成されていてもよい。なお、夫々のサーバーは複数のサーバーで構成されていても良くサーバーの数に制限はない。そこで、1台または複数のサーバーから構成されるサーバーをサーバーシステムと称し、認可サーバーシステムと記載した場合は、1台または複数の認可サーバーを意味するものとする。
本実施の形態に係る権限移譲システムは、図2に示すような構成のサーバーおよび端末から成るシステム上に実現される。図2は、認可サーバー200、リソースサーバー300、端末400、およびデータベースサーバー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、もしくは公衆回線102を介して接続された他の機器との通信制御処理を実行する。尚、後述の全ての説明においては、特に断りのない限りサーバーにおける実行のハード上の主体はCPU201であり、ソフトウェア上の主体は外部メモリ211にインストールされたアプリケーションプログラムである。
図3は本実施の形態に係る、認可サーバー200、リソースサーバー300、端末400それぞれのモジュール構成を示す図である。なお認可サーバー200、リソースサーバー300、端末400は図2のものと同一である。図中200は認可サーバー200である。認可サーバー200は認可サーバーモジュール600、HTTPサーバーモジュール610を持つ。HTTPサーバーモジュール610はWAN100を介して接続する端末400とのHTTP通信を行うためのモジュールである。また、HTTPサーバーモジュール610は、SSL/TLSによる通信が可能に構成されており、証明書を保存する機能(不図示)を持つ。また、本実施例では、後述するクライアント登録要求を受け付けるエンドポイントにて、要求元に対してX.509形式の証明書による認証を要求するよう構成している。次に、認可サーバーモジュール600は、HTTPサーバーモジュール610を介して端末400からの要求を受け付け、処理し、応答する。その際、本実施例では、HTTPサーバーモジュール610にて、クライアント登録要求を受け付け、要求元の認証に成功した場合、クライアントから受信した証明書を認可サーバーモジュール600に通知するよう構成されている。
図中300はリソースサーバー300である。リソースサーバー300はリソースサーバーモジュール700、HTTPサーバーモジュール710を持つ。HTTPサーバーモジュール710はHTTPサーバーモジュール610と同様の機能を持つ。リソースサーバーモジュール700はHTTPサーバーモジュール710を介して端末400からの要求を受け付け、処理し、応答する。
図中400は端末400である。端末400はアプリ−ション管理モジュール810、Webブラウザー820を備え、一つないしは複数のアプリケーションモジュール800を持つ。810はアプリケーション管理モジュールであり、端末400上で動作する管理対象のアプリケーションモジュール810のライフサイクルを管理する機能を備えている。ライフサイクルとはアプリケーションのインストール、起動、停止、アンインストールを含むアプリケーションの状態を示すものとする。例えば、アプリケーション管理モジュール810はOSGi(Open Services Gateway initiative)アライアンスで規定されたOSGi(登録商標)が考えられる。
アプリケーションモジュール810は端末400が提供するアプリケーション実行環境にて動作するアプリケーションである。このアプリケーションはアプリケーション管理モジュール810にてライフサイクル管理されている。ここでアプリケーションモジュール800は、端末400が既定で持っていてもよく、またアプリケーション管理モジュール810を介して後からインストールされてもよい。さらに、端末400はWWWを利用するためのユーザーエージェントであるWebブラウザー820を備える。また、アプリケーションモジュール800は、自身を証明するためのX.509形式の証明書および、その秘密鍵を保持している。そして、後述のHTTPサーバーモジュール610との通信確立時に利用する事で、HTTPサーバーモジュール610によってアプリケーションモジュールからの要求である事を認証する事ができる。
図4a、図4b、図4c、図4dは認可サーバー200がLAN101を介して通信可能に構成されたデータベースサーバー500の外部メモリに記憶するデータテーブルである。これらデータテーブルは、認可サーバー200の外部メモリに構成する事もできる。
図4aは証明書管理テーブルである。なお、本実施例では、証明書としてX.509形式の証明書を利用する。証明書管理テーブル1200は、証明書のシリアル番号1201、証明書の発行者1202、主体者1203、開始日時1204、終了日時1205、および、後述する関連付けられるテナントのマスターユーザーのDN(Distinguished Name)1206からなる。図4bはクライアント管理テーブル1300である。クライアント管理テーブル1300はクライアントID1301、クライアントシークレット1302、テナントID1303、種別1304、DN1305、クライアント名1306、リダイレクトURL1307から成る。認可サーバー200は、クライアントID1301、シークレット1302の情報の組を検証し、正しければ認証情報を生成することで、各クライアントを認証する機能を備える。クライアント名1306、リダイレクトURL1307は後述のシーケンスで利用される値である。また、種別1304は、当該レコードのクライアントがテナントのマスターユーザーであるかどうか、を識別するためのデータが格納される。
図4cはデフォルト権限管理テーブル1400である。デフォルト権限管理テーブル1400はテナントID1401、デフォルト権限ID1402からなる。テナントID1401はクライアント管理テーブル1300のテナントID1303と互いに参照可能に構成されている。図4dはクライアント権限テーブル1500である。クライアント権限テーブル1500はクライアントID1501、権限ID1502からなる。クライアントID1501はクライアント管理テーブル1300のクライアントID1301と互いに参照可能に構成されている。また、権限ID1502はデフォルト権限管理テーブル1400のデフォルト権限ID1402に設定されている権限IDが格納される。この権限ID1502への権限IDの登録については後述する。なお、図4dの情報は、クライアントから受信した証明書を基に、図4aから図4cを用いて証明書に紐付く権限が特定されることで設定される。即ち、クライアントが送信する証明書に応じて与えられる権限が変わることになる。なお、本実施例におけるIDは識別子の1つの形態でありそれ以外であっても良く、また、例えばクライアントIDと称した場合はクライアントを一意に特定できる情報となる。
図5a、図5b、図5c、図5dは認可サーバー200がLAN101を介して通信可能に構成されたデータベースサーバー500の外部メモリに記憶するデータテーブルである。これらデータテーブルは、認可サーバー200の外部メモリに構成する事もできる。図5aはスコープテーブル1600である。ここでスコープとは、OAuth2.0による権限移譲プロトコル上にて認可情報である認可トークンを発行する際に、その認可トークンによって参照可能なリソースのアクセス範囲のことである。なお、認可情報の表現形式は認可トークン(数字と文字から構成される列)である必要はない。スコープテーブル1600はスコープID1601、スコープの種別1602、後述する画面例で利用するスコープの説明1603、権限ID1604からなる。スコープの種別1602はオーナースコープとクライアントスコープの2種が定義される。ここで、オーナースコープとは、後述するOAuth2.0による権限移譲のフローにおいて、権限移譲元(リソースオーナー)のリソースのアクセス範囲を示す。また、クライアントスコープとは、後述するOAuthによる権限移譲フローにおいて、権限移譲先(クライアント)のリソースのアクセス範囲を示す。また、実施例1におけるリソースのアクセス範囲はサービス単位としたが、サービス内の機能を更に細分化しても良いし、複数のサービスをまとめたサービス群としても良い。そこで、認可トークンによって参照可能なリソースのアクセス範囲を権限と称し、アプリケーション、またはサービスが特定の権限を有することで権限移譲元のサービス、またはサービス群と言った機能を利用することができる。
なお、ここで言うリソースオーナーはOAuth2.0のフローにより対象が変わる。より具体的には、Authorization Code Grantによる認可トークン取得フローの場合は、リソースオーナーはユーザーとなる。またClient Credentials Grantによる認可トークン取得フローの場合は、リソースオーナーはクライアント自身となる。スコープテーブル1600における権限ID1604は、当該スコープIDが示すスコープに対してアクセスするために必要な権限を示し、0個以上の権限IDを紐づける事ができる。ここで、複数の権限IDが紐づいている場合は、その複数の権限IDのうちの少なくとも1個の権限を有していれば、スコープが示すリソースへアクセスできる。また0個の権限IDが紐づいている場合、つまり、一つも権限IDと紐づいていない場合は、当該スコープに対して認証された主体であれば、だれでもアクセス可能であることを示す。
図5bはユーザー管理テーブル1700である。ユーザー管理テーブル1700は、ユーザーID1701、パスワード1702、テナントID1703から成る。認可サーバー200は、ユーザーID1701、パスワード1702の情報の組を検証し、正しければ認証情報を生成することで、各ユーザーを認証する機能を備える。図5cはユーザー権限テーブル1800である。ユーザー権限テーブル1800はユーザーID1801、権限ID1802からなる。ユーザーID1801はユーザー管理テーブル1700のユーザーID1701と互いに参照可能に構成されている。なお、本実施例では、ユーザー権限テーブル1800とクライアント権限テーブル1500とは違うテーブルとして記載しているが、テーブルのカラムの構成上一つのテーブルとして管理する事も可能である。図5dは認可トークン管理テーブル1900である。認可トークン管理テーブル1900は、認可トークンID1901、トークン種別1902、有効期限1903、スコープID1904、クライアントID1905、オーナーID1906から成る。これら認可トークン管理テーブル1900の処理詳細については後述する。
図6を用いて、アプリケーションモジュール800における、クライアントの登録からリソース取得に関する本実施形態のシーケンスを説明する。本シーケンスはユーザーが端末400において、認可サーバーモジュール600に未登録であるアプリケーションモジュール800を利用する際のフローを示している。例えば、端末400のアプリケーションモジュール800においてクライアント登録は最初の一度のみとし、移行は認可トークン取得のシーケンスから実施するよう構成する事もできる。
まず、図6を用いてアプリケーションモジュール800におけるクライアント登録のシーケンスを説明する。S1.1にて、端末400のアプリケーションモジュール800は、認可サーバー200のHTTPサーバーモジュール610に対し、アプリケーションモジュール800をリソースサーバーモジュール330の利用元として登録するためのクライアント登録要求を行う。なお、リソースサーバーモジュール330は1つとは限らず複数でも良いことは上述した通りである。なお、アプリケーションモジュール800がクライアント登録要求を行うきっかけとして、本実施例では、端末400にてユーザーが当該アプリケーションモジュール800をインストールし、初めて起動したタイミングとして説明する。なお、他のきっかけとして、ユーザーがアプリケーションモジュール800の機能を選択し、リソースサーバー300へのリソース要求が発生するタイミングが考えられる。また、アプリケーションモジュール800が明示的に開始する操作を備え、ユーザーが端末400にて当該操作をしたタイミングが考えられる。なお、クライアント登録要求は、クライアント名、Authorization Code Grantを利用するためのリダイレクトURLを含む。また、その他の情報として、クライアントを説明するための文字列や、説明が記載されるサイトのURL、等の付属情報を含むよう構成する事もできる。
アプリケーションモジュール800からのクライアント登録要求を受け付けたHTTPサーバーモジュール610はSSL/TLS通信のネゴシエーションを開始する。その際、デバイス登録要求に関してはクライアント認証を要求するよう設定されているため、アプリケーションモジュール800に対して証明書を要求する。S1.2にてHTTPサーバーモジュール610は不図示の証明書ストアにて設定されている証明書を用いて、取得した証明書を検証し、アプリケーションモジュール800をデバイス登録の要求元として認証する。なお、本実施の形態では、クライアント登録要求の要求元の認証方法としてSSL/TSLの証明書による認証方式にて説明したが、例えば、Basic認証やDigest認証といった、IDおよびパスワードを用いる方式等が考えられる。さらには、これら主体を認証する手段を経て、認証された主体に対してクライアントを登録するための認可トークンを発行する手段を設け、当該認可トークンを検証する事によってクライアント登録を受け付けるよう構成する事も可能である。ここで認証に失敗した場合、HTTPサーバーモジュール610はアプリケーションモジュール800に対してエラーを応答する。
S1.3にて、HTTPサーバーモジュール610は、アプリケーションモジュール800を認証した後に、認可サーバーモジュール600に対して、アプリケーションモジュール800から受信したクライアント登録要求を通知する。その際、認証したアプリケーションモジュール800を識別するための情報も通知する。より具体的には取得した証明書の情報を通知する。S1.4にて認可サーバーモジュール600は、HTTPサーバーモジュール610より通知された証明書の情報を取得する。次に、S1.5にて、認可サーバーモジュール600は、取得した証明書のシリアル番号、発行者、主体者をキーとして証明書管理テーブル1200の情報を特定し、テナントマスターDN1206の情報を取得する。その際、開始日時1204、終了日時1205を有効期間として、検証するよう構成する事もできる。ここで、証明書管理テーブル1200にレコードが無い場合や、有効期間の検証に失敗した場合、認可サーバーモジュール600はHTTPサーバーモジュール610を介してアプリケーションモジュール800にエラーを応答する。
続いて、S1.6にて認可サーバーモジュール600は、取得したテナントマスターDN206をキーとして、クライアント管理テーブル1300からテナントID1303を取得する。そして、取得したテナントID1303をキーとしてデフォルト権限管理テーブル1400から、デフォルト権限ID1402を取得する。取得されるデフォルト権限ID402は複数である事があり得る。また、デフォルト権限管理テーブル1400に一つも登録されていない場合は、後述のクライアント権限テーブル1500への登録は行わない。このように、クライアントであるアプリケーションモジュール800が送信する認証情報に紐付けられた権限が、アプリケーションモジュール800に与えられる。
そして、S1.7にて認可サーバーモジュール600は、取得した情報を元にクライアント管理テーブル1300にクライアントを新規登録する。より具体的には、クライアントID、シークレットを発行し、DNを作成し、それぞれ1301、1302、1305に格納する。そして、取得したクライアント名、リダイレクトURL、および、テナントマスターDN206により特定されたテナントIDを、それぞれ1306、1307および1303に格納する。その際、種別1304は一般とする。そして、S1.8にて認可サーバーモジュール600は発行し、登録したクライアントIDとデフォルト権限管理テーブル1400から取得したデフォルト権限IDとを、クライアント権限テーブル1500に格納する。この際、複数のデフォルト権限IDが取得されている場合は、複数のデータを格納する事になる。
上記登録が完了した後に、S1.9にて認可サーバーモジュール600は、発行したクライアントIDとシークレットを、HTTPサーバーモジュール610を介してアプリケーションモジュール800に応答する。以上がクライアント登録の説明である。これらシーケンスによって、クライアントをオンライン登録する際に、アプリケーションモジュール800を識別し、適切な権限を付与する事が可能となる。
次に、図6を用いてアプリケーションモジュール800における、認可トークンの取得から認可トークンを利用してのリソース取得までを説明する。なお、図中“Ref”は参照を示しており、別図で説明する。また、“Alt”は分岐を示しており、事前のシーケンスの結果による分岐処理を示す。
S1.10にて、アプリケーションモジュール800は認可トークン取得を開始する。なお、認可トークン取得を開始するきっかけとしては、ユーザーが端末400を用いてアプリケーションモジュール800を開始した場合が考えられる。また、アプリケーションモジュール800が明示的に開始する操作を備え、ユーザーが端末400にて当該操作をしたタイミングが考えられる。ここで、認可トークンの発行処理はOAuth2.0に定義されているフローに従って実施される。なお本実施例では、フローとしてAuthorization Code Grant、およびClient Credentials Grantのケースを説明する。Authorization Code Grantによる認可トークン発行処理については図7、図8a、図8bおよび図8cを用いて後述する。また、Client Credentials Grantによる認可トークン発行処理については図9を用いて後述する。S1.11にて、アプリケーションモジュール800は、各認可トークンの取得フローによって認可トークンを取得する。S1.12にて、アプリケーションモジュール800は取得した認可トークンを用いてリソースサーバーモジュール700にリソース要求を行う。ここで、リソースサーバーモジュール700は図6にて不図示のHTTPサーバーモジュール710を介して要求の受信および、応答の送信を行う。
S1.13にてリソースサーバーモジュール700は認可トークン検証要求を認可サーバーモジュール600に行う。ここで、本実施例では、リソースサーバーモジュール700および認可サーバーモジュール600間の通信はLAN101を介して行うよう説明するが、WAN100を介して行うよう構成する事も可能である。その際は、互いのHTTPサーバーモジュール610および、710を介して通信する事になる。認可サーバーモジュール600にて、認可トークン検証要求を受け付けた際に行われる認可トークン検証処理については図10を用いて後述する。
S1.14にてリソースサーバーモジュール700は、認可サーバーモジュール600より認可トークン検証応答を受信する。ここで、検証結果が有効(Valid)である場合は、S1.15にてリソース取得処理を行う。そして、S1.16にてアプリケーションモジュール800に対して取得したリソースを応答し、処理を終了する。また、認可トークン検証応答の結果が無効(Invalid)である場合は、S1.17にてアプリケーションモジュール800に対してエラー応答を行い、処理を終了する。以上が、アプリケーションモジュール800における、認可トークンの取得から認可トークンを利用してのリソース取得までの説明である。
次に、OAuth2.0における Authorization Code Grantの場合の認可トークン発行処理について図7および、図8a、図8b、図8cを用いて説明する。S2.1において、アプリケーションモジュール800はWebブラウザー820を介してHTTPサーバーモジュール610へ認可要求を行う。なお、HTTPサーバーモジュール610において、認可要求を受け付けるエンドポイントは、クライアント認証ではなくユーザー認証を要求するよう設定されている。なお、認可要求には、少なくとも、クライアント登録の結果取得したクライアントIDおよび登録したリダイレクトURL、そして取得する予定のリソース範囲を示す少なくとも一つのオーナースコープを含む、一つないしは複数のスコープIDを含む。取得する予定のリソース、即ちアプリケーションモジュール800が要求する権限は、ユーザーがアプリケーションモジュール800のどの機能を選択し操作したかによって変わってくる。例えば、セキュリティープリントを選択した場合、リソースサーバーが提供するセキュリティー機能とプリント機能が必要になるので、要求する権限は夫々の機能に対応する2つの権限になる。
S2.2においてHTTPサーバーモジュール610は認可要求を受ける。そして、HTTPサーバーモジュール610はS2.3 にて、ユーザー認証をするための認証画面であるログイン画面をWebブラウザー820に応答する。ここで図8aはHTTPサーバーモジュール820が応答するログイン画面例である。本実施例ではユーザーはユーザーIDおよびパスワードを入力し、それらの組がユーザー管理テーブル1700に登録されている情報の組と一致する場合に認証するよう構成されている。なおユーザーを認証する手段として他の手段、例えば、X.509の証明書や、パスワードを複数回入力する多段階認証等、別の手段を構成する事も可能であり、本手段に限定するものではない。図8aは、ユーザーIDを入力するユーザーID入力欄2001、パスワードを入力するパスワード入力欄2002、およびログイン操作を実行するためのログインボタン2003から成る。
S2.4にてユーザーはWebブラウザー820に表示された図8aに必要な情報を入力し、ログインボタン2003を押下する。S2.5にてWebブラウザー820は入力された情報をHTTPサーバーモジュール610に送信する。S2.6にてHTTPサーバーモジュール610はユーザーID、パスワードを取得し、ユーザー管理テーブル1700のユーザーID1701、パスワード1702の情報の組と比較し一致するかを検証する事でユーザーを認証する。HTTPサーバーモジュール610は、ユーザー認証に失敗、つまり、ユーザー管理テーブル1700に取得した情報が登録されていない場合は、不図示の認証エラー画面をWebブラウザー820に応答する。ユーザー認証に成功した場合、HTTPサーバーモジュール610は認証トークンを生成する。この認証トークンはHTTPサーバーモジュール610の不揮発メモリ上に、ユーザーIDと対応付けて保存される。そして、S2.7にてHTTPサーバーモジュール610は、アプリケーションモジュール800から受信した認可要求を認可サーバーモジュール600に通知する。その際、生成した認証トークンを付与して通知する。
S2.8にて認可サーバーモジュール600は受信した認可要求のうち、クライアントIDとリダイレクトURLの組が正しいか検証する。より具体的には、クライアント管理テーブル1300に登録されているクライアントID1301とリダイレクトURL1307の組が一致するか検証する。不一致の場合、認可サーバーモジュール600は不図示のエラー画面を、HTTPサーバーモジュール610を介してWebブラウザー820に応答する。一致した場合、認可サーバーモジュール600はS2.9にてユーザー情報を取得する。より具体的には、HTTPサーバーモジュール610から通知された認証トークンを用いて、HTTPサーバーモジュール610から紐づくユーザーIDを取得する。そして、そのユーザーIDを元にユーザー権限テーブル1800から権限ID1802を取得する。この時、取得される権限ID1802は、0個である場合や複数個である場合がある。なお、本実施例ではユーザー情報の取得を、認証トークンを元にユーザーIDを取得し、認可サーバーモジュール600がユーザー情報を取得する方法で説明したが、この方法に限定するわけではない。例えば、HTTPサーバーモジュール610からこれら必要なユーザー情報が通知されるよう構成する事も可能であるし、また、HTTPサーバーモジュール610へ認証トークンを渡す事で、必要なユーザー情報が取得されるよう構成する事もできる。
S2.10にて認可サーバーモジュール600は、認可要求に含まれるスコープのうち、オーナースコープIDをキーとしてスコープテーブル1600より各オーナースコープの権限ID1604を取得する。そして、S2.11にて認可サーバーモジュール600は、取得したオーナースコープごとの権限ID1604が、ユーザー権限テーブル1800から取得した権限ID1802に含まれているかを検証する。この時、スコープテーブル1600にてオーナースコープIDに紐づく権限ID1604が複数ある場合は、その複数の権限ID1604のうち少なくとも一つの権限IDがユーザーに設定されている場合は有効(Valid)とみなす。無論、全て含まれる場合に有効と見做してもよく、要求する権限が、予め規定されている権限内に含まれるか否かが重要な点である。また、オーナースコープIDに紐づく権限IDが設定されていない場合は、ユーザーの権限に関係なく有効(Valid)とみなす。認可要求に含まれるオーナースコープの内、少なくとも一つ以上の権限IDにて無効(Invalid)となった場合に、認可サーバーモジュール600はS2.28にて、Webブラウザー820に権限エラーを応答する。そして、S2.29にて、Webブラウザー820はアプリケーションモジュール800に権限エラーを応答する。より具体的には、認可要求時に取得したリダイレクトURLに対してWebブラウザー820をリダイレクトするようWebブラウザー820にリダイレクト応答する。S2.30にてアプリケーションモジュール800は図8cに例示した権限エラー画面をWebブラウザー820に応答し、処理を終了する。
認可要求に含まれる全てのオーナースコープに対して有効(Valid)となった場合、S2.12にて認可サーバーモジュール600は、Webブラウザー820に対して認可確認画面を応答する。図8bは応答される認可確認画面の例である。認可確認画面2100は、認可要求に含まれるクライアントIDをキーとしてクライアント管理テーブル1300から取得したクライアント名1306を表示する領域であるアクセス元表示領域2101を備える。また、認可要求に含まれるオーナースコープIDをキーとしてスコープテーブル1600から取得したスコープの説明1603を表示する領域であるスコープ表示領域2102を備える。さらに、認可確認画面2100は、ユーザーが上記情報の内容について認可操作を実行する許可ボタン2103、および拒否を実行する拒否ボタン2104を備える。ここで、ユーザーが拒否ボタン2104を押下した場合は、認可サーバーモジュール600は、オーナー権限検証の結果が無効(Invalid)だった場合と同様にS2.28にてアプリケーションモジュール800に権限エラーを応答する。なお、これら権限エラー応答については、応答を受け付けるアプリケーションモジュール800にて表示する画面の構成、もしくは文言を変更するために、エラー応答の内容を区別可能に構成する事も可能である。
S2.13にてユーザーが認可確認画面2100を介し許可ボタン2103を押下、つまり認可操作を行った場合、Webブラウザー820を介し、S2.14にて認可サーバーモジュール600に認可した事が通知される。S2.15にて認可サーバーモジュール600は、認可コードを発行する。より具体的には、認可トークンIDを発行し、認可要求に含まれるスコープID、クライアントID、認証し許可を得たユーザーのユーザーIDをオーナーIDとして、認可トークン管理テーブル1900に登録する。その際、トークン種別1902は認可コードとし、有効期限1903に当該認可コードが有効である日時を登録する。そして、S2.16、S2.17にて認可サーバーモジュール600は発行した認可コードの認可トークンIDを付与してWebブラウザー820を介し、アプリケーションモジュール800に認可を応答する。より具体的には、認可要求時に取得したリダイレクトURLに対してWebブラウザー820をリダイレクトするようWebブラウザー820にリダイレクト応答する。
S2.18にてアプリケーションモジュール800は、認可サーバーモジュール600に対して認可トークンを要求する。この認可トークン要求には、少なくとも、取得した認可コード、クライアントID、シークレット、および認可要求時に送信したリダイレクトURLを含が含まれる。
S2.19にて認可サーバーモジュール600は取得したクライアントID、シークレットの組をもってクライアントを認証する。より具体的には、クライアント管理テーブル1300のクライアントID1301、シークレット1302の組と一致するかを検証する事で認証する。ここでクライアント認証に失敗した場合はアプリケーションモジュール800に認証エラーを応答する。クライアント認証に成功した場合、S2.20にて認可サーバーモジュール600は、取得した認可コードを検証する。
認可コードの検証としては、取得した認可コードの認可トークンIDが認可トークン管理テーブル1900に登録されているか、登録されている場合は、有効期限1903の範囲内かを検証する。さらには、認可トークン要求にて取得したリダイレクトURLが、認可トークンIDに紐づくクライアントID1905をキーとしてクライアント管理テーブル1300に登録されているリダイレクトURL1307と一致するかを検証する。認可コード検証の結果が無効であった場合、認可サーバーモジュール600はアプリケーションモジュール800にトークン不正エラーを応答する。そして、認可コード検証の結果が有効であった場合、S2.21にて認可サーバーモジュール600はクライアント情報を取得する。より具体的には、認証したクライアントIDをキーにクライアント権限テーブル1500から権限ID1502を取得する。この時、取得される権限ID1502は、0個である場合や複数個である場合がある。
S2.22にて認可サーバーモジュール600は、認可トークン管理テーブル1900より、取得した認可コードの認可トークンIDをキーにスコープID1904を取得する。続いて、取得したスコープのうち、クライアントスコープIDをキーとしてスコープテーブル1600より各クライアントスコープの権限ID1604を取得する。この時、認可トークン管理テーブル1900より取得したスコープIDにクライアントスコープが含まれていない場合、クライアント権限の検証の結果を有効(Valid)とする。
そして、S2.23にて認可サーバーモジュール600は、取得したクライアントスコープごとの権限ID1604が、クライアント権限テーブル1500から取得した権限ID1502に含まれているかを検証する。この時、スコープテーブル1600にてクライアントスコープIDに紐づく権限ID1604が複数ある場合は、その複数の権限ID1604のうち少なくとも一つの権限IDがクライアントに設定されている場合は有効(Valid)とみなす。また、クライアントスコープIDに紐づく権限IDが設定されていない場合は、クライアントの権限に関係なく有効(Valid)とみなす。認可コードに紐づくクライアントスコープの内、少なくとも一つ以上の権限IDの検証にて無効(Invalid)となった場合に、認可サーバーモジュール600はS2.26にてアプリケーションモジュール800に権限エラーを応答する。そして、S2.27にてアプリケーションモジュール800は図8cに例示した権限エラー画面をWebブラウザー820に応答し、処理を終了する。
認可コードに紐づく全てのクライアントスコープに対して有効(Valid)となった場合、S2.24にて認可サーバーモジュール600は認可トークンを発行する。より具体的には、認可トークンIDを発行し、認可コードに紐づくスコープID、オーナーID、認証したクライアントIDを認可トークン管理テーブル1900に登録する。その際、トークン種別1902は認可トークンとし、有効期限1903に当該認可トークンが有効である日時を登録する。そして、S2.24にて認可サーバーモジュール600は発行した認可トークンの認可トークンIDをアプリケーションモジュール800に応答し、処理を終了する。その際、認可トークンの有効期限を応答するよう構成する事もできる。本実施例では、認可トークンを更新するためのリフレッシュトークンを発行しない例で説明したが、認可トークン管理テーブル1900にて、リフレッシュトークンのID、および有効期限を管理するよう構成する事もできる。その際、認可トークン発行時に同時にリフレッシュトークンも発行し、認可トークンの応答時に発行したリフレッシュトークンのIDも含めて応答するよう構成する事もできる。
次に、OAuth2.0におけるClient Credentials Grantの場合の認可トークン発行処理について図9を用いて説明する。S3.1にてアプリケーションモジュール800は、認可サーバーモジュール600に対して認可トークンを要求する。この認可トークン要求には、少なくとも、クライアントID、シークレット、取得する予定のリソース範囲、または利用するサービスの範囲を示す少なくとも一つのオーナースコープを含む。
S3.2にて認可サーバーモジュール600は取得したクライアントID、シークレットの組をもってクライアントを認証する。より具体的には、クライアント管理テーブル1300のクライアントID1301、シークレット1302の組と一致するかを検証する事で認証する。ここでクライアント認証に失敗した場合はアプリケーションモジュール800に認証エラーを応答する。クライアント認証に成功した場合、S3.3にて認可サーバーモジュール600はクライアント情報を取得する。より具体的には、認証したクライアントIDをキーにクライアント権限テーブル1500から権限ID1502を取得する。この時、取得される権限ID1502は、0個である場合や複数個である場合がある。
S3.4にて認可サーバーモジュール600は、認可トークン要求に含まれるスコープのうち、オーナースコープIDをキーとしてスコープテーブル1600より各オーナースコープの権限ID1604を取得する。そして、S3.5にて認可サーバーモジュール600は、取得したオーナースコープごとの権限ID1604が、クライアント権限テーブル1500から取得した権限ID1502に含まれているかを検証する。この時、スコープテーブル1600にてオーナースコープIDに紐づく権限ID1604が複数ある場合は、その複数の権限ID1604のうち少なくとも一つの権限IDがクライアントに設定されている場合は有効(Valid)とみなす。また、オーナースコープIDに紐づく権限IDが設定されていない場合は、クライアントの権限に関係なく有効(Valid)とみなす。
認可トークン要求に含まれる全てのオーナースコープに対して有効(Valid)となった場合はS3.6に移行する。S3.6にて認可サーバーモジュール600は、認可トークン要求に含まれるスコープのうち、クライアントスコープIDをキーとしてスコープテーブル1600より各クライアントスコープの権限ID1604を取得する。この時、認可トークン要求に含まれるスコープIDにクライアントスコープが含まれていない場合、クライアント権限の検証の結果を有効(Valid)とする。そして、S3.7にて認可サーバーモジュール600は、取得したクライアントスコープごとの権限ID1604が、クライアント権限テーブル1500から取得した権限ID1502に含まれているかを検証する。この時、スコープテーブル1600にてクライアントスコープIDに紐づく権限ID1604が複数ある場合は、その複数の権限ID1604のうち少なくとも一つの権限IDがクライアントに設定されている場合は有効(Valid)とみなす。また、クライアントスコープIDに紐づく権限IDが設定されていない場合は、クライアントの権限に関係なく有効(Valid)とみなす。
これら検証の結果、認可トークン要求に含まれるオーナースコープおよびクライアントスコープの内、少なくとも一つ以上の権限IDにて無効(Invalid)となった場合S3.10に移行する。S3.10にて認可サーバーモジュール600はアプリケーションモジュール800に権限エラーを応答し処理を終了する。そして、認可トークン要求に含まれる全てのオーナースコープおよびクラインとスコープの検証にて有効(Valid)となった場合、S3.8にて認可サーバーモジュール600は認可トークンを発行する。より具体的には、認可トークンIDを発行し、認可トークン要求に含まれるスコープID、認証したクライアントのクライアントIDおよび、当該クライアントIDをオーナーIDとして、認可トークン管理テーブル1900に登録する。その際、トークン種別1902は認可トークンとし、有効期限1903に当該認可コードが有効である日時を登録する。そして、S3.9にて認可サーバーモジュール600は発行した認可トークンの認可トークンIDをアプリケーションモジュール800に応答し、処理を終了する。その際、認可トークンの有効期限を応答するよう構成する事もできる。
次に、認可トークン検証処理について図10を用いて説明する。図10は認可サーバーモジュール600にて実施される認可トークン検証処理のフローである。ステップS4.1にて、認可サーバーモジュール600は、リソースサーバーモジュール700より認可トークン検証依頼を受ける。この認可トークン検証依頼には、検証対象となる認可トークンの認可トークンIDおよび、少なくとも一つ以上のスコープIDが含まれている。ステップS4.2にて、認可サーバーモジュール600は、これら認可トークンIDおよび、スコープIDを取得する。次に、ステップS4.3にて認可サーバーモジュール600は、取得した認可トークンIDを元に、認可トークンの情報を取得する。より具体的には、認可トークンID、およびトークン種別:認可トークンをキーとして認可トークン管理テーブル1900から有効期限1903を取得する。そして、ステップS4.4にて、認可トークンが存在しているか、つまり、認可トークン管理テーブル1900に存在するかの検証、および、有効期限内であるかを検証する。検証の結果、存在しない場合、もしくは存在するが有効期限内でない場合は認可トークンが無効と判断し、ステップS4.5にてトークン不正エラーを返却し、処理を終了する。検証の結果、認可トークンが存在し、かつ有効期限内である場合は処理を継続する。
ステップS4.6にて認可サーバーモジュール600は、検証依頼に含まれるスコープの情報を取得する。より具体的には、スコープIDをキーにスコープテーブル1600より各スコープの種別1602、権限ID1604を取得する。次に、ステップS4.7にて、取得した一つないしは複数のスコープの種別1602に少なくとも一つ以上、オーナースコープが含まれているか確認する。結果、一つもない場合はステップS4.11に移行する。一つ以上含まれている場合、ステップS4.8にて認可サーバーモジュール600はオーナー情報を取得する。より具体的には、認可トークンIDをキーに認可トークン管理テーブル1900からオーナーID1908を取得する。そして、取得したオーナーIDをキーにクライアント権限テーブル1500および、ユーザー権限テーブル1800から、それぞれ権限ID1502および、権限ID1802を取得する。この時、取得される権限ID1502は0個である場合や複数個である場合がある。
次に、ステップS4.9にて認可サーバーモジュール600は、ステップS4.6で取得したオーナースコープに対する権限検証を行う。より具体的には、S4.6で取得したオーナースコープIDをキーとしてスコープテーブル1600より各オーナースコープの権限ID1604を取得する。そして、取得したオーナースコープごとの権限ID1604が、ステップS4.8にて取得した権限ID1502か、もしくは権限ID1802に含まれているかを検証する。この時、スコープテーブル1600にてオーナースコープIDに紐づく権限ID1604が複数ある場合は、その複数の権限ID1604のうち少なくとも一つの権限IDがオーナーに設定されている場合は有効とみなす。また、オーナースコープIDに紐づく権限IDが設定されていない場合は、オーナーの権限に関係なく有効とみなす。検証の結果、少なくとも一つ以上の権限IDにて無効となった場合、認可サーバーモジュール600はステップS4.10にてリソースサーバーモジュール700に権限エラーを応答し処理を終了する。検証の結果、S4.6で取得した全てのオーナースコープに対して有効となった場合、認可サーバーモジュール600はステップS4.11に移行する。
ステップS4.11にて認可サーバーモジュール600は、S4.6にて取得した一つないしは複数のスコープの種別1602に少なくとも一つ以上、クライアントスコープが含まれているか確認する。結果、一つもない場合はステップS4.15に移行する。一つ以上含まれている場合、ステップS4.12にて認可サーバーモジュール600はクライアント情報を取得する。より具体的には、認可トークンIDをキーに認可トークン管理テーブル1900からクライアントID1907を取得し、取得したクラインとIDをキーにクライアント権限テーブル1500から権限ID1502を取得する。この時、取得される権限ID1502は0個である場合や複数個である場合がある。
次に、ステップS4.13にて認可サーバーモジュール600は、ステップS4.6で取得したクライアントスコープに対する権限検証を行う。より具体的には、S4.6で取得したクライアントスコープIDをキーとしてスコープテーブル1600より各クライアントスコープの権限ID1604を取得する。そして、取得したクライアントスコープごとの権限ID1604が、ステップS4.12にて取得した権限ID1502に含まれているかを検証する。この時、スコープテーブル1600にてクライアントコープIDに紐づく権限ID1604が複数ある場合は、その複数の権限ID1604のうち少なくとも一つの権限IDがクライアントに設定されている場合は有効とみなす。また、クライアントスコープIDに紐づく権限IDが設定されていない場合は、クライアントの権限に関係なく有効とみなす。検証の結果、少なくとも一つ以上の権限IDにて無効となった場合、認可サーバーモジュール600はステップS4.14にてリソースサーバーモジュール700に権限エラーを応答し処理を終了する。
検証の結果、S4.6で取得した全てのクライアントスコープに対して有効となった場合、認可サーバーモジュール600はステップS4.15に移行する。ステップS4.15にて認可サーバーモジュール600は、認可トークンの検証処理結果として権限が有効であることをリソースサーバーモジュール700に応答し、処理を終了する。これらシーケンスによって、リソースサーバーモジュール700は適切な権限を有した、アプリケーションモジュール800からのアクセスのみを有効とし、意図しないアプリケーションモジュール800からのを権限エラーとして防ぐことが可能となる。
本実施の形態によれば、オンライン登録されるアプリケーションモジュール800に付与する権限を、当該アプリケーションモジュール800を識別して付与する事が可能となる。そして、リソースサーバーモジュール700に対する意図しないアプリケーションモジュール800からの利用を防ぐことが可能となる。例えば、リソースサーバーモジュール700の有償サービスに対しては、有償サービスを利用できるアプリケーションモジュール800(有償アプリケーション)に予め有償サービスが利用できる証明書が組み込まれているので、そのようなアプリケーションモジュール800しか利用できない。
図6で説明したクライアント登録シーケンスでは、認可サーバーモジュール600側にて、クライアントに設定される権限IDを決定する処理を説明した。しかしながら、その処理フローでは、クライアント登録は成功するが、その後の認可トークン発行要求時に権限エラーが発生する可能性がある。その場合、クライアント登録処理が無駄になってしまう。一方、クライアントは、認可要求、もしくは認可トークン発行要求時に指定するクライアントスコープIDは予めわかっている。そこで、クライアントから、クライアント登録時に利用するクライアントスコープをリクエストし、権限が不足なのであれば、その時点で登録エラーが返却されるよう処理する事で無駄なクライアント登録を回避する事ができる。
上記課題を解決するための第2の実施形態について図11、および図12を用いて説明する。なお、第2の実施形態では、図6中のクライアント登録シーケンス以外には差異が無いため説明を省略する。また、図6と同様の処理を実施するシーケンスについては同じシーケンス番号を付与し、説明を省略する。
図11は、第2の実施形態のクライアント登録シーケンスである。S5.1にて、端末400のアプリケーションモジュール800は、認可サーバー200のHTTPサーバーモジュール610に対してクライアント登録要求を行う。なお、アプリケーションモジュール800がクライアント登録要求を行うきっかけとして、本実施例では、端末400にて、ユーザーが当該アプリケーションモジュール800をインストールし、初めて起動したタイミングとして説明する。なお、他のきっかけとして、ユーザーがアプリケーションモジュール800の機能を選択し、リソースサーバー300へのリソース要求が発生するタイミングが考えられる。また、アプリケーションモジュール800が明示的に開始する操作を備え、ユーザーが端末400にて当該操作をしたタイミングが考えられる。なお、クライアント登録要求は、クライアント名、Authorization Code Grantを利用するためのリダイレクトURL、および、認可要求、もしくは認可トークン要求時に指定するクライアントスコープIDを含む。また、その他の情報として、クライアントを説明するための文字列や、説明が記載されるサイトのURL、等の付属情報を含むよう構成する事もできる。
次の、アプリケーションモジュール800からのクライアント登録要求を受け付けた際のHTTPサーバーモジュール610でのクライアント認証処理S1.2の説明は省略する。S5.2にて、HTTPサーバーモジュール610は、アプリケーションモジュール800を認証した後に、認可サーバーモジュール600に対して、アプリケーションモジュール800から受信したクライアント登録要求を通知する。その際、認証したアプリケーションモジュール800を識別するための情報も通知する。より具体的には取得した証明書の情報を通知する。S1.4、S1.5、S1.6を経て、認可サーバーモジュール600デフォルト権限ID1402を取得する。処理詳細については前述のとおりである。
次に、S5.3にて認可サーバーモジュール600は登録権限検証を開始する。この登録権限検証処理については図12を用いて説明する。図12は認可サーバーモジュール600における登録権限検証処理のフローである。ステップS6.1にて認可サーバーモジュール600は、登録権限検証依頼を受け付ける。次に、ステップS6.2にてクライアント登録要求で受けたクライアントスコープ情報を取得する。より具体的には、指定のスコープIDおよび、スコープの種別:クライアントスコープをキーとしてスコープテーブル1600より権限ID1604を取得する。ここで、ステップS6.3にて、指定のスコープIDにクライアントスコープが含まれない場合は、ステップS6.4に移行し、検証結果が有効であったとしてS1.6にて取得したデフォルト権限IDを返却し、処理を終了する。指定のスコープIDにクライアントスコープが含まれる場合は、ステップS6.5に移行する。
ステップS6.5にて認可サーバーモジュール600は、取得したクライアントスコープの権限ID1604がS1.6にて取得したデフォルト権限IDに含まれているかを検証する。少なくとも一つ以上の権限ID1604が、デフォルト権限IDに含まれていない場合、ステップS6.6にて権限エラーを返却し処理を終了する。ステップS6.2にて取得した全ての権限ID1604がデフォルト権限IDに含まれている場合、認可サーバーモジュール600は、ステップS6.7にて、検証結果が有効であったとしてステップ取得した全ての権限ID1604を返却し、処理を終了する。
S5.4にて認可サーバーモジュール600は登録権限検証の処理終了結果を取得する。結果、無効(Invalid)の場合、S5.6にてアプリケーションモジュール800にクライアント登録エラーを応答する。そして、登録権限検証の結果が有効(Valid)の場合、S1.7にて認可サーバーモジュール600は、クライアントを新規登録する。処理の詳細については前述のとおりである。次に、S5.5にて認可サーバーモジュール600は発行し、登録したクライアントIDと登録権限検証の結果取得した権限IDとを、クライアント権限テーブル1500に格納する。この際、複数の権限IDが取得されている場合は、複数のデータを格納する事になる。上記登録が完了した後に、S1.9にて認可サーバーモジュール600は、発行したクライアントIDとシークレットを、HTTPサーバーモジュール610を介してアプリケーションモジュール800に応答する。以上が第2の実施形態におけるクライアント登録の説明である。
上記処理により、認可サーバーモジュール600は、クライアントから、クライアント登録時に利用するスコープのリクエストを受け付け、権限が不足なのであれば、その時点で登録エラーが返却されるよう処理する事が可能となる。結果、無駄なクライアント登録を回避する事ができる。
[その他の実施例]
本願発明の各実施例においては、有償サービス、無償サービス、有償アプリケーション、および無償アプリケーションを例に説明をした。しかし、サービス、およびアプリケーションは必ずしもこれに限るものではない。特定のアプリケーションが、特定のサービスに対し不必要なアクセスを行わせないよう、権限移譲処理におけるアプリケーション登録プロトコルを制限できるものであればどのようなサービス、アプリケーションであっても良い。
また、本願発明の各実施例においては、端末に備えられたアプリケーションと、インターネット上のサービスとの処理における権限移譲の方法を説明した。しかし、端末に備えられたアプリケーションに限らず、インターネットを介して接続されたサーバー型のサービスであっても良い。そこで、本願発明では、連携元の主体をサービスと称することとする。
また、本願発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
200 認可サーバー
210 リソースサーバー
300 画像形成装置
400 端末
500 データベースサーバー
600 認可サーバーモジュール
700 リソースサーバーモジュール
800 アプリケーションモジュール
820 Webブラウザー

Claims (11)

  1. アプリケーションを備えたデバイスへサービスを提供するサーバーシステムと、前記サービスにおけるユーザーの権限を前記サービスの利用元へ移譲するための認可処理を行う認可サーバーシステムとを含む権限移譲システムであって、
    前記アプリケーションを前記利用元として登録する要求を受信したことに応じて前記アプリケーションの権限を特定し、特定された前記権限と前記アプリケーションの識別子とを紐付けて管理する管理手段と、
    前記サービスを利用するための要求を送信するアプリケーションに前記ユーザーの権限を移譲することを許可する認可操作が行われ、かつ前記アプリケーションが利用する権限が、前記アプリケーションの識別子に紐付く権限内に含まれる場合に前記サービスを提供する提供手段と、を有する権限移譲システム。
  2. 前記管理手段は、前記アプリケーションを前記利用元として登録する要求とともに前記アプリケーションの認証情報を受信し、受信された認証情報を基に前記アプリケーションの権限を特定することを特徴とする請求項1に記載の権限移譲システム。
  3. 前記ユーザーの認証情報を入力するための認証画面を提供し、前記認証画面を介して入力された認証情報を基に前記ユーザーの権限を特定し、
    前記提供手段は、更に、前記アプリケーションが利用する権限が、特定された前記ユーザーの権限内に含まれる場合に前記サービスを提供することを特徴とする請求項1または2に記載の権限移譲システム。
  4. 前記サービスを利用するための要求を送信するアプリケーションに前記ユーザーの権限を移譲することを許可する認可操作が行われなかった場合、または前記アプリケーションが利用する権限が、前記アプリケーションの識別子に紐付く権限内に含まれない場合、または、前記アプリケーションが利用する権限が、特定された前記ユーザーの権限内に含まれない場合、エラー応答を送信することを特徴とする請求項3に記載の権限移譲システム。
  5. 前記管理手段は、前記アプリケーションを前記利用元として登録する要求とともに前記アプリケーションが利用する権限の情報と前記アプリケーションの認証情報を受信し、前記アプリケーションが利用する権限が、前記アプリケーションの認証情報を基に特定された前記アプリケーションの権限内に含まれる場合は、特定された前記権限と前記アプリケーションの識別子とを紐付けて管理し、
    前記アプリケーションが利用する権限が、前記アプリケーションの認証情報を基に特定された前記アプリケーションの権限内に含まれない場合は、前記アプリケーションの登録を行うことなくエラー応答を送信することを特徴とする請求項1乃至4の何れか1項に記載の権限移譲システム。
  6. 第1のサービスにおけるユーザーの権限を、前記第1のサービスを利用する第2のサービスへ移譲するための認可処理を行う認可サーバーシステムであって、
    前記第2のサービスを前記第1のサービスの利用元として登録する要求を受信したことに応じて前記第2のサービスの権限を特定し、特定された前記権限と前記第2のサービスの識別子とを紐付けて管理する管理手段と、
    前記第2のサービスの識別子と、前記第2のサービスが利用する権限とを、前記第1のサービスの利用を開始した前記第2のサービスから受信する受信手段と、
    前記第2のサービスに前記ユーザーの権限を移譲することを許可する認可操作が行われ、かつ前記受信手段により受信された前記第2のサービスが利用する権限が、前記受信手段により受信された前記第2のサービスの識別子に紐付く権限内に含まれる場合に、前記第2のサービスに前記ユーザーの権限が移譲されたことを示す認可情報を発行する発行手段と、を有する認可サーバーシステム。
  7. 前記管理手段は、前記第2のサービスを前記第1のサービスの利用元として登録する要求とともに前記第2のサービスの認証情報を受信し、受信された認証情報を基に前記第2のサービスの権限を特定することを特徴とする請求項6に記載の認可サーバーシステム。
  8. 前記管理手段は、前記第2のサービスを前記利用元として登録する要求とともに前記第2のサービスが利用する権限の情報と前記第2のサービスの認証情報を受信し、前記第2のサービスが利用する権限が、前記第2のサービスの認証情報を基に特定された前記第2のサービスの権限内に含まれる場合は、特定された前記権限と前記第2のサービスの識別子とを紐付けて管理し、
    前記第2のサービスが利用する権限が、前記第2のサービスの認証情報を基に特定された前記第2のサービスの権限内に含まれない場合は、エラー応答を送信することを特徴とする請求項6または7に記載の認可サーバーシステム。
  9. 前記第2のサービスは、デバイスに備えられたアプリケーションであることを特徴とする請求項6乃至8の何れか1項に記載の認可サーバーシステム。
  10. アプリケーションを備えたデバイスへサービスを提供するサーバーシステムと、前記サービスにおけるユーザーの権限を前記サービスの利用元へ移譲するための認可処理を行う認可サーバーシステムとを含む権限移譲システムを制御する制御方法であって、
    認可サーバーシステムが有する管理手段は、前記アプリケーションを前記利用元として登録する要求を受信したことに応じて前記アプリケーションの権限を特定し、特定された前記権限と前記アプリケーションの識別子とを紐付けて管理し、
    サーバーシステムが有する提供手段は、前記アプリケーションが前記サービスの利用を開始した際に、前記サービスを利用するための要求を送信するアプリケーションに前記ユーザーの権限を移譲することを許可する認可操作が行われ、かつ前記アプリケーションが利用する権限が、前記アプリケーションの識別子に紐付く権限内に含まれる場合に前記サービスを提供することを特徴とする制御方法。
  11. 第1のサービスにおけるユーザーの権限を、前記第1のサービスを利用する第2のサービスへ移譲するための認可処理を行う認可サーバーシステムを制御するためのプログラムであって、
    前記第2のサービスを前記第1のサービスの利用元として登録する要求を受信したことに応じて前記第2のサービスの権限を特定し、特定された前記権限と前記第2のサービスの識別子とを紐付けて管理する管理ステップと、
    前記第2のサービスの識別子と、前記第2のサービスが利用する権限とを前記第1のサービスの利用を開始した前記第2のサービスから受信する受信ステップと、
    前記第2のサービスに前記ユーザーの権限を移譲することを許可する認可操作が行われ、かつ前記受信ステップにおいて受信された前記第2のサービスが利用する権限が、前記受信ステップにおいて受信された前記第2のサービスの識別子に紐付く権限内に含まれる場合に、前記第2のサービスに前記ユーザーの権限が移譲されたことを示す認可情報を発行する発行ステップと、を含むプログラム。
JP2013130857A 2013-06-21 2013-06-21 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム Active JP6198477B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013130857A JP6198477B2 (ja) 2013-06-21 2013-06-21 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
US14/308,502 US9521144B2 (en) 2013-06-21 2014-06-18 Authority delegate system, authorization server system, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013130857A JP6198477B2 (ja) 2013-06-21 2013-06-21 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015005202A JP2015005202A (ja) 2015-01-08
JP6198477B2 true JP6198477B2 (ja) 2017-09-20

Family

ID=52112141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013130857A Active JP6198477B2 (ja) 2013-06-21 2013-06-21 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム

Country Status (2)

Country Link
US (1) US9521144B2 (ja)
JP (1) JP6198477B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2684151B1 (en) * 2011-03-08 2018-09-12 Telefonica S.A. A method for providing authorized access to a service application in order to use a protected resource of an end user
US9544294B2 (en) 2011-09-29 2017-01-10 Oracle International Corporation Pluggable authorization policies
JP6033990B2 (ja) 2013-09-20 2016-11-30 オラクル・インターナショナル・コーポレイション 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス
IN2013CH05960A (ja) * 2013-12-20 2015-06-26 Samsung R & D Inst India Bangalore Private Ltd
JP2016085641A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム
US10218700B2 (en) * 2015-02-23 2019-02-26 Ca, Inc. Authorizations for computing devices to access a protected resource
JP6548936B2 (ja) * 2015-03-31 2019-07-24 株式会社Kddi総合研究所 セキュリティゲートウェイ装置、方法及びプログラム
JP2017004301A (ja) 2015-06-11 2017-01-05 キヤノン株式会社 認証サーバーシステム、方法、プログラムおよび記憶媒体
US9906558B2 (en) * 2015-06-24 2018-02-27 International Business Machines Corporation User managed access scope specific obligation policy for authorization
US10237246B1 (en) 2015-07-31 2019-03-19 Symphony Communication Services Holdings Llc Secure message search
JP6668641B2 (ja) * 2015-08-27 2020-03-18 ブラザー工業株式会社 中継装置及び通信システム
KR102349454B1 (ko) * 2015-11-06 2022-01-10 삼성전자주식회사 서비스의 이용 권한을 공유하는 방법, 장치 및 기록 매체
JP6727799B2 (ja) 2015-12-09 2020-07-22 キヤノン株式会社 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム
WO2017170176A1 (ja) 2016-03-28 2017-10-05 株式会社リコー 情報送信システム、情報送信方法、及びプログラム
JP2017228059A (ja) * 2016-06-22 2017-12-28 株式会社リコー 情報処理システム及び認可方法
JP2017228145A (ja) * 2016-06-23 2017-12-28 株式会社リコー 認証システム、通信システム、認証認可方法、及びプログラム
JP6662215B2 (ja) 2016-06-23 2020-03-11 株式会社リコー 管理システム、通信システム、管理方法、及びプログラム
JP6729145B2 (ja) * 2016-08-03 2020-07-22 富士通株式会社 接続管理装置、接続管理方法および接続管理プログラム
US10819709B1 (en) * 2016-09-26 2020-10-27 Symphony Communication Services Holdings Llc Authorizing delegated capabilities to applications in a secure end-to-end communications system
JP2018205840A (ja) * 2017-05-30 2018-12-27 キヤノン株式会社 システム、その方法およびそのプログラム
US10595320B2 (en) * 2017-10-06 2020-03-17 Cisco Technology, Inc. Delegating policy through manufacturer usage descriptions
JP2019096076A (ja) 2017-11-22 2019-06-20 キヤノン株式会社 アクセス制御システム、その制御方法およびプログラム
US11303627B2 (en) 2018-05-31 2022-04-12 Oracle International Corporation Single Sign-On enabled OAuth token
CN110602151B (zh) * 2018-06-12 2022-05-03 中国电信股份有限公司 应用标识管理方法、装置和系统
JP2019220805A (ja) 2018-06-19 2019-12-26 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
CN110138737B (zh) * 2019-04-15 2021-10-15 深圳市纽创信安科技开发有限公司 权限控制方法、权限控制设备、用户设备及系统
US11411746B2 (en) * 2019-05-24 2022-08-09 Centrality Investments Limited Systems, methods, and storage media for permissioned delegation in a computing environment
JP7218679B2 (ja) * 2019-06-21 2023-02-07 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
CN110677248B (zh) * 2019-10-30 2022-09-30 宁波奥克斯电气股份有限公司 一种基于窄带物联网的安全绑定方法和系统
CN111970306B (zh) * 2020-08-31 2022-11-04 Oppo广东移动通信有限公司 权限认证方法、服务器、客户端及存储介质
US20230171257A1 (en) * 2021-11-29 2023-06-01 Verizon Patent And Licensing Inc. System and method for system access credential delegation
US11855949B2 (en) * 2022-05-10 2023-12-26 Yahoo Ad Tech Llc Companion user accounts

Family Cites Families (12)

* 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
JP5317020B2 (ja) * 2007-04-05 2013-10-16 日本電気株式会社 情報処理システム、情報処理方法
US8402508B2 (en) * 2008-04-02 2013-03-19 Microsoft Corporation Delegated authentication for web services
US7945774B2 (en) * 2008-04-07 2011-05-17 Safemashups Inc. Efficient security for mashups
US8505084B2 (en) * 2009-04-06 2013-08-06 Microsoft Corporation Data access programming model for occasionally connected applications
JP5129313B2 (ja) * 2010-10-29 2013-01-30 株式会社東芝 アクセス認可装置
US9183361B2 (en) * 2011-09-12 2015-11-10 Microsoft Technology Licensing, Llc Resource access authorization
US9043886B2 (en) * 2011-09-29 2015-05-26 Oracle International Corporation Relying party platform/framework for access management infrastructures
CN103282911A (zh) * 2011-11-04 2013-09-04 Sk普兰尼特有限公司 普通域与安全域之间与信任区交互工作的方法和信任应用下载的管理方法、使用该方法的管理服务器、装置和系统
US8839376B2 (en) * 2012-06-29 2014-09-16 Cable Television Laboratories, Inc. Application authorization for video services
US8856887B2 (en) * 2012-07-09 2014-10-07 Ping Identity Corporation Methods and apparatus for delegated authentication token retrieval
US9130926B2 (en) * 2012-12-27 2015-09-08 Microsoft Technology Licensing, Llc Authorization messaging with integral delegation data

Also Published As

Publication number Publication date
US20140380429A1 (en) 2014-12-25
JP2015005202A (ja) 2015-01-08
US9521144B2 (en) 2016-12-13

Similar Documents

Publication Publication Date Title
JP6198477B2 (ja) 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
JP6265733B2 (ja) 権限管理サーバー及び権限管理方法
CN110138718B (zh) 信息处理系统及其控制方法
JP6061633B2 (ja) デバイス装置、制御方法、およびそのプログラム。
JP6066647B2 (ja) デバイス装置、その制御方法、およびそのプログラム
JP6141076B2 (ja) システムおよびその制御方法、アクセス管理サービスシステムおよびその制御方法、並びにプログラム
JP6057666B2 (ja) 画像形成装置、情報処理方法及びプログラム
JP6245949B2 (ja) 認可サーバーシステム、その制御方法、およびそのプログラム。
CN102638454B (zh) 一种面向http身份鉴别协议的插件式单点登录集成方法
US7793095B2 (en) Distributed hierarchical identity management
JP6124687B2 (ja) 画像形成装置、サーバー装置、情報処理方法及びプログラム
JP6929181B2 (ja) デバイスと、その制御方法とプログラム
JP6141041B2 (ja) 情報処理装置及びプログラム、制御方法
US20140230020A1 (en) Authorization server and client apparatus, server cooperative system, and token management method
JP2016009299A (ja) シングルサインオンシステム、端末装置、制御方法およびコンピュータプログラム
JP2019046060A (ja) 権限委譲システム、制御方法、およびプログラム
JP2013041552A (ja) 連携サーバおよびその制御方法、印刷システム、およびプログラム
EP2310977B1 (en) An apparatus for managing user authentication
JP2016018507A (ja) データ同期システム、その制御方法、認可サーバー、およびそのプログラム
JP2020035079A (ja) システム、及びデータ処理方法
JP2017220113A (ja) 認可サーバー、制御方法、およびプログラム。
JP2016115260A (ja) 権限移譲システム、権限移譲システムに用いられる認可サーバー、リソースサーバー、クライアント、媒介装置、権限移譲方法およびプログラム
JP2016009466A (ja) Webサービスシステム、認証認可装置、情報処理装置、情報処理方法及びプログラム
JP2017120502A (ja) クラウドサービスへのIoT機器の登録方法
EP1520217A2 (en) Distributed hierarchical identity management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170822

R151 Written notification of patent or utility model registration

Ref document number: 6198477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151