JP2021082004A - 認可サーバー、システム、システムの方法、および認可サーバーのプログラム - Google Patents
認可サーバー、システム、システムの方法、および認可サーバーのプログラム Download PDFInfo
- Publication number
- JP2021082004A JP2021082004A JP2019208994A JP2019208994A JP2021082004A JP 2021082004 A JP2021082004 A JP 2021082004A JP 2019208994 A JP2019208994 A JP 2019208994A JP 2019208994 A JP2019208994 A JP 2019208994A JP 2021082004 A JP2021082004 A JP 2021082004A
- Authority
- JP
- Japan
- Prior art keywords
- authorization
- client
- request
- confirmation
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
- G06F21/35—User authentication involving the use of external additional devices, e.g. dongles or smart cards communicating wirelessly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】 クライアントの認可要求と認可操作が独立している構成において、ユーザーは再認可操作を行うことができる。【解決手段】 認可サーバーがユーザーからの認可結果を受信した後、再認可を行える期限を設け、期限がくるまで待ち処理を行いその後アクセストークンの発行を行う。【選択図】 図7
Description
本発明は、リソースにアクセスする権限が委譲されたことに応じてアクセストークンを発行する認可サーバー、システム、システムの方法、および認可サーバーのプログラムに関する。
ウェブシステムにおいてOAuth2.0による権限委譲の仕組みが実現されている。特許文献1ではシステム連携を設定する際、ユーザーはクライアントと認可サーバーの両方をウェブブラウザで操作し、認可操作を行うことでユーザーの権限をクライアントに委譲することを開示している。クライアントは、委譲されたユーザーの権限を用いてユーザーのリソースにアクセスでき、システム連携が実現する。OAuth2.0でユーザーの権限をクライアントに委譲するためには、ユーザーがクライアントにウェブブラウザでアクセスすることが必要になる。
従来の手法では、ユーザーがクライアントに権限委譲するための操作を行うことで権限委譲のフローが開始された。しかし、IoTデバイスの普及やスマートフォンのような携帯端末の普及により、クライアントが自律的に権限委譲の要求を行うと権限委譲のフローが開始され、ユーザーが物理的および/またはシステム的に離れたところで認可操作を行う形態が新たに考えられる。
しかしながら、この形態の場合、ユーザーは一度行った認可操作を訂正したくとも、クライアントの認可要求とユーザーの認可操作が独立してしまうためユーザー側から再認可操作を行うことができなくなる懸念がある。そこで、本願発明の目的は、クライアントの認可要求とユーザーの認可操作が独立している形態において、ユーザーは再認可操作を行うことが可能な仕組みを提供することにある。
本実施形態に係る認可サーバーは、ユーザーのリソースを提供するリソースサーバー、前記リソースへアクセスするクライアント、前記クライアントが前記リソースへアクセスすることがユーザーにより許可されたことを示すアクセストークンを発行する認可サーバー、およびユーザー端末とから構成されるシステムにおける前記認可サーバーであって、前記クライアントから認可開始リクエストを受信する受信手段と、前記受信手段により認可開始リクエストが受信されたことに応じて、認可確認リクエストの送信先となるユーザー端末を特定する特定手段と、特定されたユーザー端末に対して認可確認リクエストを送信し、応答として認可確認の結果を受信し、再認可が可能な期間まで前記認可確認の結果を一時的に記憶する認可手段と、再認可が可能な期間を超えたことに応じて一時的に記憶されている前記認可確認の結果に応じたアクセストークンの発行の制御を行い、前記アクセストークンを発行した場合は前記認可開始リクエストを送信した前記クライアントへ前記アクセストークンを送信する発行手段と、を有することを特徴とする。
クライアントの認可要求とユーザーの認可操作が独立している形態において、ユーザーは再認可操作を行うことができる仕組みを提供する。
[実施例1]
以下、本発明を実施するための形態について図面を用いて説明する。図1は、本発明を実施するための一実施形態に係る情報処理装置の構成を示す図である。図1において、情報処理装置は、CPU102、メモリ103、記憶装置104、ビデオインタフェース105、Input/Output(以下I/Oと略称)インタフェース106、通信インタフェース107を備えている。また、情報処理装置内の各構成要素はシステムバス101を介して互いに接続されている。CPU102は、システムバス101を介して各構成要素を制御したり、データの計算や加工を行ったりする中央処理装置である。メモリ103は、データやプログラムを記憶する装置で、RAM(Random Access Memory)やROM(Read Only Memory)から構成される。
以下、本発明を実施するための形態について図面を用いて説明する。図1は、本発明を実施するための一実施形態に係る情報処理装置の構成を示す図である。図1において、情報処理装置は、CPU102、メモリ103、記憶装置104、ビデオインタフェース105、Input/Output(以下I/Oと略称)インタフェース106、通信インタフェース107を備えている。また、情報処理装置内の各構成要素はシステムバス101を介して互いに接続されている。CPU102は、システムバス101を介して各構成要素を制御したり、データの計算や加工を行ったりする中央処理装置である。メモリ103は、データやプログラムを記憶する装置で、RAM(Random Access Memory)やROM(Read Only Memory)から構成される。
記憶装置104は、記憶されたデータの書き込み/読み出しを行う。記憶装置104には、ハードディスクドライブ(HDD)111、不揮発性のデータソースとして利用されるDVD−ROMドライブ112、半導体メモリを用いたソリッドステートドライブ(SSD)113がある。図1には示されていないが、記憶装置104として、磁気テープドライブ、フロッピー(登録商標)ディスクドライブ(FDD)、CD−ROMドライブ、CD/DVD−RAMドライブ、USBフラッシュドライブなども使用されることがある。
本実施形態に係るプログラムは、記憶装置104から読み込まれ、メモリ103に格納した上で、CPU102によって実行される。なお、本実施形態ではプログラムを記憶装置104から読み込む構成としているが、ROM(不図示)から読み込んだり、通信インタフェース107を介して外部から読み込んだりする構成としてもよい。
ビデオインタフェース105は、ディスプレイ装置114への表示出力を制御する。ディスプレイ装置114には、CRTや液晶等の方式を用いたものがある。I/Oインタフェース106には、キーボード115やポインティングデバイス116等の入力装置が接続される。操作者は、キーボード115を操作することにより情報処理装置に対する動作指令等を行う。ポインティングデバイス116は、ディスプレイ装置114上のカーソルを移動させてメニューやオブジェクトの選択や操作等を行う。また、ディスプレイ装置114には、タッチパネル等による操作の入力を行えるものもある。この場合、ディスプレイ装置114は出力装置と入力装置を兼ねることになる。
通信インタフェース107は、コンピュータネットワーク117を通して外部機器との通信を行う。接続先のネットワークには、LANやWAN、インターネットのような公衆回線等があり、有線であっても無線であっても構わない。また、通信インタフェース107は、ローカルプリンタ118などの他デバイスとの通信も行う。
図2は、本実施形態に係る権限移譲システムのネットワーク構成図である。図2に図示されるサーバー、クライアント、ユーザー端末はいずれも、図1で示した装置の構成を備えているものとする。ただし、図1の構成に限定するものではなく、他の機能を備えている場合や、単体のコンピュータに限らないラックマウント型のシステムであっても構わない。また、後述の全ての説明において、特に断りのない限りサーバーやクライアントの実行の主体はCPU102であり、ソフトウェア上の主体は記憶装置104に保管されたプログラムである。
図2において、コンピュータネットワーク200には、認可サーバー201、リソースサーバー202、クライアント203、および、ユーザー端末204が接続されている。ユーザー端末204の形態としては、例えば、スマートフォンやタブレット端末等のような携帯可能なコンピュータや、クライアントパーソナルコンピュータ等がある。コンピュータネットワーク200には、LAN、WAN、インターネット等があり、有線であっても無線であっても構わない。
本実施形態において、ユーザー端末204は、コンピュータネットワーク200を通じて認可サーバー201と通信を行い、クライアント203はコンピュータネットワーク200を通じて認可サーバー201やリソースサーバー202と通信を行う。ユーザー端末204は、データを受信するとWebブラウザあるいは専用のクライアントアプリケーションが取得したデータをクライアント端末のディスプレイ装置114に表示する。
図3は本実施の形態に係る権限移譲システムの機能ブロック図である。図3(A)はクライアント203、図3(B)は認可サーバー201、図3(C)はリソースサーバー202、図3(D)はユーザー端末204の機能ブロックを示す。クライアント203は認可開始リクエスト発行部331、アクセストークン要求部333、アクセストークン管理部334、リソースアクセス部332を持つ。認可サーバー201は認可リクエスト管理部311、認可確認リクエスト送信先解決部312、認可確認部313、アクセストークン発行部314を持つ。リソースサーバー202はリソース管理部321を持つ。ユーザー端末204は認可操作受付部341、認可結果送信部342、認可履歴管理部343、画面表示部344を持つ。
認可サーバー201の認可リクエスト管理部311は、クライアント203の認可開始リクエスト発行部331の要求に従い、認可開始リクエストを処理する。ここで認可開始リクエストにはクライアント203がアクセスしようとするリソースのリソース情報、リソースに対して行う処理の種別、クライアント情報などが含まれる。認可確認リクエスト送信先解決部312は認可開始リクエストに含まれるリソース情報、処理種別、クライアント情報などを用いて、認可確認リクエストの送信先となるユーザー端末を決定する。認可確認部313は認可確認リクエスト送信先解決部312で決定されたユーザー端末204に対して認可確認リクエストを行う。ユーザー端末204を利用するユーザーが認可操作を行うと、クライアント203は認可サーバー201からアクセストークンを取得できるようになり、アクセストークンを使ってリソースサーバーにアクセスできるようになる。
OAuth2.0と同様、クライアント203は、実施例1のプロトコルフローを開始する以前に認可サーバー201に登録されていなければならない。クライアント203を認可サーバー201に登録させるため、認可サーバー201はクライアント203登録者との対話を伴うHTML登録フォーム(不図示)を提供する。また、本実施例のクライアント203の登録においては、クライアント203と認可サーバー201の間に直接的なやりとりは必須ではない。例えば、クライアント203自身あるいはサードパーティーが発行したアサーションの使用や、認可サーバー201のセキュアなチャネルを使用したクライアント203をディスカバリーで、クライアント203を認可サーバー201へ登録することもできる。
実施例1において認可サーバー201にクライアント203を登録する場合、クライアント203の登録者は、クライアントタイプ(OAuth2.0定義の“Confidential”)、アプリケーション名、サービス名、ロゴイメージ、利用規則を指定する。また登録の際、クライアント203に対して認可サーバー201はクライアント識別子とクライアントSecretを発行する。クライアント203は発行されたクライアント識別子とクライアントSecretを認可開始リクエスト発行部331に記憶しておく。
また、認可サーバー201は、クライアント203から受信した情報を認可確認リクエスト送信先解決部312内のクライアント登録テーブル(表1)に登録する。
さらに、ユーザー端末204は、実施例1のプロトコルフローを開始する以前に、認可サーバー201に登録されていなければならない。ユーザー端末204を認可サーバー201に登録させるため、認可サーバー201はユーザー端末204登録者との対話を伴うHTML登録フォーム(不図示)を提供する。
また、実施例1のユーザー端末204の登録において、ユーザー端末204と認可サーバー201の間に直接的なやりとりは必須ではない。例えば、ユーザー端末204が発行したアサーションを使用したり、認可サーバー201がセキュアなチャンネルを使用してユーザー端末204のディスカバリーを行ったりすることで、ユーザー端末204を登録することもできる。ユーザー端末は複数登録が可能である。
登録の際、ユーザー端末204に対して認可サーバー201は、各々端末IDと端末Secretを発行する。クライアント203は発行された端末IDと端末Secretを認可操作受付部341に記憶しておく。実施例1において、認可サーバー201にユーザー端末204を登録する場合、ユーザー端末204の登録者は以下の情報を指定する。ユーザー端末情報(後述の認可確認リクエストを通知する通信のエンドポイント)、サービス名、アプリケーション名(共にクライアント203の登録の際に指定したもの)、ユーザー識別子(ユーザー名)である。
ユーザー端末204登録の際に、登録内容は、図3(B)で示される認可サーバー201の認可確認リクエスト送信先解決部312内のユーザー端末登録テーブル(表2)に登録される。
実施例1において、ユーザー端末204の情報は、ユーザー端末情報“192.168.0.1”、端末ID“Device_1”、端末Secret“wwwwww”、クライアント識別子“Client_1”、アプリケーション名“App_1”、サービス名“Serv_1”、ユーザー識別子“user_A”である。また、表2には別のユーザー端末として、ユーザー端末情報“192.168.0.2”、端末ID“Device_2”、端末Secret“zzzzzzzzz”、クライアント識別子“Client_1”、アプリケーション名“App_1”、サービス名“Serv_1”、ユーザー識別子“user_B”が登録されている。
図4(A)はクライアント203が認可サーバー201に対し認可開始リクエストを行うフローである。本フローはクライアント203がリソースサーバー202上のリソースへのアクセスに先立ち、アクセストークンが必要になった際に開始される。
ステップS401で認可開始リクエスト発行部331は、クライアント識別子、操作対象のリソース識別子、スコープおよび対象となるユーザーを特定するためのヒント情報を含む認可開始リクエストを、認可サーバー201に対して送信する。ここで各用語について補足する。スコープとは、リソースのアクセス範囲を示すもので、例えば、リソースであるデータを取得したい場合は“get−data”、取得以外に編集などのそれ以外のアクセスを行いたい場合は“get−all”を指定することになる。対象となるユーザーを特定するためのヒント情報は、ユーザー識別子を示す。またヒント情報は、過去ユーザーに対して発行されたIDトークン、ユーザーのメールアドレス、ユーザー識別子のいずれかの情報であってもよい。
ステップS402で認可開始リクエスト発行部331は、認可サーバー201からレスポンスを受信する。このレスポンスには、認可サーバー201が発行した認可リクエスト識別子が含まれる。ステップS403で認可開始リクエスト発行部331は、ステップS402で受信したレスポンスに含まれる認可リクエスト識別子を、ステップS401の操作対象リソースおよびスコープとともに記憶してフローを終了する。
表3はクライアント203が記憶する認可リクエスト管理テーブルの例である。
表3ではリソース識別子“/datalake/iot0010/data”で示されるリソースに対し、スコープ“get−data”で行った認可開始リクエストが、認可リクエスト識別子“auth_req_id_12345”に紐付けて記憶されている。また認可リクエスト識別子“auth_req_id_98765”に対しては、“actk111222333”で示されるアクセストークンを取得済みであることを示す。ここでリソース識別子が示すリソースは、ファイルシステム上の1つのファイルを示してもよく、データベース上の特定のレコードを示してもよい。またそれらの集合を示してもよい。
図4(B)は認可サーバー201における認可開始リクエストの受信フローである。本フローは認可サーバー201がクライアント203から認可開始リクエストを受信することで開始される。
ステップS411で認可リクエスト管理部311は、クライアント203から認可開始リクエストを受け付ける。ここで認可開始リクエストには、クライアント203のクライアント識別子と、クライアント203が操作対象としているリソース識別子と、クライアント203が要求するスコープと、クライアント203が要求するヒント情報が含まれる。
ステップS412で認可リクエスト管理部311は、ステップS411で受信した認可開始リクエストに対応する認可リクエスト識別子を生成する。ステップS413で認可リクエスト管理部311は、ステップS412で生成した認可リクエスト識別子に、認可リクエストの情報を紐付けて記憶する。ここで認可リクエストの情報とは、ステップS411で受信したクライアント識別子、操作対象のリソース識別子、スコープと、ヒント情報を含む。
表4は認可リクエスト管理部311が記憶する認可確認状況管理テーブルの例である。
表4では、クライアント識別子“Client_1”で示されるクライアントが、リソース識別子“/datalake/iot0010/data”で示されるリソースに対し、スコープ“get−data”で行った認可開始リクエストが、認可リクエスト識別子“auth_req_id_12345”に紐付けて記憶されている。また認可リクエスト識別子“auth_req_id_12345”にはヒント情報としてユーザー識別子“user_A”が紐付けられているが、これはリソース“/datalake/iot0010/data”のリソース所有者がユーザー識別子“user_A”であることを示している。なお認可リクエスト識別子“auth_req_id_12345”の認可結果が“(空欄)”となっているのは、ユーザーがまだ認可操作を行っていないことを示している。それに対し認可リクエスト識別子“auth_req_id_98765”の認可結果は“approved”で、認可リクエスト識別子“auth_req_id_44444”の認可結果は“disapproved”である。これらはそれぞれ、ユーザーが認可を行ったことと、認可を拒否したことを示す認可確認の結果である。ステップS416で認可リクエスト管理部311は、ステップS411の応答として、ステップS414で生成した認可リクエスト識別子をクライアント203に返し、フローを終了する。
図4(C)は認可サーバー201における認可確認リクエストを行うフローである。本フローはステップS413で認可リクエストの情報を記憶したことを受けて開始される。ステップS421で認可確認部313は、ステップS413で記憶した認可リクエスト識別子に紐付くクライアント識別子を取得する。
ここで、ステップS413で記憶した認可リクエスト識別子が“auth_req_id_12345”であれば、紐付くクライアント識別子は“Client_1”、ヒント情報は“user_A”である。ステップS422で認可確認部313は、ステップS421で取得したクライアント識別子とヒント情報から認可確認リクエストを行うユーザー端末を特定する。例えば、認可確認部313はクライアント識別子“Client_1”とヒント情報“user_A”に紐づくユーザー端末として、認可確認リクエスト送信先解決部312内の表2ユーザー端末登録テーブルよりユーザー端末204を特定する。また、認可確認リクエストを通知する通信のエンドポイントは“192.168.0.1”であることが分かる。
ステップS423で認可確認部313は、ステップS413で記憶した認可リクエスト識別子に紐付くクライアント識別子およびスコープを取得する。ステップS413で記憶した認可リクエスト識別子が“auth_req_id_12345”であれば、紐付くクライアント識別子およびスコープは“Client_1”および“get−data”である。
ステップS424で認可確認部313は、ステップS422で特定したユーザー端末204に対し、ステップS423で取得したクライアント識別子およびスコープを含めて認可確認リクエストを送信する。なお認可確認リクエストの送信方法は、ユーザー端末204のエンドポイントを指定した通信方法でもよいし、MQTTをはじめとするPUSH通知を用いた方法や、その他の方法でもよいが、本実施例では認可エンドポイントを指定した直接通信とする。ユーザー端末204の画面表示部344は、後述の図9(B)に示すような認可確認画面を表示し、端末のユーザーに認可を求める。
ステップS425で認可確認部313は、ステップS424で送信した認可確認リクエストの応答として、ユーザー端末204から認可結果を受信する。ステップS426で認可確認部313は、ステップS425で受信した認可結果を、ステップS415で記憶した認可リクエスト識別子に紐付けて記憶してフローを終了する。表4では、認可リクエスト識別子“auth_req_id_98765”に対し認可されたことを示す“approved”が記憶されている。以上がクライアントから権限委譲要求を行いユーザーにより認可操作されるまでのフローである。OAuth2.0と異なるのは、クライアントがユーザーの指示なく自律的に認可要求を行う点と、認可操作を行うユーザーはクライアントを操作する意思はなく、あくまで認可操作を行うか否かの意思決定にのみ関わるという点である。
図5(A)は本実施の形態に係る、認可サーバー201がクライアント203に認可完了通知を行うフローである。本フローはステップS426で認可結果を記憶したことを受けた後で開始される。ステップS501で認可確認部313は、ステップS426で記憶した認可リクエスト識別子を取得する。ステップS502で認可確認部313は、ステップS501で取得した認可リクエスト識別子に紐付くクライアントの接続先情報であるクライアントエンドポイントを取得する。
表5はクライアント識別子とクライアントエンドポイントの対応を管理する、クライアント管理テーブルの例である。
表5では、クライアント識別子“Client_1”のクライアントエンドポイントが、“10.0.0.1”であることを示している。ステップS503で認可確認部313は、ステップS502で取得したクライアントエンドポイントに対し、ユーザーが認可したことを通知し、フローを終了する。なおここでクライアントエンドポイントに通知する内容は、ステップS501で取得した認可リクエスト識別子でもよく、またユーザーの認可に対応して発行したアクセストークンでもよい。アクセストークンを発行する際は後述の図5(C)に示されるようなフローを実行する。
図5(B)は本実施の形態に係る、クライアント203が認可サーバー201にアクセストークンリクエストを行うフローである。本フローはクライアント203が認可サーバー201からステップS503の認可完了通知を受けて開始される。または本フローは、クライアント203が、定期的に実行してもよい。
ステップS511でアクセストークン要求部333は、アクセストークンリクエストを行う認可リクエスト識別子を決定する。ここで本フローが定期的に実行される場合には、認可リクエスト識別子は、表3に示される認可リクエスト管理テーブルでアクセストークン未取得のものから選ばれる。また本フローが認可サーバー201からの通知を受けて開始される場合は、認可サーバー201からの通知に含まれる認可リクエスト識別子が用いられる。ステップS512でアクセストークン要求部333は、ステップS511で決定した認可リクエスト識別子を指定して、認可サーバー201に対してアクセストークンリクエストを行う。ステップS513でアクセストークン管理部334は、ステップS512の応答として受信したアクセストークンを記憶してフローを終了する。表3では、認可リクエスト識別子“auth_req_id_98765”に対して取得できた、アクセストークン“actk111222333”を記憶している様子を示す。
図5(C)は本実施の形態に係る、認可サーバー201がアクセストークンを発行するフローである。本フローは認可サーバー201がクライアント203からアクセストークンリクエストを受信したことで開始される。
ステップS521でアクセストークン発行部314は、クライアント203から受信したアクセストークンリクエストから、認可リクエスト識別子を取得する。ステップS522でアクセストークン発行部314は、アクセストークン発行可否を判断する。ステップS523でアクセストークン発行部314は、ステップS522の結果、アクセストークンを発行可能であると判断されたか確認する。
アクセストークンを発行可能と判断された場合はステップS524に遷移する。またアクセストークンを発行不可能と判断された場合はステップS525に遷移する。ステップS524でアクセストークン発行部314は、ステップS521で取得した認可リクエスト識別子に紐付けられたユーザー識別子およびスコープに対応するアクセストークンを発行する。また発行したアクセストークンをクライアント203に送信しフローを終了する。
表6はアクセストークン発行部314で発行されたアクセストークンを管理する、アクセストークン管理テーブルの例である。
表6では、ユーザー“user_abcde”がスコープ“get−data”の権限委譲を行ったことを示すアクセストークンが、アクセストークン識別子“actk111222333”として発行されていることを示す。なお、ステップS524でクライアント203に返すアクセストークンはアクセストークン識別子だけでもよく、またアクセストークン識別子に加えユーザー識別子およびスコープを含む構造化されたデータでもよい。ステップS525でクセストークン発行モジュール354は、アクセストークンを発行できないことをクライアント203に通知してフローを終了する。
図5(D)は実施例1に係るアクセストークン発行可否判断を行うステップS522の詳細フローである。ステップS531でアクセストークン発行部314は、表4の認可確認状況管理テーブルを参照し、指定された認可リクエスト識別子に対応する認可結果を確認する。ステップS532でアクセストークン発行部314は、ステップS531の確認した認可結果が、認可されていることを表しているか判断する。認可されていることを表していた場合はステップS533に遷移し、その他の場合はステップS534に遷移する。ステップS533でアクセストークン発行部314は、アクセストークンを発行可能と判断してフローを終了する。ステップS534でアクセストークン発行部314は、アクセストークンを発行不可能と判断してフローを終了する。
図6は権限委譲システムのシーケンス図である。クライアント203は認可サーバー201に対し認可開始リクエストを行い、応答として認可リクエスト識別子を取得する(S1)。認可開始リクエストはステップS401およびステップS411に対応する。
認可サーバー201はリソース所有者の解決をすると、リソース所有者に紐付けられたユーザー端末204に対し認可確認リクエストを行う(S2)。ユーザー端末204では後述の図9(B)に示すような認可確認画面が表示され、端末のユーザーが認可操作を行う。ユーザーが認可操作を行うと、ユーザー端末204は認可サーバー201に認可結果を送信する(S3)。S2はステップS424に、S3はステップS425に、それぞれ対応する。
認可サーバー201が認可結果を受信した後、クライアント203が認可の完了とその内容を知る必要があるが、認可完了の通知には、クライアント203が認可サーバー201に確認する方法と認可サーバー201がクライアント203に通知する方法がある。前者の場合、クライアント203が定期的に認可サーバー201にアクセストークンリクエストを送信し(S4)、その応答として認可サーバー201が認可結果を返す。
この際、S3で許可が返されている場合、認可サーバーはリソースサーバーへのアクセストークンを発行して返し、S3で拒否が返されている場合は拒否されたことを示す結果を返す。なお、クライアント203は定期的にS4のリクエストを送信するため、未だS3の認可結果が返されていない場合があるが、この場合は引き続き確認を継続する旨の結果を返す。後者は認可サーバー201がクライアント203に認可結果通知を送信する(S4’)。
後者のケースはクライアント203が認可完了通知を受信するためのエンドポイントを持っている場合に行える方法となる。認可結果の内容は前者と同じで、許可された場合はアクセストークンを発行して渡し、拒否された場合は拒否されたことを示す結果を返す。S4はステップS512およびステップS521に、S4’はステップS503にそれぞれ対応する。クライアント203は、S4もしくはS4’で受信したアクセストークンを利用してリソースサーバー202にアクセスを行う(S5)。
このように、クライアント203とは物理的、システム的に離れたユーザーがクライアント203に権限委譲を行うことが可能となる。しかし、物理的、システム的に離れたことによって、認可を行うユーザーが再認可することができない課題が発生している。なぜなら、ユーザー端末204とクライアント203が密に連携しておらず疎であるため、ユーザー端末204を操作するユーザーはクライアント203を操作することも、ユーザー端末204からクライアント203へ再認可の要求を送ることも叶わないからである。
だが、ユーザーは認可操作を行なった後、認可操作を訂正したいと考える可能性もありうる。また、ユーザー端末、とりわけスマートフォンのような小型の端末では、情報の表示領域が少なく操作パネルも小さいため、ユーザーの認識違いによるミスや操作ミスが起こる可能性も高くなる。そのため、認可操作を再び行えるようにする必要性が出てくる。
図7は権限委譲システムにおける再認可処理のシーケンス図である。ユーザー端末204が認可サーバー201に認可結果を送信する(S3)ところまでは図6と同様である。ここで、ユーザーが認可結果を訂正したい場合、ユーザーは図9(D)に示すような再認可確認画面で再認可の操作を行うことができる。ユーザーが再認可操作を行うと、ユーザー端末204は認可サーバー201に再認可結果を送信する(S3’)。再認可結果の内容は認可結果と同様である。なお、図6では、認可サーバー201における再認可結果受信(S3’)のエンドポイントを認可結果受信(S3)と分けているが、共通にする実装であってもよい。
シーケンス図のフローは図7の通りであるが、クライアント203がアクセストークンを使って行う処理は実施後の取り消しが難しい場合も想定される。従って、認可サーバー201がクライアント203への認可完了通知を待つ必要があるケースも考えられる。
表7は、表4で示した認可リクエスト管理部311が記憶する認可確認状況管理テーブルに、認可期限を追加した例である。
表7の一行目では、認可結果が“disapproved”となっており、ユーザーからの認可結果が拒否であったことを示しているが、一方、認可期限である2019年10月8日10時32分48秒までは再認可が可能であることを示している。認可期限前にユーザーから再認可の指示を受信した場合、認可結果は更新される。つまり、ユーザーの認可操作の結果である認可結果は認可期限までバッファリングされる。ポイントは、バッファリングされている認可結果に基づく処理は実行されないという点である。たとえユーザーが認可したとしても、バッファリングされている間はアクセストークンが発行されない。
表7の3行目は、未だ認可結果を受信していない状態となっているが、認可期限も設定されていない。これは認可期限が再認可待ちの時間を考慮して設定されることを想定したもので、認可を受信してから再認可期限を算出して設定するためである。なお、認可期限の設定に関して認可結果を受信する前、例えば、認可リクエストを受信した時点で認可期限を設ける実装であってもよい。また、認可期限の間隔に関しては認可サーバー201の認可リクエスト管理部311に予め設定された値によって決定する実装や、クライアント203から認可開始リクエスト時に受信する実装などがあってもよい。さらに、認可期限は認可結果(S3)の応答で、ユーザー端末204に渡され、ユーザー端末の認可確認画面でも利用される。
図8は再認可処理に関するフローチャートである。図8のフローチャートは認可サーバー201の認可確認部313、アクセストークン発行部314で実行される。図8(A)は、図7の認可結果の受信(S3)および再認可結果受信(S3’)のフローチャートで、図4(C)で説明した認可結果の受信(S425)部分からのフローを示している。
認可サーバー201の認可確認部313は、認可結果を受信すると該当する認可リクエスト識別子に紐付く情報に認可結果を保存する(S426)。そしてさらに、該当する認可リクエスト識別子に紐付く情報に認可期限が設定されているかを確認し(S801)、認可期限が設定されていない場合は、再認可が可能な期間を取得する(S802)。再認可が可能な期間は認可サーバー201の認可リクエスト管理部311に予め設定された値によって決定する実装や、クライアント203から認可開始リクエスト時に受信する実装などがあってもよい。そして、現在日時から再認可可能な期限となる日時を算出した上で(S803)、該当する認可リクエスト識別子の情報に期限を設定する(S804)。例えばS802で取得した値が3分であり、現在日時が2019年10月8日10時29分48秒であったとすると、期限は2019年10月8日10時32分48秒となる。つまり、認可結果は2019年10月8日10時32分48秒までバッファリングされる。なお、再認可を許容しない場合には、期限には現在日時が設定される。
次に、認可サーバー201の認可確認部313は、完了通知が図7のS4’で示す認可サーバー201側からクライアント203に通知するPUSH型の方法かどうかを確認する(S805)。そしてPUSH型の通知であれば、期限タイマーイベントを作成する(S806)。期限タイマーイベントは、期限の日時になった際にイベントを発行するもので、期限がきた時に認可サーバー201が図7のS4’で示す認可完了通知を行うために作成される。そして認可サーバー201は認可結果を受信した旨と共に、認可期限をユーザー端末204に返す(S807)。
図8(B)は、図7のアクセストークンリクエスト(S4)を受信した際の認可サーバー201のアクセストークンレスポンスフローチャートである。図5(C)で説明したアクセストークンリクエストに該当する認可リクエスト識別子の情報を取得する(S521)部分からのフローを示している。該当する認可リクエスト識別子に紐付く情報を取得したら、認可結果が設定されているかを確認し(S811)、認可結果がない場合は未だ認可結果がきていないことをクライアント203に通知する(S812)。
認可結果が設定されている場合は再認可期限を越えているかどうかを確認する(S813)。ここで、期限を越えていなかった場合、未だ認可結果がきていないことを通知して(S812)、ユーザーからの再認可確認を待つ。期限を越えていた場合は図5で示したように、認可結果を確認し(S531)、許可された場合(S532)はアクセストークンを発行して返し(S524)、拒否された場合はその旨を通知する(S525)。なお、図7のS4’で示した認可サーバー201からクライアント203へ認可完了通知を返す方法に関しては、図8(A)のS806で説明したイベントによって認可完了通知処理が開始される。
図9はユーザー端末204で行う認可確認画面である。図9(A)は認可確認リスト画面、図9(B)は認可確認画面、図9(C)は認可履歴画面、図9(D)は再認可確認画面である。ユーザー端末204上に認可確認を行うためのソフトウェアがインストールされており、ソフトウェアの画面を起動すると、図9(A)の認可確認リスト画面が表示される。
図9(A)は認可確認リスト画面で、図7のS2で示す認可確認リクエストで受信した認可確認項目をリスト表示する。901は認可確認項目の一つで、受信日時、リソース情報など認可対象がわかる情報を表示している。リソース情報に関しては、表7で示しめしたリソース情報をそのまま全部または一部表示する実装の他、リソースに対してユーザーが名前を設定して表示するような実装であってもよい。認可確認項目901の右端にある“>”は、図9(B)で示す認可確認画面へ遷移するリンクである。902は、認可確認リスト画面と図9(C)の認可履歴画面とを切替えるタブで選択されているタブがハイライトされている。
図9(B)は認可確認画面で、この画面で認可確認を行う。ID911は認可リクエスト識別子を示しており、認可する対象を一意に特定することができる。なお、ID911下の情報欄に関しては特に詳細は記載しないが、ユーザーが認可リクエストを識別するための補足情報をクライアント203や認可サーバー201から受信し表示するような実装が考えられる。許可ボタン912は認可確認に対して許可することを指示し、拒否ボタン913は認可を不許可とすることを指示するボタンである。ユーザーは、許可ボタン912または拒否ボタン913を押下することで認可操作を行うと、認可結果送信部342によって、図7のS3で示した認可結果の送信が行われる。
図9(C)は認可履歴画面で、過去の認可履歴をリストで参照することができる。図9(B)で認可確認を行うと、認可履歴管理部343に履歴として保存され、過去の認可履歴を参照することができるようになる。921は認可履歴の一つで、認可確認を行った日時、リソースなど認可対象がわかる情報、認可結果を表示している。認可履歴921の右端にある“>”は、図9(D)で示す再認可確認画面へ遷移するリンクである。922も認可履歴の一つで表示される書誌情報は認可履歴921と同じであるが、グレー表示されると共に再認可確認画面へ遷移するリンクは表示されない。これは、対象となる認可確認項目の認可期限が切れたため、再認可操作が行えないことを示している。なお、認可履歴画面のリストに関しては対象となるリソースに絞る等のフィルタリング機能を持った実装があってもよい。
図9(D)は再認可確認画面である。表示される情報は図9(B)の認可確認画面と同様であるが、再認可期限931を表示している。932は認可操作を行うボタンで、前回の認可確認で行った操作が拒否であったため、再認可では前回の操作を取り消す許可ボタンが表示される。逆に、前回の認可確認で行った操作が許可であった場合、認可操作ボタン932は拒否ボタンが表示される。なお、再認可確認画面でも図9(B)のように許可ボタンと拒否ボタン両方を表示する実装であってもよい。
再認可確認画面で認可確認を再度行うと、認可結果送信部342によって、図7のS3’で示した認可結果の送信が行われる。再認可確認は期限内であれば何度でもユーザーは再認可の操作ができる実装であってよいし、再認可操作の回数に制限を設ける実装であってもよい。例えば、クライアント203から送信される認可開始リクエストにその回数を含めることでクライアント203からの要求で回数を指定することなどが考えられる。さらに、許可あるいは拒否のどちらかが行われたら再認可できなくなるといった制限を設ける実装であってもよい。
図10(A)は、図9(C)で述べた認可履歴画面のフローチャートである。本フローチャートはユーザー端末204で実行される。ソフトウェアの画面を起動すると、図9(A)の認可確認リスト画面が表示されるが、そこで画面切替えタブ902で図9(C)の認可履歴画面に切替えられたところから処理が開始される(S1001)。
まず、画面表示部344は、認可履歴管理部343から認可履歴を取得する(S1002)。そして、取得した履歴の中から期限が過ぎていない認可履歴すなわち再認可操作が可能な履歴について(S1003)、期限となる日時から現在日時を差し引いて残時間の算出を行う(S1004)。そして、期限に達した際に起動するタイマーイベントを作成する(S1005)。次に画面表示部344は、ユーザー端末204のディスプレイ装置114に図9(C)で述べた認可履歴画面を表示する(S1006)。
認可履歴画面では、図9(C)で述べたように、再認可操作が可能な認可履歴は図9(D)の再認可確認画面へのリンクを表示し、認可期限を過ぎた認可履歴はリンクを表示しない。その後は画面操作やS1005で作成した期限イベントを待ち(S1007)、イベントを受信したらその内容に応じた処理を実施する(S1008)。期限イベントを受信した場合は認可履歴画面を描画して表示内容を更新する(S1009)。画面を更新したことによって、画面表示において、期限に達した認可履歴から再認可確認画面へのリンクがなくなる。イベント受信で図9の921にある認可履歴リスト項目のリンクをクリックしたイベントを受信した場合、選択された認可履歴の項目の再認可確認画面へ遷移する(S1010)。図9の902で説明した認可確認タブをクリックしたイベントを受信した場合、認可確認リスト画面へ遷移する(S1011)。
図10(B)は、図10(A)内の認可履歴描画のサブフローチャートである。認可履歴の数分内容を確認し(S1021)、期限が過ぎているかどうかを判定(S1022)、期限が過ぎていなければ再認可画面へ遷移するリンクを入れたリスト項目を表示する(S1023)。期限を過ぎていた場合は再認可画面へ遷移するリンクは入れずにリスト項目を表示する(S1024)。
以上、実施例1では、ユーザーが認可操作を訂正したい場合あるいは認識違いによるミスや操作ミスが起こった場合に、認可確認の再操作を行うことが可能となる。
[実施例2]
実施例1では認可サーバー201で認可確認の再操作を可能とする時間だけ待ち処理を行う実施例を示した。しかし、再認可を許容するかどうか、待ち処理による応答の遅延を許容するかどうかは、クライアント203がリソースサーバー202に対して行う処理内容に関係すると考えられる。例えば、対面での商品購入の決済に端末を使った認可フローを行うようなケースでは、待ち処理を行う必要はない。そのため、認可サーバー201が待ち処理を行うと、クライアント203にとっては不都合な場合もある。
実施例1では認可サーバー201で認可確認の再操作を可能とする時間だけ待ち処理を行う実施例を示した。しかし、再認可を許容するかどうか、待ち処理による応答の遅延を許容するかどうかは、クライアント203がリソースサーバー202に対して行う処理内容に関係すると考えられる。例えば、対面での商品購入の決済に端末を使った認可フローを行うようなケースでは、待ち処理を行う必要はない。そのため、認可サーバー201が待ち処理を行うと、クライアント203にとっては不都合な場合もある。
そのような課題が考えられる場合、クライアント203が認可開始リクエストを行う際(S401)に再認可を許容するかどうか、応答期限はどのくらいか、といった指示を含めることができるようにする実装も必要となる。なお、実施例2においても権限委譲システムにおける再認可処理のシーケンスは実施例1と同様であり、説明を省略している部分は実施例1と同じ構成や処理となる。
図11は認可開始リクエストで送付される情報を示している。“scope”は、クライアント203がリソースサーバー202に対して行う処理に必要となる権限範囲を示し、“hint”はヒント情報を示す。“retry”は、再認可が可能かどうかを示す。trueであれば再認可は可能、falseであれば再認可は不可能となる。なお、実施例2では再認可可否の値を示したが再認可の回数などを指定するような実装であってもよい。“expires_in”は認可の期限を示し、1800の場合は1800秒以内に認可を行う必要があることを示す。なお、図11には上記の4項目を例示しているが、これに限らなくてもよい。例えば、図7のS4’で認可完了通知を出す場合にはクライアントのエンドポイントの情報を含める必要があったり、ユーザー端末等で表示するためのメッセージ文字列を含めたりする実装であってもよい。
表8は、表7で示した認可リクエスト管理部311が記憶する認可確認状況管理テーブルに、クライアント203から渡される再認可の可否や応答期限といった指示を保管する領域を追加したものである。表7で示したクライアント識別子、リソース、スコープは省略している。
表8の一行目では、再認可が“true”となっており、再認可可能であることを示す。また応答期限が“1800”となっており、認可サーバー201からの認可完了通知まで1800秒待つことが可能な指示となっている。認可サーバー201は、認可リクエストを受信すると現在日時に応答期限を加えた日時を認可期限に設定する。ただし、図7のS4で示したアクセストークンリクエストに対して認可完了通知を応答する場合、クライアントからのポーリング間隔も考慮して認可期限を設定する必要がある。次のポーリングまでの間隔は認可開始リクエストS1やアクセストークンリクエストS4の応答で指定することはできるが、処理のオーバヘッドも考慮して少し短く設定するような実装も考えられる。S4’のように認可サーバー201からクライアント203に応答を返す場合であっても、処理のオーバヘッドも考慮して少し短く設定するような実装が考えられる。
表8の二行目では、再認可が“false”となっており、再認可を許容しないリクエストであることを示す。また応答期限が“300”となっており、認可サーバー201からの認可完了通知まで300秒待つことが可能な指示となっている。すなわち、この認可期限は再認可のための期限ではなく、最初の認可までの期限となる。例えば、対面での商品購入の決済に端末を使った認可フローを行うようなケースでは、待ち処理を行う必要はなく、応答も即座に返されるため応答期限は短く設定されている。認可サーバー201は、認可リクエストを受信すると現在日時に応答期限を加えた日時を認可期限に設定する。また、再認可が不可であるため、認可サーバー201は、図7のS3でユーザー端末204から認可結果を受信すると、受信したときの日時を認可期限に設定する。再認可が可能な期間は認可確認の結果はバッファリングされアクセストークンの発行制御はすぐには行われない。
表8の三行目では、再認可が“false”となっており、再認可を許容しないリクエストであることを示す。また応答期限は指定されていない。この場合、認可サーバー201は、認可リクエストを受信した際に認可期限の設定は行わず、図7のS3でユーザー端末204から認可結果を受信すると、受信したときの日時を認可期限に設定してもよい。再認可のためのバッファリングは行われないのが三行目の場合の特徴である。なお、表8の二行目と三行目はバッファリングを行うか否かで差異はあるが、どちらもユーザーは再認可することはできない。
表8の四行目では、再認可が“true”、期限は設定されておらず、再認可可能で期限も存在しないことを示す。このようなユースケースは少ないと思われるが、クライアント203がリソースサーバー202に対して行う処理が何度でも再実行可能な処理であり、特に期限も設定しないケースが考えられる。この場合、認可サーバー201は、認可リクエストを受信した際に認可期限の設定は行わず、図7のS3でユーザー端末204から認可結果を受信しても、認可期限は設定しない。
図12は実施例2における認可結果受信のフローチャートである。図12のフローチャートは認可サーバー201の認可確認部313、アクセストークン発行部314で実行される。図12は、図7の認可結果の受信(S3)および再認可結果受信(S3’)のフローチャートで、図4(C)で説明した認可結果の受信(S425)部分からのフローを示している。
認可サーバー201の認可確認部313は、認可結果を受信すると該当する認可リクエスト識別子に紐付く情報に認可結果を保存する(S426)。認可サーバー201の認可確認部313は、完了通知が図7のS4’で示す認可サーバー201側からクライアント203に通知するPUSH型の方法かどうかを確認する(S1201)。そして再認可期限が設定されているかどうかを確認する(S1202)。実施例1では再認可期限を設定するフローを説明したが、実施例2では再認可期限が設定されない場合もある。再認可期限が設定されている場合は、対象となる認可リクエスト識別子の完了通知を行うための期限タイマーイベントが既に存在しているかを確認し(S1203)、存在しなければ期限タイマーイベントを作成する(S1204)。完了通知がPUSH型で再認可期限が設定されていない場合は、即時に認可完了通知を行うことになる。
認可サーバー201のアクセストークン発行部314は認可結果を確認する(S531)。許可された場合(S532)はアクセストークンを発行して返し(S524)、拒否された場合はその旨を通知する(S525)。なお、即時に認可完了通知を行うのではなく、認可完了通知を行うためのイベントあるいはキューを作成して、別処理として認可完了通知を行う実装であってもよい。
そして、認可サーバー201の認可確認部313は前記表8の再認可列の値を参照して、対象となる認可リクエスト識別子の認可が再認可可能かどうかを確認し(S1205)、認可結果を受信した旨と共に、認可期限をユーザー端末204に返す(S1206)。また、表8の再認可列で示した再認可が可能かどうかの情報もS1206でユーザー端末に返してもよい。なお、S1204でタイマーイベントを作成している場合は、タイマーイベントの起動によって認可完了通知処理が開始される。
図13は、実施例2における図7のアクセストークンリクエスト(S4)を受信した際の認可サーバー201のアクセストークンレスポンスフローチャートである。図13のフローチャートは認可サーバー201のアクセストークン発行部314で実行される。図13のフローチャートは、図5(C)で説明したアクセストークンリクエストに該当する認可リクエスト識別子の情報を取得する(S521)部分からのフローを示している。
該当する認可リクエスト識別子に紐付く情報を取得したら、認可結果が設定されているかを確認する(S811)。認可結果がない場合、再認可期限を越えていないかどうかを確認し(S1301)、再認可期限を越えていない場合は未だ認可結果がきていないことをクライアント203に通知する(S812)。再認可期限を越えていた場合は認可が行われなかったことを通知する(S1302)。実施例1において、再認可期限の設定は認可が一度行われた場合に設定する例を示したが、実施例2では認可開始リクエスト受信時に設定されるため、認可が行われずに期限を越える場合もありうる。
S811で認可結果が設定されている場合は再認可期限を越えているかどうかを確認する(S813)。ここで、期限を越えていなかった場合、未だ認可結果がきていないことを通知して(S812)、ユーザーからの再認可確認を待つ。期限を越えていた場合は図5で示したように、認可結果を確認する(S531)。許可された場合(S532)はアクセストークンを発行して返し(S524)、拒否された場合はその旨を通知する(S525)。
図14のフローチャートは、図10(B)で説明したユーザー端末204上の画面表示部344で実行される認可履歴描画のフローチャートを、実施例2における再認可処理のフローに対応したものである。S1021からS1024のステップは図10と同じであるが、ステップS1401で期限が設定されているかどうかの判定が行われている。
図8(A)で説明したように、再認可が可能な場合は再認可可能な期間を上乗せした日時を期限に設定し、再認可を許可しない場合は現在日時を期限に設定する実装例を示した。実施例2の再認可処理のフローでは再認可期限が設定されない場合もありうる。期限が設定されない場合は認可サーバー201から期限情報は渡されず、履歴情報にも期限が設定されていない状態となる。期限が設定されていない場合、再認可画面へ遷移するリンクを入れたリスト項目を表示する(S1023)。なお、この場合、図9(D)で示した931の期限は表示されない。
また、実施例2では表8の再認可列で再認可が可能かどうかを判断する情報もある。S1206で受信した再認可が可能かどうかの情報を使って、再認可が不可であった場合は、図9(B)の画面に再認可ができない旨の注記を表示したり、912または913のボタン押下時に確認のダイアログボックスを表示したりする実装であってもよい。
以上、クライアント203側で再認可を許容するかどうか、待ち処理による応答の遅延を許容するかどうかの指示を行うことが可能となる。その結果、例えば対面での商品購入の決済に端末を使った認可フローを行うようなケースでは、待ち処理を行う必要はなくなるのでアクセストークンの発行を早期に行うことができる。その一方で、ユーザーが一度行った認可操作を訂正したいケースでは、再認可ができる。
[その他の実施例]
実施例1および2では、認可結果を一時的に記憶する形態として、RAMの中に用意された専用記憶領域を使ったバッファリングを説明したが、バッファリングではなくとも一時的に記憶する形態であればどのような記憶方法であっても良い。例えば、永続記憶領域に認可確認の結果を記憶し、後で消去するような一時的な記憶方法が考えられる。
実施例1および2では、認可結果を一時的に記憶する形態として、RAMの中に用意された専用記憶領域を使ったバッファリングを説明したが、バッファリングではなくとも一時的に記憶する形態であればどのような記憶方法であっても良い。例えば、永続記憶領域に認可確認の結果を記憶し、後で消去するような一時的な記憶方法が考えられる。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
201 認可サーバー
202 リソースサーバー
203 クライアント
204 ユーザー端末
202 リソースサーバー
203 クライアント
204 ユーザー端末
Claims (11)
- ユーザーのリソースを提供するリソースサーバー、前記リソースへアクセスするクライアント、前記クライアントが前記リソースへアクセスすることがユーザーにより許可されたことを示すアクセストークンを発行する認可サーバー、およびユーザー端末とから構成されるシステムにおける前記認可サーバーであって、
前記クライアントから認可開始リクエストを受信する受信手段と、
前記受信手段により認可開始リクエストが受信されたことに応じて、認可確認リクエストの送信先となるユーザー端末を特定する特定手段と、
特定されたユーザー端末に対して認可確認リクエストを送信し、応答として認可確認の結果を受信し、再認可が可能な期間まで前記認可確認の結果を一時的に記憶する認可手段と、
再認可が可能な期間を超えたことに応じて一時的に記憶されている前記認可確認の結果に応じたアクセストークンの発行の制御を行い、前記アクセストークンを発行した場合は前記認可開始リクエストを送信した前記クライアントへ前記アクセストークンを送信する発行手段と、を有することを特徴とする認可サーバー。 - 前記発行手段は、再認可が可能な期間を超えたことに応じて一時的に記憶されている前記認可確認の結果を確認し、前記アクセストークンを発行しない場合、再認可が可能な期間を超えてから拒否された旨を前記クライアントへ送信することを特徴とする請求項1に記載の認可サーバー。
- 前記認可手段は、前記クライアントから再認可の指示を受け付けた場合、一時的に記憶している前記認可確認の結果を前記再認可の指示に基づき更新することを特徴とする請求項1または2に記載の認可サーバー。
- 前記期間は、前記認可確認の結果を受信した日時とあらかじめ設定された値から算出した値、もしくは前記クライアントが送信する前記認可開始リクエストで指定された値によって設定されることを特徴とする請求項1乃至3の何れか1項に記載の認可サーバー。
- 前記受信手段により受信された認可開始リクエストが再認可は不可能であることを示すリクエストであった場合、前記発行手段は、再認可が可能な期間を超えるのを待たずに前記認可確認の結果に応じたアクセストークンの発行の制御を行うことを特徴とする請求項4に記載の認可サーバー。
- 前記受信手段により受信された認可開始リクエストが再認可は不可能であることを示すリクエストであった場合、前記認可手段は受信した認可確認の結果を一時的に記憶しないことを特徴とする請求項5に記載の認可サーバー。
- 前記受信手段により受信された認可開始リクエストが再認可は可能であることを示すリクエストであった場合、認可結果を受信した旨とともに認可期限を前記ユーザー端末へ送信することを特徴とする請求項5または6に記載の認可サーバー。
- ユーザーのリソースを提供するリソースサーバー、前記リソースへアクセスするクライアント、前記クライアントが前記リソースへアクセスすることがユーザーにより許可されたことを示すアクセストークンを発行する認可サーバー、およびユーザー端末とから構成されるシステムであって、
前記クライアントから認可開始リクエストを受信する受信手段と、
前記受信手段により認可開始リクエストが受信されたことに応じて、認可確認リクエストの送信先となるユーザー端末を特定する特定手段と、
特定されたユーザー端末に対して認可確認リクエストを送信する送信手段と、
前記認可確認リクエストの認可確認項目を表示し、前記認可確認リクエストに対する許可もしくは不許可の指示を受け付ける第1の受付手段と、
前記認可確認リクエストの応答として認可確認の結果を受信し、再認可が可能な期間まで前記認可確認の結果を一時的に記憶する認可手段と、
前記認可確認リクエストに対する許可もしくは不許可の指示を受け付けた後、再認可の指示を受け付ける第2の受付手段と、
再認可が可能な期間を超えたことに応じて一時的に記憶されていた前記認可確認の結果に応じたアクセストークンの発行の制御を行い、前記アクセストークンを発行した場合は前記認可開始リクエストを送信した前記クライアントへ前記アクセストークンを送信する発行手段と、を有することを特徴とするシステム。 - 前記第2の受付手段は、再認可が可能な期間を超えた前記認可確認リクエストに対する再認可の指示を受け付けないことを特徴とする請求項8に記載のシステム。
- ユーザーのリソースを提供するリソースサーバー、前記リソースへアクセスするクライアント、前記クライアントが前記リソースへアクセスすることがユーザーにより許可されたことを示すアクセストークンを発行する認可サーバー、およびユーザー端末とから構成されるシステムで実行される方法であって、
前記クライアントから認可開始リクエストを受信する受信ステップと、
前記受信ステップにより認可開始リクエストが受信されたことに応じて、認可確認リクエストの送信先となるユーザー端末を特定する特定ステップと、
特定されたユーザー端末に対して認可確認リクエストを送信する送信ステップと、
前記認可確認リクエストの認可確認項目を表示し、前記認可確認リクエストに対する許可もしくは不許可の指示を受け付ける第1の受付ステップと、
前記認可確認リクエストの応答として認可確認の結果を受信し、再認可が可能な期間まで前記認可確認の結果を一時的に記憶するステップと、
前記認可確認リクエストに対する許可もしくは不許可の指示を受け付けた後、再認可の指示を受け付ける第2の受付ステップと、
再認可が可能な期間を超えたことに応じて一時的に記憶されていた前記認可確認の結果に応じたアクセストークンの発行の制御を行い、前記アクセストークンを
発行した場合は前記認可開始リクエストを送信した前記クライアントへ前記アクセストークンを送信する発行ステップと、を含むことを特徴とする方法。 - ユーザーのリソースを提供するリソースサーバー、前記リソースへアクセスするクライアント、前記クライアントが前記リソースへアクセスすることがユーザーにより許可されたことを示すアクセストークンを発行する認可サーバー、およびユーザー端末とから構成されるシステムにおける前記認可サーバーで実行されるプログラムであって、
前記クライアントから認可開始リクエストを受信させる受信ステップと、
前記受信ステップによって認可開始リクエストが受信されたことに応じて、認可確認リクエストの送信先となるユーザー端末を特定させる特定ステップと、
特定されたユーザー端末に対して認可確認リクエストを送信させ、応答として認可確認の結果を受信させ、再認可が可能な期間まで前記認可確認の結果を一時的に記憶させる認可ステップと、
再認可が可能な期間を超えたことに応じて一時的に記憶されていた前記認可確認の結果に応じたアクセストークンの発行の制御を行わせ、前記アクセストークンを発行した場合は前記認可開始リクエストを送信した前記クライアントへ前記アクセストークンを送信させる発行ステップと、を含むプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019208994A JP2021082004A (ja) | 2019-11-19 | 2019-11-19 | 認可サーバー、システム、システムの方法、および認可サーバーのプログラム |
PCT/JP2020/041802 WO2021100533A1 (ja) | 2019-11-19 | 2020-11-10 | 認可サーバー、システム、システムの方法、および認可サーバーのプログラム |
US17/744,516 US20220272104A1 (en) | 2019-11-19 | 2022-05-13 | Authorization server, system, and method for system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019208994A JP2021082004A (ja) | 2019-11-19 | 2019-11-19 | 認可サーバー、システム、システムの方法、および認可サーバーのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021082004A true JP2021082004A (ja) | 2021-05-27 |
Family
ID=75965269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019208994A Pending JP2021082004A (ja) | 2019-11-19 | 2019-11-19 | 認可サーバー、システム、システムの方法、および認可サーバーのプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220272104A1 (ja) |
JP (1) | JP2021082004A (ja) |
WO (1) | WO2021100533A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10574657B1 (en) * | 2019-07-18 | 2020-02-25 | Capital One Services, Llc | Automatic transaction processing failover |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6033990B2 (ja) * | 2013-09-20 | 2016-11-30 | オラクル・インターナショナル・コーポレイション | 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス |
JP6339981B2 (ja) * | 2015-08-07 | 2018-06-06 | 日本電信電話株式会社 | 検索システム、検索サーバ、方法及びプログラム |
-
2019
- 2019-11-19 JP JP2019208994A patent/JP2021082004A/ja active Pending
-
2020
- 2020-11-10 WO PCT/JP2020/041802 patent/WO2021100533A1/ja active Application Filing
-
2022
- 2022-05-13 US US17/744,516 patent/US20220272104A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220272104A1 (en) | 2022-08-25 |
WO2021100533A1 (ja) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6166596B2 (ja) | 認可サーバーシステムおよびその制御方法、並びにプログラム | |
JP6331684B2 (ja) | 情報処理装置、通信システム、及びプログラム | |
JP2005049993A (ja) | 会議システムおよびその制御方法 | |
US10248367B2 (en) | Information processing system, information processing apparatus, image forming apparatus, methods for controlling the same, and storage medium | |
US9514291B2 (en) | Information processing system, information processing device, and authentication information management method | |
JP2006240023A (ja) | 印刷装置及び情報処理装置 | |
JP2017168046A (ja) | 情報処理装置及びプログラム | |
WO2021100533A1 (ja) | 認可サーバー、システム、システムの方法、および認可サーバーのプログラム | |
JP7247692B2 (ja) | トークン管理装置及びトークン管理プログラム | |
JP7059559B2 (ja) | 情報処理装置及びプログラム | |
EP3608824A1 (en) | Information processing device, information processing system and information processing method | |
EP3588927B1 (en) | Information processing apparatus and method for controlling information rocessing apparatus | |
JP7230329B2 (ja) | 情報処理システム | |
JP6119189B2 (ja) | ライセンス管理装置、ライセンス管理システム、及びライセンス管理方法 | |
JP5850884B2 (ja) | 情報管理システム及びプログラム | |
JP2018093407A (ja) | システム、リソースサーバ、システムの制御方法およびプログラム | |
JP4632450B2 (ja) | 通信装置及びその制御方法 | |
KR101285729B1 (ko) | 데이터베이스 보안 시스템 및 방법 | |
WO2022259378A1 (ja) | 情報処理システム、リソース管理装置、リソース管理方法及びプログラム | |
JP6759691B2 (ja) | 情報処理装置、認可方法及びプログラム | |
JP2015146103A (ja) | コンテンツ提供システム、サーバー装置、端末装置、コンテンツ提供方法、及びプログラム | |
JP2005149382A (ja) | ライセンス管理装置及びプログラム | |
JP2009086960A (ja) | Urlフィルタ設定方法、クライアント装置、端末装置、クライアントサーバシステムおよびurlフィルタ設定プログラム | |
JP7301669B2 (ja) | システム、認可サーバー、制御方法、プログラム | |
JP2008269113A (ja) | アプリケーション実行環境構築システム、装置及びそれに用いる方法並びにそのプログラム |