JP2016115260A - Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program - Google Patents

Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program Download PDF

Info

Publication number
JP2016115260A
JP2016115260A JP2014255203A JP2014255203A JP2016115260A JP 2016115260 A JP2016115260 A JP 2016115260A JP 2014255203 A JP2014255203 A JP 2014255203A JP 2014255203 A JP2014255203 A JP 2014255203A JP 2016115260 A JP2016115260 A JP 2016115260A
Authority
JP
Japan
Prior art keywords
client
resource
server
authorization server
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014255203A
Other languages
Japanese (ja)
Inventor
小林 真琴
Makoto Kobayashi
真琴 小林
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 JP2014255203A priority Critical patent/JP2016115260A/en
Publication of JP2016115260A publication Critical patent/JP2016115260A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an authority transfer system capable of changing non-functional requirements linked with an authority by change of client authorities.SOLUTION: A resource server issues an authentication identifier to a client request, an authorization server receives the authentication identifier, and destination information of a mediation device from a client, and issues certification information for certifying a client authority based on information preliminarily registered in the authorization server. The mediation device issues the certification information based on the authentication identifier and the information preliminarily registered in the authorization server when the certification information is transmitted from the client, the resource server receives the certification information issued by the mediation device from the client, and provides the client with a resource based on the authentication identifier. The authorization server preliminarily registers pieces of destination information of a plurality of mediation devices corresponding to a plurality of resource servers with different performances for the same resource, and makes any destination information possible to be selected by the client.SELECTED DRAWING: Figure 6

Description

認可フローにおける権限選択方法に関し、特にOAuth implicit grantにおけるクライアント権限による機能、リソース選択方法に関する。   It relates to the authority selection method in the authorization flow, and in particular to the function and resource selection method by the client authority in OAuth implicit grant.

近年インターネット上でPDF形式の電子文書を作成するサービスや電子文書を蓄積するサービス等が提供されている。このようなサービスを利用することでユーザーは、自身が所有する端末自体にPDF作成機能がない場合でもPDFを作成できるようになる他、端末の記憶容量以上に電子文書を保管できるようにもなる。さらに近年、クラウドが一般化するに伴い、前述のような複数のサービスを連携させて付加価値を創造する機会はますます増加している。サービスを連携させることでサービス提供者は、ユーザーに付加価値を提供することができる。例えば作成したPDF形式の電子文書を、ユーザーが所有する端末を経由することなく、直接インターネット上で保管できるようにもなる。   In recent years, services for creating electronic documents in PDF format on the Internet, services for storing electronic documents, and the like have been provided. By using such a service, users can create PDFs even if they do not have a PDF creation function on their own device, and can also store electronic documents beyond the storage capacity of the device. . Furthermore, in recent years, as the cloud has become more common, opportunities to create added value by linking multiple services as described above are increasing. By linking the services, the service provider can provide added value to the user. For example, a created electronic document in PDF format can be stored directly on the Internet without going through a terminal owned by the user.

その一方で、サービスが連携することにより、いくつかの課題が生まれる。すなわち、ユーザーが望んだ以上の情報がサービス間で交換されるので、ユーザーデータや個人情報の漏えいリスクがある。例えばインターネット上には複数のサービスが存在し、様々なサービス間でサービス連携が実現されるが、ユーザーが望む結果を提供するサービス以外のサービスがユーザーデータ、個人情報等を取得することは望ましくない。一方で、サービスの提供者からすると、サービス連携の仕組みは容易に実装できるものが好ましい。   On the other hand, several issues are born by the cooperation of services. That is, since more information than the user desires is exchanged between services, there is a risk of leakage of user data and personal information. For example, there are multiple services on the Internet, and service cooperation is realized between various services, but it is not desirable for services other than services that provide the results desired by the user to acquire user data, personal information, etc. . On the other hand, from the service provider, it is preferable that the service cooperation mechanism can be easily implemented.

このような状況において、OAuthと呼ばれる、認可の連携を実現させるための標準プロトコルが策定されている。OAuthについては以降でさらに詳細に説明する。OAuthによれば、例えばあるサービスAが管理するユーザーのデータに、そのユーザーから認められた外部サービスBがアクセスすることができる。このときサービスAは、外部サービスBからアクセスされる範囲を明らかにした上で、外部サービスBによるアクセスに対してユーザーの明示的な認可を得ることになっている。ユーザーが明示的に認可を行うことを「認可操作」と称する。   In such a situation, a standard protocol called OAuth has been developed to realize authorization cooperation. OAuth will be explained in more detail later. According to OAuth, for example, an external service B approved by a user can access user data managed by a service A. At this time, the service A is to clarify the range accessed from the external service B, and obtain an explicit authorization of the user for access by the external service B. The explicit authorization by the user is called “authorization operation”.

ユーザーが認可操作を行うと、外部サービスBはサービスAからアクセスを認められたことを証明するトークン (以下、「アクセストークン」と称する) を受け取り、以降のアクセスはそのアクセストークンを用いて実現できる。ここでアクセストークンを用いると外部サービスBは、ユーザーの認証情報なしに、認可を行ったユーザーの権限でサービスAにアクセスできる。またそのため、ユーザーから認可を受けアクセストークンを取得した外部サービスBは、そのアクセストークンを厳重かつ適正に管理する責務を負う。   When the user performs an authorization operation, the external service B receives a token (hereinafter referred to as “access token”) certifying that the access is permitted from the service A, and subsequent access can be realized using the access token. . If the access token is used here, the external service B can access the service A with the authority of the authorized user without user authentication information. For this reason, the external service B that has been authorized by the user and has acquired the access token is responsible for managing the access token strictly and properly.

また近年の機器には、OAuthを用いて、クラウドサービスと連携することでユーザーに付加価値を提供するものがある。例えばソーシャル・ネットワーキング・サービス(以下「SNS」と呼ぶ)と呼ばれるサービスがある。これらのサービスはスマートフォンから利用することができる。SNSには様々なものがあるが、特定のアプリケーションをスマートフォンにインストールして利用することで、そのSNSを利用しやすくなることがある。例えば定期的に自分の居場所をSNSに投稿したいユーザーは、スマートフォンの測位機能を使い、定期的に測位とSNSへの投稿を行うアプリケーションを利用すると、便利と感じるだろう。   Some recent devices provide added value to users by using OAuth and linking with cloud services. For example, there is a service called a social networking service (hereinafter referred to as “SNS”). These services can be used from a smartphone. There are various types of SNS, but installing a specific application on a smartphone may make it easier to use the SNS. For example, a user who wants to regularly post his / her whereabouts on SNS may find it convenient to use an application that uses the positioning function of a smartphone to periodically position and post to SNS.

ここでスマートフォンにインストールされたアプリケーションは、SNSにユーザーの代理でアクセスすることになる。このような場合にOAuthが利用されることがある。ユーザーは、SNSを利用するのに必要な最小限の機能、例えば記事を投稿することをアプリケーションに許可することで、アプリケーションを介してSNSを利用できるようになる。   Here, the application installed on the smartphone will access the SNS on behalf of the user. OAuth may be used in such cases. The user can use the SNS through the application by allowing the application to submit the minimum function necessary for using the SNS, for example, an article.

ところでOAuthにおいては、JavaScript(登録商標)の様なスクリプト言語によるブラウザー上で実行されるクライアントに最適化されている、「インプリシットグラント」と呼ばれるアクセストークン取得のフローが定義されている。上記のようなクライアントは、リソースオーナーの認可後、アクセストークン取得のための仲介のクレデンシャルである認可コードではなく、直接アクセストークンを受け取る。このグラントタイプは、認可コードのようなアクセストークン取得を仲介するクレデンシャルを利用しないため、インプリシットグラントと呼ばれる。   By the way, in OAuth, an access token acquisition flow called “implicit grant”, which is optimized for a client executed on a browser using a script language such as JavaScript (registered trademark), is defined. After the authorization of the resource owner, the client as described above receives an access token directly instead of an authorization code that is an intermediary credential for obtaining an access token. This grant type is called an implicit grant because it does not use a credential that mediates access token acquisition such as an authorization code.

インプリシットグラントの特徴として、アクセス主体であるクライアントのクレデンシャルの認可サーバーへの提示が必要ない、ということがある。したがって、インプリシットグラントでは、クライアントの権限による非機能要件の違いを出すことができない。すなわち、クライアントクレデンシャルの提示がないため、権限に基づく非機能要件の変更ができない。また、インプリシットグラントでは、アクセストークンがユーザー (リソース所有者) に容易に傍受されうる。なお、「非機能要件」とは、システム設計や情報システム開発上の要求分析において、要件、システム要件といった機能面以外の全般を指すものである。   A characteristic of the implicit grant is that it is not necessary to present the credentials of the client that is the access subject to the authorization server. Therefore, the implicit grant cannot make a difference in non-functional requirements depending on the authority of the client. That is, since there is no presentation of client credentials, non-functional requirements cannot be changed based on authority. In implicit grants, access tokens can be easily intercepted by users (resource owners). “Non-functional requirements” refers to the general aspects other than functional aspects, such as requirements and system requirements, in requirements analysis for system design and information system development.

現状Webブラウザーから上記のようなクラウドサービスと連携するサービスを利用する場合、認証情報をCookie等でログインセッションを引き回し、OAuthのような認可確認を明示的に行わない実装もおこなわれている。   When using a service linked with the cloud service as described above from the current Web browser, the authentication session is routed with a cookie etc. and authentication is not performed explicitly like OAuth.

ところで、現在Webブラウザーからも jQuery 等を用いたAPIアクセスで前記クラウドサービスと連携するサービスを利用する形態がデファクトスタンダードになりつつある。この背景としては、モバイルの普及やブラウザーOSの登場といったトレンドが影響している。   By the way, a form of using a service linked with the cloud service by an API access using jQuery or the like from a web browser is now becoming a de facto standard. This is influenced by trends such as the spread of mobile and the appearance of browser OS.

上記ソリューションのメリットとしては以下がある。
(1)サーバーサイドをRESTfulなJSON APIに統一することで、UIを伴うWebブラウザーからの呼び出しだけでなく、UIを伴わない他アプリケーションからの呼び出し(サービス公開)にも対応できる。
(2)サーバーサイドのテンプレート、レンダリング処理が不要となり、サーバーサイドの処理負荷を軽減できる。
The advantages of the above solution are as follows.
(1) By unifying the server side with RESTful JSON API, it is possible to support not only calls from Web browsers with UI but also calls from other applications without UI (service disclosure).
(2) No server-side template or rendering process is required, and the server-side processing load can be reduced.

アーキテクチャ的な裏付けとしては、以下がある。
(1)サーバー側:クライアントからの大量の同時アクセス(処理リクエスト)に応えられる、Nodeのような非同期にNon Blocking 処理を行うサーバー側アーキテクチャ。(大量のI/O処理を同期で処理し、ネットワークI/Oを伴わないCPUバウンドな処理は非同期処理に回す)
(2)クライアント側:非同期処理ライブラリのAJAX、リッチなUI処理を可能にするJQuery。多言語対応を可能にするGlobalizeプラグイン(JQueryのプラグイン)などのJavascript(登録商標)ライブラリ。クライアント側でライブラリを高速で実行できるJavascript(登録商標)エンジン。
The architectural support is as follows.
(1) Server side: Server side architecture that performs non-blocking processing asynchronously like Node, which can respond to a large number of simultaneous accesses (processing requests) from clients. (A large amount of I / O processing is processed synchronously, and CPU bound processing without network I / O is turned to asynchronous processing.)
(2) Client side: AJAX of asynchronous processing library, JQuery that enables rich UI processing. Javascript (registered trademark) library such as Globalize plug-in (JQuery plug-in) that enables multilingual support. Javascript (registered trademark) engine that can execute the library at high speed on the client side.

"The OAuth 1.0 Protocol"、[online] E. Hammer-Lahav、2012年9月 <URL http://tools.ietf.org/html/rfc5849>"The OAuth 1.0 Protocol", [online] E. Hammer-Lahav, September 2012 <URL http://tools.ietf.org/html/rfc5849> "The OAuth 2.0 Authorization Framework"、[online] D. Hardt、2013年5月 <URL http://tools.ietf.org/html/rfc6749>"The OAuth 2.0 Authorization Framework", [online] D. Hardt, May 2013 <URL http://tools.ietf.org/html/rfc6749>

現在スタンダードな手法になりつつあるjQuery を用いたAPIアクセスによりクラウドサービスを利用する形態の場合、認可フローとしてOAuthを使用することになる。その際、サービス利用のクライアントがWebブラウザーの場合等、OAuth のインプリシットグラントを用いる場合がある。インプリシットグラントを用いた場合、クライアントの権限を変更することで、権限に紐付く非機能要件(パフォーマンス)を変更することができない。   In the case of using a cloud service by API access using jQuery, which is currently becoming the standard method, OAuth will be used as the authorization flow. At that time, OAuth implicit grant may be used, such as when the client using the service is a Web browser. When implicit grant is used, non-functional requirements (performance) associated with authority cannot be changed by changing client authority.

OAuthインプリシットグラントを用いた場合、オーソライゼーションコードグラントと異なり、クライアント認証が存在しない。よって、クライアントの権限を変更することで非機能要件(例えばパフォーマンス等)を変更することができない。(例えクライアント権限を変更したとしても、クライアント認証せずにクライアント権限チェックすることはセキュリティ上行うことができない)   When using OAuth implicit grant, unlike authorization code grant, there is no client authentication. Therefore, non-functional requirements (for example, performance) cannot be changed by changing the authority of the client. (Even if the client authority is changed, it is not possible to check the client authority without authenticating the client)

クライアント権限チェックが必要な理由としては以下を挙げることができる。クライアントが契約サービスを利用するためには、権限(に紐付くロール)が必要。サービス提供者は、ユーザー(クライアント)に対し、権限確認なしに自分が契約しているサービスを利用されてはいけない。   The reason why the client authority check is necessary is as follows. In order for the client to use the contract service, authority (role associated with) is required. The service provider must not use the service that the user (client) contracts without confirming the authority.

本発明は前述の課題を鑑みてなされたものであり、リソースを提供するリソースサーバーと、クライアントの認証及びリソースの認可を行なう認可サーバーと、クライアントと認可サーバーとの間の通信を媒介する媒介装置とを有する、ネットワークにおいて用いられる権限移譲システムであって、リソースサーバーは、保護されたリソースに対するクライアントからの要求に対し、クライアントの認証に用いられる認証識別子をクライアントに発行し、認可サーバーは、クライアントを識別する識別情報、リソースサーバーが発行した認証識別子、媒介装置の宛先を示す宛先情報をクライアントから受信し、認可サーバーに予め登録した情報に基づいて、クライアントを認証し、認証に成功した場合、クライアントが保護されたリソースに対して権限を有するかどうか検証し、検証に成功した場合、権限を有することを証明する証明情報をクライアントに発行し、媒介装置は、クライアントから宛先情報が示す宛先に認可サーバーが発行した証明情報が送られた場合、認証識別子と認可サーバーに予め登録した情報に基づいて、クライアントが保護されたリソースに対して権限を有するかどうか検証し、検証が成功した場合、権限を有することを証明する証明情報をクライアントに発行し、リソースサーバーは、媒介装置が発行した証明情報をクライアントから受信し、認証識別子に基づいて、クライアントからの要求を許可するかどうか検証し、検証に成功した場合、保護されたリソースをクライアントに提供し、認可サーバーは、同じリソースについて性能の異なる複数のリソースサーバーに対応する複数の媒介装置の宛先情報を予め登録し、そのうちのいずれかの宛先情報をクライアントにより選択可能とすることを特徴とする権限移譲システムを提供する。   The present invention has been made in view of the above-described problems, and includes a resource server that provides resources, an authorization server that performs client authentication and resource authorization, and an intermediary device that mediates communication between the client and the authorization server. The resource delegation system used in the network, the resource server issues an authentication identifier used to authenticate the client to the client in response to a request from the client for the protected resource, and the authorization server Identification information for identifying, authentication identifier issued by the resource server, destination information indicating the destination of the intermediary device is received from the client, the client is authenticated based on information registered in advance in the authorization server, and if the authentication is successful, Clients to protected resources If the verification is successful, the authentication information is issued to the client, and the intermediary device issues the certification information issued by the authorization server to the destination indicated by the destination information from the client. Is sent, it verifies whether the client has authority over the protected resource based on the authentication identifier and the information registered in advance in the authorization server, and if the verification succeeds, proves that it has authority Certificate information is issued to the client, and the resource server receives the certificate information issued by the intermediary device from the client, verifies whether the request from the client is permitted based on the authentication identifier, and protects if the verification is successful. Provided to the client, and the authorization server uses multiple resources with different performance for the same resource. Previously registered the destination information of a plurality of intermediary devices corresponding to the over scan server provides authority transfer system characterized by a selectable one of the destination information of which the clients.

Web API を通じて印刷サービスなどを提供し、OAuthのImplicitフローを利用するようなクラウドサービスにおいて、Client登録時、契約により複数のリダイレクトURLのうちの一つを選択できる。クライアントが動作する際、非機能要件(パフォーマンス等)の異なるリソースサーバーのエンドポイントのどれを使用するか指定できる。また、クライアント登録時に一つのクライアントに複数のリダイレクトURIを対応付けて登録することにより、リソースサーバーのエンドポイントを選択でき、ユーザーの利便性が向上する。   In a cloud service that provides a print service through the Web API and uses the OAuth Implicit flow, one of multiple redirect URLs can be selected by contract when registering a Client. You can specify which of the resource server endpoints with different non-functional requirements (performance, etc.) to use when the client is running. In addition, by registering a plurality of redirect URIs in association with one client at the time of client registration, the endpoint of the resource server can be selected, and the convenience for the user is improved.

実施例1のシステム構成図。1 is a system configuration diagram of Embodiment 1. FIG. 実施例1の各装置のハードウェア構成図。FIG. 2 is a hardware configuration diagram of each device according to the first embodiment. 実施例1の各装置のモジュール構成図。FIG. 2 is a module configuration diagram of each device according to the first embodiment. 実施例1の認可クライアント登録処理シーケンス図。FIG. 3 is an authorized client registration processing sequence diagram according to the first embodiment. 実施例1の認可クライアント登録画面。The authorized client registration screen of Example 1. 実施例1の認証認可フローのシーケンス図。FIG. 3 is a sequence diagram of an authentication authorization flow according to the first embodiment. 実施例1の認可サーバー処理のフローチャート。5 is a flowchart of authorization server processing according to the first embodiment. 実施例1の認可確認画面。The authorization confirmation screen of Example 1. 実施例1のWeb-Hostedクライアント処理のフローチャート。10 is a flowchart of Web-Hosted client processing according to the first embodiment. 実施例1の認可サーバーのWeb-Hostedクライアントnonce値検証処理のフローチャート。10 is a flowchart of Web-Hosted client nonce value verification processing of the authorization server according to the first embodiment. 実施例1の認可クライアントのクライアントスクリプト処理のフローチャート。6 is a flowchart of client script processing of the authorized client according to the first embodiment. 実施例1の認可サーバーのリソースサーバーnonce値検証処理のフローチャート。6 is a flowchart of resource server nonce value verification processing of the authorization server according to the first embodiment. 実施例2の認可クライアント登録画面。The authorized client registration screen of Example 2. 実施例2の認証認可フローのシーケンス図。FIG. 10 is a sequence diagram of an authentication authorization flow according to the second embodiment.

以下、本発明を実施するための最良の形態について図面を用いて説明する。本実施の形態においては、インターネット上で帳票データを生成する帳票サービスと、インターネット上のデータを取得して印刷する印刷サービスが、インターネット上のサーバーに設置されていることを想定している。以降、帳票サービスや印刷サービスのように、インターネット上で機能を提供しているサービスを、「リソースサービス」と呼ぶ。   The best mode for carrying out the present invention will be described below with reference to the drawings. In the present embodiment, it is assumed that a form service that generates form data on the Internet and a print service that acquires and prints data on the Internet are installed on a server on the Internet. Hereinafter, services that provide functions on the Internet, such as form services and printing services, are referred to as “resource services”.

また本実施の形態においては、画像形成装置上にインストールされた印刷アプリケーションおよび帳票アプリケーションがリソースサービスを利用することを想定している。以降、印刷アプリケーションや帳票アプリケーションのように、リソースサービスを利用するアプリケーションを、「リソースサービス連携アプリケーション」と呼ぶ。無論、リソースサービスは帳票サービス、印刷サービスには限られず、アプリケーションも帳票アプリケーション、印刷アプリケーションに限られるものではない。   In this embodiment, it is assumed that a print application and a form application installed on the image forming apparatus use a resource service. Hereinafter, an application that uses a resource service, such as a printing application or a form application, is referred to as a “resource service cooperation application”. Of course, the resource service is not limited to the form service and the print service, and the application is not limited to the form application and the print application.

さらに本実施の形態における権限の移譲ではOAuthの仕組みを利用する。OAuthでは、ユーザーから移譲された権限を証明するための情報として、「トークン」と呼ばれる証明情報を利用する。   Furthermore, in the transfer of authority in this embodiment, an OAuth mechanism is used. In OAuth, certification information called “token” is used as information to prove the authority transferred from the user.

<実施例1>(単数リダイレクトURIによるリソースサーバー非機能要件選択)
本実施例に係る権限移譲システムは、図1に示すような構成のネットワーク上に実現される。100はWide Area Network(WAN100)であり、本実施例ではWorld Wide Web(WWW)システムが構築されている。101、102は、各構成要素を接続するLocal Area Network(LAN101、LAN102)である。
<Example 1> (Resource server non-functional requirement selection with single redirect URI)
The authority transfer system according to the present embodiment is realized on a network having a configuration as shown in FIG. Reference numeral 100 denotes a wide area network (WAN 100). In this embodiment, a World Wide Web (WWW) system is constructed. Reference numerals 101 and 102 denote local area networks (LAN 101 and LAN 102) that connect the respective components.

認可サーバー500はOAuthを実現するためのサーバーであり、認可サービスモジュールが設置されている。Web-Hostedクライアント300、301、302は、OAuthにおけるWeb-Hostedクライアントリソースを実装するクライアントである。本実施例ではWeb-Hostedクライアント300、301、302は認可サーバー500とクライアントPC200の間の通信を媒介する媒介装置として機能する。具体的には、Web-Hostedクライアント300、301、302は認可サーバー500からクライアントPC200向けのアクセストークンの応答先のリダイレクトURIとして指定される。また、後述する異なる非機能要件を持つリソースサーバー400、401、402の各々に対応する。   The authorization server 500 is a server for realizing OAuth, and an authorization service module is installed. Web-Hosted clients 300, 301, and 302 are clients that implement Web-Hosted client resources in OAuth. In this embodiment, the Web-Hosted clients 300, 301, and 302 function as an intermediary device that mediates communication between the authorization server 500 and the client PC 200. Specifically, the Web-Hosted clients 300, 301, and 302 are designated as redirect URIs of response destinations of access tokens for the client PC 200 from the authorization server 500. Further, it corresponds to each of resource servers 400, 401, 402 having different non-functional requirements to be described later.

リソースサーバー400、401、402は、印刷サービスや帳票サービスといったリソースサービス連携アプリケーションが設置されるサーバーである。なお1台のリソースサーバーに設置されるリソースサービス連携アプリケーションは1つでもよく、複数でもよい。またリソースサーバー400、401、402は、同じリソースサービス連携アプリケーションを提供するが、各々CPUの処理速度、メモリ容量、ディスク容量、許容同時接続数等の非機能要件に関わる仕様の異なるサーバー群である。本実施例においては、リソースサーバーの仕様は400が高スペック、401が中間スペック、402が低スペックである。本実施例においては、リソースサーバー400、401、402のスペックの違いは、リソースサーバー連携アプリケーションの能力の違いを表す。例えば印刷サービスにおいて、無償提供のサービスについては低スペックのリソースサーバー402に誘導する。有償提供の性能保証が必要なサービスについては契約するサービス性能に応じて中間性能のリソースサーバー401や高性能のリソースサーバー400に誘導する。   The resource servers 400, 401, and 402 are servers on which resource service cooperation applications such as a printing service and a form service are installed. Note that one or more resource service cooperation applications may be installed in one resource server. The resource servers 400, 401, and 402 provide the same resource service cooperation application, but are servers having different specifications related to non-functional requirements such as CPU processing speed, memory capacity, disk capacity, and the number of allowable simultaneous connections. . In this embodiment, the specification of the resource server is 400 for high specifications, 401 for intermediate specifications, and 402 for low specifications. In the present embodiment, the difference in the specifications of the resource servers 400, 401, and 402 represents the difference in the capabilities of the resource server cooperation application. For example, in a printing service, a free service is guided to a low-spec resource server 402. A service that requires a performance guarantee for a fee is guided to a resource server 401 having an intermediate performance or a resource server 400 having a high performance in accordance with the contracted service performance.

クライアントPC200はユーザーが操作するPCである。クライアントPC200はPC上のWebブラウザーで後述するクライアントスクリプトを実行し、後述するクライアント登録の選択により、いずれかのリソースサーバーのリソースを用いて、印刷サービスや帳票サービスといったサービスを利用する。なお、本実施例の特徴として、Web-Hostedクライアント300、301、302とリソースサーバー400、401、402が、認可サーバー500と同一のLAN101に接続されている。また、Web-Hostedクライアント300、301、302と、リソースサーバー400、401、402と、認可サーバー500がWAN100を介さずに接続されている。このため本実施例においてはこれらを同一セキュリティドメインとみなし、Web-Hostedクライアント300、301、302とリソースサーバー400、401、402のサービス連携を、同一の認証で賄うことを特徴とする。   The client PC 200 is a PC operated by the user. The client PC 200 executes a client script (to be described later) with a Web browser on the PC, and uses a service such as a print service or a form service by using a resource of one of the resource servers by selecting a client registration to be described later. As a feature of the present embodiment, Web-Hosted clients 300, 301, 302 and resource servers 400, 401, 402 are connected to the same LAN 101 as the authorization server 500. Further, the Web-Hosted clients 300, 301, 302, the resource servers 400, 401, 402, and the authorization server 500 are connected without going through the WAN 100. For this reason, in this embodiment, these are regarded as the same security domain, and the service cooperation between the Web-Hosted clients 300, 301, 302 and the resource servers 400, 401, 402 is covered by the same authentication.

またクライアントPC200、Web-Hostedクライアント300、301、302、リソースサーバー400、401、402は、それぞれWAN100およびLAN101、LAN102を介して接続されている。なおクライアントPC200およびそれぞれのサービスはそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また同一のPC上に構成されていてもよい。   The client PC 200, Web-Hosted clients 300, 301, and 302, and resource servers 400, 401, and 402 are connected via the WAN 100, LAN 101, and LAN 102, respectively. The client PC 200 and each service may be configured on separate LANs or on the same LAN. Further, they may be configured on the same PC.

図2は本実施例に係るクライアントPC200の構成を示す図である。Web-Hostedクライアント300、301、302、リソースサーバー400、401、402、認可サーバー500のサーバーコンピューターの構成も同様である。尚、図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施例のクライアントPC200およびサーバーコンピューターには一般的な情報処理装置のハードウェア構成を適用できる。   FIG. 2 is a diagram illustrating the configuration of the client PC 200 according to the present embodiment. The configuration of the server computers of the Web-Hosted clients 300, 301, 302, resource servers 400, 401, 402, and authorization server 500 is the same. The hardware block diagram shown in FIG. 2 corresponds to the hardware block diagram of a general information processing apparatus, and the hardware configuration of a general information processing apparatus is used for the client PC 200 and the server computer of this embodiment. Can be applied.

図2において、CPU201は、ROM203のプログラムROMに記憶された、或いはハードディスク(HD)211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。なおOSはコンピュータ上で稼動するオペレーティングシステムである。後述する各フローチャートの処理はこのプログラムの実行により実現できる。RAM202はCPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205はキーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。   In FIG. 2, the CPU 201 executes a program such as an OS or an application stored in the program ROM of the ROM 203 or loaded from the hard disk (HD) 211 to the RAM 202. The OS is an operating system that runs on a computer. The processing of each flowchart to be described later can be realized by executing this program. The RAM 202 functions as a main memory and work area for the CPU 201. A keyboard controller (KBC) 205 controls key input from a keyboard (KB) 209 or a pointing device (not shown). A CRT controller (CRTC) 206 controls display on the CRT display 210. A disk controller (DKC) 207 controls data access in a hard disk (HD) 211 and a floppy (registered trademark) disk (FD) for storing various data. The NC 212 is connected to the network and executes communication control processing with other devices connected to the network.

なお、後述の説明において、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211にインストールされたアプリケーションプログラムである。   In the following description, unless otherwise specified, the subject on execution hardware is the CPU 201, and the subject on software is an application program installed in the hard disk (HD) 211.

図3は本実施例に係る認可サーバー500、リソースサーバー400、401、402、クライアントPC200、Web-Hostedクライアント300、301、302の、それぞれのモジュール構成を示す図である。なお認可サーバー500、リソースサーバー400、401、402、クライアントPC200、Web-Hostedクライアント300、301、302は、図1のものと同一である。   FIG. 3 is a diagram illustrating module configurations of the authorization server 500, the resource servers 400, 401, and 402, the client PC 200, and the Web-Hosted clients 300, 301, and 302 according to the present embodiment. The authorization server 500, resource servers 400, 401, 402, client PC 200, and Web-Hosted clients 300, 301, 302 are the same as those in FIG.

認可サーバー500は認可サーバーモジュール510を備え、同モジュールはユーザー識別部610、クライアント登録部620、nonce値検証部630、クライアント検証部520、トークン検証部530、トークン発行部540を備える。なお、「nonce」(ノンス)とは、暗号通信で用いられる使い捨てのランダムな値のことであり、通常は認証の過程で使われ、リプレイ攻撃を行えないようにする働きを担っている。以下、使い捨ての認証識別子の意で用いる。   The authorization server 500 includes an authorization server module 510, which includes a user identification unit 610, a client registration unit 620, a nonce value verification unit 630, a client verification unit 520, a token verification unit 530, and a token issue unit 540. Note that “nonce” is a disposable random value used in cryptographic communication, and is usually used in the authentication process and has a function of preventing replay attacks. Hereinafter, it is used in the meaning of a disposable authentication identifier.

リソースサーバー400、401、402は同一のモジュール構成を持つ。以下、代表してリソースサーバー400について説明する。リソースサーバー400はリソースサーバーモジュール410を備え、同モジュールはトークン権限確認部420、リソース要求処理部430、後述するnonce値確認部440を備える。   The resource servers 400, 401, and 402 have the same module configuration. Hereinafter, the resource server 400 will be described as a representative. The resource server 400 includes a resource server module 410, which includes a token authority confirmation unit 420, a resource request processing unit 430, and a nonce value confirmation unit 440, which will be described later.

クライアントPC200は、CPU201がROM203、或いは外部メモリ211に記憶されたOS220を実行する事で各アプリケーションを制御する。OSとしては一般的にはリアルタイムOSが使用されるが、昨今ではLinux(登録商標)等の汎用OSが使用される事もある。さらに、クライアントPC200はWWWを利用するためのユーザーエージェントであるWebブラウザー230を備える。   The client PC 200 controls each application by the CPU 201 executing the OS 220 stored in the ROM 203 or the external memory 211. A real-time OS is generally used as the OS, but a general-purpose OS such as Linux (registered trademark) may be used recently. Further, the client PC 200 includes a web browser 230 that is a user agent for using the WWW.

Web-Hostedクライアント300、301、302は同一のモジュール構成を持つ。以下、代表してWeb-Hostedクライアント300について説明する。Web-Hostedクライアント300はWeb-Hostedクライアントモジュール310を備え、同モジュールは後述するnonce値確認部330を備える。また、同モジュールは、クライアントPC200からのアクセストークン応答のリダイレクトURIリクエストを受信し、後述するアクセストークン取得とリソースリクエストを行うクライアントスクリプト320を返す機能を持つ。   Web-Hosted clients 300, 301, and 302 have the same module configuration. Hereinafter, the Web-Hosted client 300 will be described as a representative. The Web-Hosted client 300 includes a Web-Hosted client module 310, which includes a nonce value confirmation unit 330 described later. The module also has a function of receiving a redirect URI request for an access token response from the client PC 200 and returning a client script 320 for obtaining an access token and a resource request, which will be described later.

以下の表1〜表5は認可サーバー500が外部メモリに記憶するデータテーブルを示す。これらのデータテーブルは、認可サーバー500の外部メモリではなく、LAN101を介して通信可能に構成された別のサーバーに記憶するよう構成する事も出来る。   Tables 1 to 5 below show data tables that the authorization server 500 stores in the external memory. These data tables may be stored not in the external memory of the authorization server 500 but in another server configured to be communicable via the LAN 101.

Figure 2016115260
Figure 2016115260

表1のユーザー管理テーブルは、ユーザーID(識別情報)、パスワード、ユーザー種別から成る。認可サーバー500は、ユーザーID、パスワードの情報の組を検証し、正しければ認証情報を生成することで、各ユーザーもしくはクライアントを認証する機能を備える。   The user management table in Table 1 includes a user ID (identification information), a password, and a user type. The authorization server 500 has a function of authenticating each user or client by verifying a set of user ID and password information and generating authentication information if it is correct.

Figure 2016115260
Figure 2016115260

表2のクライアント管理テーブルは、クライアントID、クライアント名、リダイレクトURIから成る。クライアントID、クライアント名、リダイレクトURIは後述のOAuthのシーケンスで利用される値である。   The client management table in Table 2 includes a client ID, a client name, and a redirect URI. The client ID, client name, and redirect URI are values used in the OAuth sequence described later.

Figure 2016115260
Figure 2016115260

表3のトークン管理テーブルはトークンID、有効期限、スコープ、クライアントID、ユーザーIDから成る。トークン管理テーブルの処理詳細については後述する。   The token management table in Table 3 includes a token ID, an expiration date, a scope, a client ID, and a user ID. Details of processing of the token management table will be described later.

Figure 2016115260
Figure 2016115260

表4のnonce値管理テーブルは、nonce値、トークンID、有効期限から成る。nonce値管理テーブルの処理詳細については後述する。   The nonce value management table in Table 4 includes a nonce value, a token ID, and an expiration date. Details of processing of the nonce value management table will be described later.

Figure 2016115260
Figure 2016115260

表5のクライアント、リソースサーバー管理テーブルはWeb-Hosted Client URIとリソースサーバーURI から成る。この管理テーブルは、Web-Hostedクライアント300、301、302、リソースサーバー400、401、402、認可サーバー500のサーバーシステム構築者がサーバーシステム構築時に予め登録する。Web-Hostedクライアント300に対してリソースサーバー400を対応付けて登録する。さらにWeb-Hostedクライアント301、302に対しても同様に、リソースサーバー401、402を各々対応付けて登録する。もしリソースサーバーを増設する場合には、対応するWeb-Hostedクライアントも同じ台数増設し、前記と同様に表5の管理テーブルに登録する。クライアント、リソースサーバー管理テーブルの処理詳細については後述する。   The client / resource server management table of Table 5 includes a Web-Hosted Client URI and a resource server URI. This management table is registered in advance by the server system builder of the Web-Hosted clients 300, 301, 302, resource servers 400, 401, 402, and authorization server 500 when the server system is constructed. The resource server 400 is registered in association with the Web-Hosted client 300. Further, similarly for the Web-Hosted clients 301 and 302, the resource servers 401 and 402 are registered in association with each other. If a resource server is added, add the same number of corresponding Web-Hosted clients and register them in the management table of Table 5 in the same manner as described above. Details of processing of the client and resource server management table will be described later.

ここで、非機能要件の異なるリソースサーバーを選択可能にするために必要なクライアント登録処理を行うための、本実施例に係るクライアント登録フローを表すシーケンスについて図4、5を用いて説明する。図4のクライアント登録フローは、OAuth2.0で一般的なOAuth2.0仕様におけるクライアント登録に関して、本実施例独自の拡張を加えたフローである。   Here, a sequence representing a client registration flow according to the present embodiment for performing a client registration process necessary for enabling selection of resource servers having different non-functional requirements will be described with reference to FIGS. The client registration flow in FIG. 4 is a flow in which the extension unique to the present embodiment is added to the client registration in the OAuth 2.0 specification generally used in OAuth 2.0.

図4のフローにおいて、まず、クライアント登録者1001が、本実施例におけるリソースアクセスに必要なOAuth2.0仕様で言うところのクライアントについて、クライアント登録を行う。後述するリソースオーナー1000は、本フローにより事前登録されたクライアントを用いてリソースアクセスを行うことになる。クライアント登録者1001は、Webブラウザー230を用いて認可サーバー500に対してクライアント登録画面を要求する(S4.1)。認可サーバー500は、S4.1の要求に応じて、図5に示すようなクライアント登録画面を返す(S4.2)。   In the flow of FIG. 4, first, the client registrant 1001 performs client registration for the client referred to in the OAuth 2.0 specification necessary for resource access in this embodiment. The resource owner 1000 to be described later performs resource access using a client registered in advance by this flow. The client registrant 1001 requests a client registration screen from the authorization server 500 using the Web browser 230 (S4.1). The authorization server 500 returns a client registration screen as shown in FIG. 5 in response to the request of S4.1 (S4.2).

図5はOAuth2.0仕様におけるクライアントについて登録を行うためのクライアント登録画面である。クライアント登録画面は、認可サーバー500がクライアント登録に必要なパラメーターを表示、選択するクライアント登録パラメーター表示5000と、以下の2つのボタンから成る。即ち、クライアント登録パラメーターを確定して認可サーバー500に登録するためのOKボタン5005と、クライアント登録パラメーター表示5000をキャンセルするキャンセルボタン5006である。   FIG. 5 is a client registration screen for registering a client in the OAuth 2.0 specification. The client registration screen includes a client registration parameter display 5000 for displaying and selecting parameters necessary for client registration by the authorization server 500, and the following two buttons. That is, an OK button 5005 for confirming the client registration parameters and registering them in the authorization server 500, and a cancel button 5006 for canceling the client registration parameter display 5000.

クライアント登録パラメーター表示5000は、クライアント名入力行5007、クライアントID表示行5001、リダイレクトURI選択行5002、5003、5004から成る。クライアントID表示行5001には、クライアント登録画面要求(S4.1)を受けた認可サーバー500が、クライアント登録画面返却時(S4.2)に、UUID形式のランダムかつユニークな値を生成して表示する。例えば、’9237ee87-1d58-4b0d-a7ed-a4042402df52’のような値である。クライアント名入力行5007には、クライアント登録者1001がクライアント登録時に任意のクライアント名を入力する。リダイレクトURI選択行5002、5003、5004は、本クライアント登録の際に有効となる、OAuth2.0仕様で言うところのリダイレクトURIの予め用意された選択肢を表示する。さらに、クライアント登録者1001が複数のリダイレクトURI選択肢の中から一つを選択して認可サーバー500に登録するように、リダイレクトURI選択行5002、5003、5004の各々の行にラジオボタンを表示し、一つを選択可能とする。   The client registration parameter display 5000 includes a client name input line 5007, a client ID display line 5001, and a redirect URI selection line 5002, 5003, 5004. In the client ID display line 5001, the authorization server 500 that has received the client registration screen request (S4.1) generates and displays a random and unique value in UUID format when the client registration screen is returned (S4.2). To do. For example, the value is '9237ee87-1d58-4b0d-a7ed-a4042402df52'. In the client name input line 5007, the client registrant 1001 inputs an arbitrary client name at the time of client registration. The redirect URI selection lines 5002, 5003, and 5004 display the choices prepared in advance for the redirect URI as referred to in the OAuth 2.0 specification, which are valid at the time of this client registration. Furthermore, a radio button is displayed on each of the redirect URI selection lines 5002, 5003, and 5004 so that the client registrant 1001 selects one of a plurality of redirect URI options to register with the authorization server 500. One can be selected.

リダイレクトURIの複数の選択行5002、5003、5004は、非機能要件の異なるリソースサーバー400、401、402にクライアントを誘導するためのリダイレクトURIである。このうち、5002のリダイレクトURIはリソースサーバー400にアクセスするためのURIである。同様に、5003のリダイレクトURIはリソースサーバー401にアクセスするためのリダイレクトURIであり、5004は402にアクセスするためのリダイレクトURIである。これらの関係は、表5に示すクライアント、リソースサーバー管理テーブルにより予め定義されている。   A plurality of redirect URI selection lines 5002, 5003, and 5004 are redirect URIs for guiding the client to the resource servers 400, 401, and 402 having different non-functional requirements. Among these, the redirect URI 5002 is a URI for accessing the resource server 400. Similarly, a redirect URI 5003 is a redirect URI for accessing the resource server 401, and 5004 is a redirect URI for accessing the resource 402. These relationships are defined in advance by the client and resource server management table shown in Table 5.

図4のフローに戻り、クライアント登録者1001は、S4.2にて認可サーバー500から返された図5のクライアント登録画面を参照し、クライアント登録内容を入力する(S4.3)。具体的には、クライアントIDを確認し、リダイレクトURIを図5に示す選択肢(リダイレクトURI5002、5003、5004)の中から一つを、ラジオボタンを選択することにより選択して、OKボタン5006を押下する。クライアント登録者1001がOKボタン5006を押下すると、Webブラウザー230は認可サーバー500に対してクライアント登録処理要求を送信する(S4.4)。   Returning to the flow of FIG. 4, the client registrant 1001 refers to the client registration screen of FIG. 5 returned from the authorization server 500 in S4.2, and inputs the client registration content (S4.3). Specifically, confirm the client ID, select a redirect URI from the options shown in Fig. 5 (redirect URI 5002, 5003, 5004) by selecting a radio button, and press the OK button 5006 To do. When the client registrant 1001 presses the OK button 5006, the Web browser 230 transmits a client registration processing request to the authorization server 500 (S4.4).

認可サーバー500は、クライアント登録処理要求(S4.4)を受信したらクライアント登録処理を行う(S4.5)。具体的には、認可サーバー500のクライアント登録部620により、受信したクライアント登録処理要求(S4.4)からクライアント名とクライアントIDとリダイレクトURIを、認可サーバー500上のクライアント管理テーブル(表2)に登録する。認可サーバー500は、クライアント管理テーブルへのクライアント名、クライアントID、リダイレクトURIの登録が完了したら、登録内容(不図示)をWebブラウザー230に返却して処理を終了する(S4.6)。なお、本実施例ではクライアント登録者による認可サーバーへのクライアント登録処理についてWebブラウザーを用いた処理としているが、認可サーバーへの登録処理は専用登録アプリなどを用いても良い。   Upon receiving the client registration processing request (S4.4), the authorization server 500 performs client registration processing (S4.5). Specifically, the client registration unit 620 of the authorization server 500 stores the client name, client ID, and redirect URI from the received client registration processing request (S4.4) in the client management table (Table 2) on the authorization server 500. sign up. When the registration of the client name, client ID, and redirect URI in the client management table is completed, the authorization server 500 returns the registered content (not shown) to the Web browser 230 and ends the process (S4.6). In this embodiment, the client registration process to the authorization server by the client registrant is a process using a Web browser, but the registration process to the authorization server may use a dedicated registration application.

ここで、図6を用いて、クライアントPC200上のブラウザーアプリケーションを用いてリソースサービスを利用するための、本実施例に係る認可フローを表すシーケンスについて説明する。OAuth2.0の仕様では、多様なクライアントに応じた複数のプロトコルシーケンスをgrant typeと呼ぶ。図6の認可フローは、OAuth2.0仕様のimplicit grantに本実施例独自の拡張を加えたgrant typeである。   Here, a sequence representing an authorization flow according to the present embodiment for using a resource service using a browser application on the client PC 200 will be described with reference to FIG. In the OAuth 2.0 specification, multiple protocol sequences corresponding to various clients are called grant types. The authorization flow in FIG. 6 is a grant type obtained by adding an extension unique to this embodiment to the implicit grant of the OAuth 2.0 specification.

図6のフローにおいて、まず、保護されたリソースへのアクセスが必要になるユーザーからの認可連携サービス開始要求が発生する(S6.1)。本サービス要求は、リソースオーナー1000であるユーザーがリソースサーバー400に対し、リソースオーナー1000が操作するユーザーエージェントたるクライアントPC200上のブラウザーアプリケーションを介してHTTPプロトコルを用いて行う。具体的には、リソースオーナー1000たるユーザーはクライアントPC200を操作してリソースサーバー400のアプリケーション画面(不図示)にアクセスする(S6.1)。このアプリケーション画面は例えば、リソースサーバー400のリソース連携アプリケーションが印刷アプリケーションの場合は印刷する文書を選択する画面であり、帳票アプリケーションの場合は、作成する帳票を選択する画面である。ここでアプリケーション画面にアクセスするとは、例えば、クライアントPC200上のブラウザー上にアプリケーション画面が選択可能に表示されており、当該アプリケーションを選択する事を指す。当該アプリケーションを選択することにより、リソースオーナー1000はリソースサーバー400に対して認可連携サービス開始要求を送信する(S6.1)。   In the flow of FIG. 6, first, an authorization cooperation service start request is generated from a user who needs access to a protected resource (S6.1). This service request is made by the user who is the resource owner 1000 to the resource server 400 using the HTTP protocol via the browser application on the client PC 200 which is a user agent operated by the resource owner 1000. Specifically, the user who is the resource owner 1000 operates the client PC 200 to access an application screen (not shown) of the resource server 400 (S6.1). This application screen is, for example, a screen for selecting a document to be printed when the resource cooperation application of the resource server 400 is a print application, and a screen for selecting a form to be created when the resource application is a form application. Here, accessing the application screen means, for example, that the application screen is displayed in a selectable manner on the browser on the client PC 200 and that the application is selected. By selecting the application, the resource owner 1000 transmits an authorization cooperation service start request to the resource server 400 (S6.1).

なお本実施例においてはリソース連携アプリケーションをリソースサーバー400上としている。しかし一般に、リソース連携アプリケーションはリソースサーバー400とは別の、クライアントアプリケーションサーバーなどに存在しても良い。本実施例ではリソースサービス連携アプリケーションとして、印刷Webアプリケーション、帳票Webアプリケーションといったリソースサービスと連携するクライアントアプリケーションが設置されている。なお1台のリソースサーバーに設置されるリソースサービス連携アプリケーションは1つでもよく、複数でもよい。   In this embodiment, the resource cooperation application is on the resource server 400. However, in general, the resource cooperation application may exist in a client application server or the like other than the resource server 400. In this embodiment, a client application that cooperates with a resource service such as a print Web application and a form Web application is installed as a resource service cooperation application. Note that one or more resource service cooperation applications may be installed in one resource server.

リソースサーバー400は、認可連携サービス開始要求(S6.1)により認可連携の開始を受け付けたら、次のように処理する。即ち、リソースサーバー400の持つ認可サーバー500の認証エンドポイントのURLに対して、Cookieとしてリソースサーバー400で算出した乱数に基づき16進数値文字列で表されるnonce値をセットする(S6.2)。このnonce値はUUID(Universally Unique Identifier)で表現され、例えば、以下のような値である。
nonce=7172f4bd-b332-4cfe-85cf-e4a73fe6ff98
When the resource server 400 accepts the start of authorization cooperation by the authorization cooperation service start request (S6.1), the resource server 400 processes as follows. That is, a nonce value represented by a hexadecimal character string is set based on the random number calculated by the resource server 400 as a cookie for the URL of the authentication endpoint of the authorization server 500 possessed by the resource server 400 (S6.2). . This nonce value is represented by a UUID (Universally Unique Identifier), and is, for example, the following value.
nonce = 7172f4bd-b332-4cfe-85cf-e4a73fe6ff98

そしてリソースサーバー400は、OAuthの認可リクエストをするように、クライアントPC200のWebブラウザー230にHTTP/1.1 ステータスコード302のリダイレクトを要求する(S6.3)。本リダイレクト要求のHTTP Locationヘッダーにはリソースサーバー400のID、認証フローのタイプ、認可サーバー500の認証エンドポイントのURLが含まれ、以下のようなリダイレクト要求となる。   Then, the resource server 400 requests the Web browser 230 of the client PC 200 to redirect the HTTP / 1.1 status code 302 so as to make an OAuth authorization request (S6.3). The HTTP Location header of this redirect request includes the ID of the resource server 400, the type of authentication flow, and the URL of the authentication endpoint of the authorization server 500, resulting in the following redirect request.

https://auth.a01.example.com/authorize?response_type=token&client_id=ztr1JhRGa5
&state=xyz&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
&scope=scopeA
HTTPメソッド: GET
Content-Type: application/x-www-form-urlencoded
https://auth.a01.example.com/authorize?response_type=token&client_id=ztr1JhRGa5
& state = xyz & redirect_uri = https% 3A% 2F% 2Fclient% 2Eexample% 2Ecom% 2Fcb
& scope = scopeA
HTTP method: GET
Content-Type: application / x-www-form-urlencoded

リクエストパラメーターには、response_typeとして、”token”固定文字列を指定する。また、client_idとして、予めクライアントアプリケーションとして認可サーバー500に登録したリソースサーバー400上のクライアントアプリケーションのアプリケーションIDを指定する。さらに、redirect_uriとして予めクライアントアプリケーションとして認可サーバー500に登録したWeb-Hostedクライアント300のURL(宛先情報)を指定する。また、OAuthでは、認可を受けたい権限範囲を示すスコープを認可リクエストに含むように構成する事もできる。本実施例ではスコープとしてスコープAがリクエストされたとして説明する。   In the request parameter, specify “token” fixed character string as response_type. As client_id, the application ID of the client application on the resource server 400 registered in advance in the authorization server 500 as a client application is designated. Furthermore, the URL (destination information) of the Web-Hosted client 300 registered in advance in the authorization server 500 as a client application is specified as redirect_uri. OAuth can also be configured so that the authorization request includes a scope indicating the scope of authority to be authorized. In the present embodiment, description will be made assuming that scope A is requested as the scope.

リダイレクト要求を受信したクライアントPC200は、要求に従い認可サーバー500に対してユーザー認証、認可の要求を行う(S6.5)。認可リクエストを受け付けた認可サーバー500は、ユーザーを認証するために、図8(a)に示すログイン画面2000をクライアントPC200上のWebブラウザー230に応答する(S6.6)。リソースオーナー1000であるユーザーはWebブラウザー230に示されたログイン画面2000に対して、ユーザーID(2001)とパスワード(2002)を入力し、ログイン(2003)を実行する(S6.7)。認可サーバー500は受け付けたユーザーID、パスワードの組が表1のユーザー管理テーブルに登録されている情報と合っているかを検証する(S6.8)。   The client PC 200 that has received the redirect request makes a user authentication / authorization request to the authorization server 500 in accordance with the request (S6.5). Upon receiving the authorization request, the authorization server 500 responds to the web browser 230 on the client PC 200 with a login screen 2000 shown in FIG. 8A in order to authenticate the user (S6.6). The user who is the resource owner 1000 inputs the user ID (2001) and the password (2002) on the login screen 2000 displayed on the Web browser 230, and executes login (2003) (S6.7). The authorization server 500 verifies whether the received user ID / password combination matches the information registered in the user management table of Table 1 (S6.8).

ここで図7(a)、(b)のフローチャートを用いて、ユーザー認証画面表示(S6.6)、ユーザー認証(S6.7)、リダイレクトURIとCookieのドメインパラメーター比較(S6.8)について説明する。また、本実施例の特徴である、認可確認画面表示(S6.9)、認可確認(S6.10)について、およびアクセストークン応答(S6.11)について説明する。   Here, the user authentication screen display (S6.6), user authentication (S6.7), redirect URI and cookie domain parameter comparison (S6.8) will be described using the flowcharts of FIGS. 7 (a) and 7 (b). To do. Also, the authorization confirmation screen display (S6.9), authorization confirmation (S6.10), and access token response (S6.11), which are the features of this embodiment, will be described.

図7(a)は、認可サーバー500がユーザー認証、認可の要求を受け付けた際の、認可サーバー500上の認可サーバーモジュール510の処理フローチャートである。本フローは認可サーバーモジュール510がクライアントPC200からリダイレクト要求を受信することで始まる(S7.1)。認可サーバー500は、クライアントPC200から受信したリダイレクト要求に含まれるCookieからnonce値を取得する(S7.2)。   FIG. 7A is a processing flowchart of the authorization server module 510 on the authorization server 500 when the authorization server 500 accepts a user authentication / authorization request. This flow starts when the authorization server module 510 receives a redirect request from the client PC 200 (S7.1). The authorization server 500 acquires a nonce value from the cookie included in the redirect request received from the client PC 200 (S7.2).

認可サーバーモジュール510は、ユーザーを認証するために図8(a)に示すログイン画面2000をクライアントPC200上のWebブラウザー230に応答する。リソースオーナー1000であるユーザーはWebブラウザー230に示されたログイン画面2000に対して、ユーザーID、パスワードを入力しログインを実行する(S6.7)。認可サーバー500は受け付けたユーザーID、パスワードの組が表1のユーザー管理テーブルに登録されている情報と合っているかを検証する(S7.3)。   The authorization server module 510 responds to the web browser 230 on the client PC 200 with a login screen 2000 shown in FIG. The user who is the resource owner 1000 inputs the user ID and password on the login screen 2000 displayed on the web browser 230 and executes login (S6.7). The authorization server 500 verifies whether the received user ID / password combination matches the information registered in the user management table of Table 1 (S7.3).

検証の結果、ユーザーID、パスワードの組が表1のユーザー管理テーブルに登録されていなければ(S7.4)、クライアントPC200にユーザー認証エラー画面(図示せず)を通知して処理を終了する(S7.10)。もし検証の結果、ユーザーID、パスワードの組がユーザー管理テーブルに登録されていれば(S7.4)、認可確認処理(S7.5)を行う。   If the combination of the user ID and password is not registered in the user management table of Table 1 as a result of the verification (S7.4), a user authentication error screen (not shown) is notified to the client PC 200 and the process is terminated ( S7.10). If, as a result of the verification, a combination of user ID and password is registered in the user management table (S7.4), an authorization confirmation process (S7.5) is performed.

図7(b)は図7(a)の認可確認処理(S7.5)の詳細を示すフローチャートである。まず、認可サーバーモジュール510は、S7.1にて受信したクライアントPC200からのリダイレクト要求のリクエストパラメーターを確認する(S7.11)。またリクエストに含まれるCookieのnonce値パラメーター、例えばnonce=7172f4bd-b332-4cfe-85cf-e4a73fe6ff98を取得する(S7.12)。   FIG. 7B is a flowchart showing details of the authorization confirmation process (S7.5) of FIG. First, the authorization server module 510 checks the request parameter of the redirect request from the client PC 200 received in S7.1 (S7.11). Further, the nonce value parameter of the Cookie included in the request, for example, nonce = 7172f4bd-b332-4cfe-85cf-e4a73fe6ff98 is acquired (S7.12).

次に、認可サーバーモジュール510は、表2のクライアント管理テーブルを参照し、リダイレクト要求のリクエストパラメーターのclient_id、redirect_uriの値がクライアント管理テーブルに含まれるかどうかを確認する(S7.13)。この値がクライアント管理テーブルに含まれなければ、認可サーバーモジュール510は図8(c)に示す認可確認失敗を返却して処理を終了する(S7.17)。一方、リクエストパラメーターのclient_id、redirect_uriの値がクライアント管理テーブルに含まれていれば、サーバーモジュール510はクライアントPC200に図8(b)に示す認可確認画面を返却する(S7.14)。   Next, the authorization server module 510 refers to the client management table of Table 2 and checks whether the client management table includes the values of the request parameters client_id and redirect_uri of the redirect request (S7.13). If this value is not included in the client management table, the authorization server module 510 returns an authorization confirmation failure shown in FIG. 8C and ends the processing (S7.17). On the other hand, if the values of the request parameters client_id and redirect_uri are included in the client management table, the server module 510 returns the authorization confirmation screen shown in FIG. 8B to the client PC 200 (S7.14).

ここで認可サーバーモジュール510は、クライアントPC200からの応答を待ち、認可確認に失敗したならば(S7.15)、認可確認失敗を返却して処理を終了する(S7.17)。一方、認可確認に成功したならば(S7.15)、認可確認成功を返却して処理を終了する(S7.16)。   Here, the authorization server module 510 waits for a response from the client PC 200, and if authorization confirmation fails (S7.15), returns authorization confirmation failure and ends the process (S7.17). On the other hand, if the authorization confirmation is successful (S7.15), the authorization confirmation success is returned and the process is terminated (S7.16).

図7(a)のフローに戻る。図7(b)の認可確認処理(S7.5)の後、認可確認が失敗したならば(S7.6)、認可サーバーモジュール510は、クライアントPC200にユーザー認証エラー画面(図示せず)を通知して処理を終了する(S7.10)。一方、認可確認処理が成功したならば(S7.6)、認可サーバーモジュール510は、リソースサーバー400へのアクセスを可能にするアクセストークンを生成するアクセストークン発行処理(S7.7)を行う。   Returning to the flow of FIG. After the authorization confirmation process (S7.5) in FIG. 7B, if authorization confirmation fails (S7.6), the authorization server module 510 notifies the client PC 200 of a user authentication error screen (not shown). Then, the process ends (S7.10). On the other hand, if the authorization confirmation process is successful (S7.6), the authorization server module 510 performs an access token issuing process (S7.7) for generating an access token that enables access to the resource server 400.

アクセストークン発行処理(S7.7)で生成したアクセストークンは、表3のトークン管理テーブルに登録する。すなわち、アクセストークン文字列「AT_000001」をトークンID欄に、認可サーバーで予め定められたアクセストークンの有効期限を有効期限欄に格納する。またトークンテーブルに登録済みの認証トークンのレコードに含まれるスコープ情報をスコープ欄に、ユーザーIDをユーザーID欄に格納する。   The access token generated in the access token issuing process (S7.7) is registered in the token management table in Table 3. That is, the access token character string “AT_000001” is stored in the token ID column, and the expiration date of the access token predetermined by the authorization server is stored in the expiration date column. The scope information included in the record of the authentication token registered in the token table is stored in the scope column, and the user ID is stored in the user ID column.

さらに認可サーバーモジュール510は、アクセストークン発行部540を用いて、表4の nonce値管理テーブルに、取得したnonce値、発行したアクセストークンのアクセストークン文字列、トークン有効期限を紐付けて保存する(S7.8)。この場合、nonce値はnonce=7172f4bd-b332-4cfe-85cf-e4a73fe6ff98、アクセストークン文字列は「AT_000001」である。保存処理が終了したら、認可サーバーモジュール510はアクセストークン発行部540を用い、アクセストークン応答(S6.11)としてクライアントにアクセストークンを送信する(S7.9)。   Further, using the access token issuing unit 540, the authorization server module 510 associates and stores the acquired nonce value, the access token character string of the issued access token, and the token expiration date in the nonce value management table of Table 4 ( S7.8). In this case, the nonce value is nonce = 7172f4bd-b332-4cfe-85cf-e4a73fe6ff98, and the access token character string is “AT_000001”. When the saving process is completed, the authorization server module 510 uses the access token issuing unit 540 to transmit an access token to the client as an access token response (S6.11) (S7.9).

ここで図6のフローに戻る。認可サーバーモジュール510がクライアントPC200に送信するアクセストークンの応答(S6.11)は、以下のようにOAuth2.0仕様に従う。すなわちapplication/x-www-form-urlencoded フォーマットを用いてリダイレクトURIのフラグメントコンポーネントに、例えば以下のようなパラメーターを付与してクライアントPC200に応答を送信する。なお、下記のようにアクセストークン応答に付与されるパラメーターは、OAuth2.0仕様によると、access_token、token_type、expires_in、scope、stateである。   Returning to the flow of FIG. The response of the access token (S6.11) sent from the authorization server module 510 to the client PC 200 follows the OAuth 2.0 specification as follows. That is, using the application / x-www-form-urlencoded format, for example, the following parameters are assigned to the fragment component of the redirect URI and a response is transmitted to the client PC 200. According to the OAuth 2.0 specification, the parameters given to the access token response are access_token, token_type, expires_in, scope, and state as described below.

HTTP/1.1 302 Found
Location: http://client.example.com/cb#access_token=AT_000001&state=xyz
&token_type=example&expires_in=3600
HTTP / 1.1 302 Found
Location: http://client.example.com/cb#access_token=AT_000001&state=xyz
& token_type = example & expires_in = 3600

上述したように、本実施例のようなImplicit grant認可フローのアクセストークン応答(S6.11)は、クライアントPC200のWebブラウザー230にアクセストークンを取得させる。そのため、アクセストークンをWeb-Hostedクライアント300に向けて一旦リダイレクトするようになる。アクセストークン応答を受信したクライアントPC200上のWebブラウザー230は、Web-Hostedクライアント300にアクセストークン応答をリダイレクトする(S6.12)。ここで、S6.12のリダイレクトは、HTTPの仕様によりフラグメントコンポーネントのパラメーターを含まない。   As described above, the access token response (S6.11) of the Implicit grant authorization flow as in the present embodiment causes the Web browser 230 of the client PC 200 to acquire the access token. Therefore, the access token is temporarily redirected to the Web-Hosted client 300. The web browser 230 on the client PC 200 that has received the access token response redirects the access token response to the Web-Hosted client 300 (S6.12). Here, the redirect of S6.12 does not include the fragment component parameters according to the HTTP specifications.

リダイレクトを受信したWeb-Hostedクライアント300のWeb-Hostedクライアントモジュール310は、認可サーバー500に対してnonce値検証要求を行う(S6.13)。nonce値検証要求を受けた認可サーバー500はリダイレクトURIとnonce値の比較を行ってnonce値の検証を行う(S6.14)。そして上記検証結果の応答をWeb-Hostedクライアント300に返す(S6.15)。ここで検証に成功した場合、Web-Hostedクライアント300はアクセストークン取得スクリプト応答をWebブラウザー230に返す(S6.16)。   The Web-Hosted client module 310 of the Web-Hosted client 300 that has received the redirect makes a nonce value verification request to the authorization server 500 (S6.13). Upon receiving the nonce value verification request, the authorization server 500 compares the redirect URI with the nonce value to verify the nonce value (S6.14). Then, the response of the verification result is returned to the Web-Hosted client 300 (S6.15). If the verification is successful, the Web-Hosted client 300 returns an access token acquisition script response to the Web browser 230 (S6.16).

以下、図9、10を用いて、上記Web-Hostedクライアント処理について説明する。図9は、Web-Hostedクライアント処理を示すフローチャートである。本フローチャートは、Web-Hostedクライアント300のWeb-Hostedクライアントモジュール310が、クライアントPC200上のWebブラウザー230から、アクセストークンリダイレクト応答を受信する(S9.1)ことから始まる。Web-Hostedクライアントモジュール310は、リダイレクト応答のCookieに含まれるnonce値を取得する(S9.2)。   Hereinafter, the Web-Hosted client process will be described with reference to FIGS. FIG. 9 is a flowchart showing Web-Hosted client processing. This flowchart starts when the Web-Hosted client module 310 of the Web-Hosted client 300 receives an access token redirect response from the Web browser 230 on the client PC 200 (S9.1). The Web-Hosted client module 310 acquires the nonce value included in the redirect response cookie (S9.2).

次にWeb-Hostedクライアントモジュール310は、nonce値確認部330を用いて、取得したnonce値とWeb-Hostedクライアント自身のURIを引数にして、認可サーバー500にnonce値検証処理を要求する(S9.3)。nonce値検証処理(S9.3)の認可サーバー500側の処理については、後述する図10のフローチャートを用いて説明する。nonce値検証処理に成功したならば(S9.4)、Web-Hostedクライアントモジュール310は、クライアントPC200上のWebブラウザー230上で実行可能な、アクセストークンを取得するためのスクリプトを生成する(S9.5)。そして、上記スクリプトを含む応答を返す(S9.6)。一方、nonce値検証処理に失敗したならば(S9.4)、Web-Hostedクライアントモジュール310は、アクセストークンリダイレクト応答に対して認可エラーを示す画面(不図示)を返す。   Next, the Web-Hosted client module 310 uses the nonce value confirmation unit 330 to request the nonce value verification processing from the authorization server 500 using the acquired nonce value and the URI of the Web-Hosted client itself as arguments (S9. 3). The processing on the authorization server 500 side of the nonce value verification processing (S9.3) will be described with reference to the flowchart of FIG. If the nonce value verification processing is successful (S9.4), the Web-Hosted client module 310 generates a script for acquiring an access token that can be executed on the Web browser 230 on the client PC 200 (S9. Five). Then, a response including the script is returned (S9.6). On the other hand, if the nonce value verification process fails (S9.4), the Web-Hosted client module 310 returns a screen (not shown) indicating an authorization error to the access token redirect response.

図10は図9のnonce値検証処理(S9.3)に対応した認可サーバー500におけるnonce値検証処理のフローチャートである。本フローチャートは認可サーバー500の認可サーバーモジュール510により、nonce値検証部630を用いて実行される。   FIG. 10 is a flowchart of nonce value verification processing in the authorization server 500 corresponding to the nonce value verification processing (S9.3) of FIG. This flowchart is executed by the authorization server module 510 of the authorization server 500 using the nonce value verification unit 630.

まず、上述の引数として渡されたWeb-HostedクライアントのURIとnonce値を取得する(S10.1)。認可サーバーモジュール510は、表2のクライアント管理テーブルを参照して、取得したnonce値がクライアント管理テーブルのnonce値に存在するかどうかを確認する(S10.2)。nonce値が存在しなければ、認可サーバーモジュール510は、本処理の呼び出し元のWeb-Hostedクライアント300に対して失敗を返して処理を終了する(S10.5)。   First, the URI and nonce value of the Web-Hosted client passed as the above argument are acquired (S10.1). The authorization server module 510 refers to the client management table in Table 2 to check whether the acquired nonce value exists in the nonce value of the client management table (S10.2). If the nonce value does not exist, the authorization server module 510 returns a failure to the calling Web-Hosted client 300 of this process and ends the process (S10.5).

一方、S10.2でnonce値が存在するならば、認可サーバーモジュール510はクライアント管理テーブルの、マッチしたnonce値に対応するリダイレクトURIを参照する。そして上記リダイレクトURIが、取得したWeb-HostedクライアントのURIにマッチするかどうか確認する(S10.3)。Web-HostedクライアントのURIにマッチしなければ、認可サーバーモジュール510は、本処理の呼び出し元のWeb-Hostedクライアント300に失敗を返し(S10.5)、処理を終了する。一方、Web-HostedクライアントのURIにマッチするならば、認可サーバーモジュール510は、呼び出し元のWeb-Hostedクライアント300に成功を返し(S10.4)、処理を終了する。   On the other hand, if a nonce value exists in S10.2, the authorization server module 510 refers to the redirect URI corresponding to the matched nonce value in the client management table. Then, it is confirmed whether the redirect URI matches the acquired Web-Hosted client URI (S10.3). If it does not match the URI of the Web-Hosted client, the authorization server module 510 returns a failure to the Web-Hosted client 300 that is the call source of this processing (S10.5), and ends the processing. On the other hand, if it matches the URI of the Web-Hosted client, the authorization server module 510 returns success to the calling Web-Hosted client 300 (S10.4) and ends the processing.

ここで図6のフローに戻る。以上のように、Web-Hostedクライアント300は、図9、10によるWeb-Hostedクライアント処理を行い、nonce値検証に成功すると、アクセストークン取得スクリプト応答(S6.16)をクライアントPC200に返す。このようにして、Web-Hostedクライアント300、301、302が、正常なリダイレクトURIリクエスト(S6.12)以外の不正なリクエストを、nonce値を検証することで防止している。   Returning to the flow of FIG. As described above, the Web-Hosted client 300 performs the Web-Hosted client processing shown in FIGS. 9 and 10, and when the nonce value verification is successful, returns an access token acquisition script response (S6.16) to the client PC 200. In this way, the Web-Hosted clients 300, 301, and 302 prevent unauthorized requests other than the normal redirect URI request (S6.12) by verifying the nonce value.

上述のアクセストークン取得スクリプト応答(S6.16)に含まれるスクリプトは、一般にはWebブラウザー230で実行可能なJavascript(登録商標)であるが、その他ブラウザー上で実行可能なスクリプトであっても良い。アクセストークン取得スクリプトを受信したWebブラウザー230上で動作するクライアントスクリプト320は、当該スクリプトを実行することによりアクセストークンを取得する(S6.17)。これにより、リソースサーバー400にアクセスすることができる(S6.18)。   The script included in the above-described access token acquisition script response (S6.16) is generally Javascript (registered trademark) that can be executed by the web browser 230, but may be a script that can be executed by another browser. The client script 320 operating on the Web browser 230 that has received the access token acquisition script acquires the access token by executing the script (S6.17). Thereby, the resource server 400 can be accessed (S6.18).

図11は、アクセストークンを取得しリソースサーバーにアクセスするためのスクリプトのフローチャートである。Web-Hostedクライアントからスクリプトを受信したクライアントPC200上のWebブラウザー230が本処理を実行する。まずWebブラウザー230は、アクセストークン応答(S6.11)のリダイレクト先であるURIに紐付くquery string をパースし、フラグメントの値を取得する(S11.1)。本実施例のJavascript(登録商標)においては、例えばlocation.hash関数を用いて、Web-Hostedクライアント300にリダイレクトされたアクセストークン応答のフラグメントコンポーネントの値を取得する。さらに、取得したフラグメントコンポーネントに含まれるアクセストークンaccess_token=AT_000001を取得する(S11.2)。そして、本スクリプトの実行によりWebブラウザー230は、取得したアクセストークンを用いてリソースサーバー400にアクセスする(S11.3)。   FIG. 11 is a flowchart of a script for obtaining an access token and accessing a resource server. The Web browser 230 on the client PC 200 that has received the script from the Web-Hosted client executes this processing. First, the Web browser 230 parses the query string associated with the URI that is the redirect destination of the access token response (S6.11), and acquires the fragment value (S11.1). In the Javascript (registered trademark) of the present embodiment, the value of the fragment component of the access token response redirected to the Web-Hosted client 300 is acquired using, for example, the location.hash function. Further, an access token access_token = AT_000001 included in the acquired fragment component is acquired (S11.2). Then, by executing this script, the Web browser 230 accesses the resource server 400 using the acquired access token (S11.3).

図11の処理により、Webブラウザー230上で動作するスクリプトは、S6.16、S6.17においてアクセストークン「AT_000001」、スコープ「リソースA」を受け取る。そして、リソースサーバー400に対してアクセストークン「AT_000001」、スコープ「リソースA」をリクエストパラメーターに含めてリソースアクセス要求を行う(S6.18)。また本リソースアクセス要求の際、先にWeb-Hostedクライアント300へのリダイレクトURIリクエスト(S6.12)のCookieに含まれたnonce値を、同様に本リソースアクセス要求に含まれるようにする。リソースアクセス要求を受信したリソースサーバー400は、認可サーバー500に対してnonce値検証要求を行ない(S6.19)、その応答を受信する(S6.21)。   With the processing in FIG. 11, the script operating on the Web browser 230 receives the access token “AT_000001” and the scope “resource A” in S6.16 and S6.17. Then, a resource access request is made by including the access token “AT_000001” and the scope “resource A” in the request parameters to the resource server 400 (S6.18). Further, when making this resource access request, the nonce value included in the cookie of the redirect URI request (S6.12) to the Web-Hosted client 300 is also included in this resource access request. The resource server 400 that has received the resource access request makes a nonce value verification request to the authorization server 500 (S6.19), and receives the response (S6.21).

図12は、リソースサーバー400のnonce値検証処理(S6.20)に対応した認可サーバー500におけるnonce値検証処理のフローチャートである。本処理は認可サーバー500の認可サーバーモジュール510により、nonce値検証部630を用いて実行される。まず、認可サーバーモジュール510は、前述の引数として渡されたリソースサーバーのURIとnonce値を取得する(S12.1)。認可サーバーモジュール510は、表2のクライアント管理テーブルを参照し、取得したnonce値がクライアント管理テーブルのnonce値に存在するかどうかを確認する(S12.2)。nonce値が存在しなければ、認可サーバーモジュール510は、本処理の呼び出し元のWeb-Hostedクライアント300に対して失敗を返して(S12.5)、処理を終了する。一方、nonce値が存在するならば、S12.3の処理に進む。   FIG. 12 is a flowchart of nonce value verification processing in the authorization server 500 corresponding to the nonce value verification processing (S6.20) of the resource server 400. This process is executed by the authorization server module 510 of the authorization server 500 using the nonce value verification unit 630. First, the authorization server module 510 acquires the URI and nonce value of the resource server passed as the argument (S12.1). The authorization server module 510 refers to the client management table in Table 2 and checks whether the acquired nonce value exists in the nonce value of the client management table (S12.2). If the nonce value does not exist, the authorization server module 510 returns a failure to the calling Web-Hosted client 300 of this process (S12.5) and ends the process. On the other hand, if the nonce value exists, the process proceeds to S12.3.

S12.3において、認可サーバーモジュール510はクライアント管理テーブルの、マッチしたnonce値に対応するリダイレクトURIを参照し、さらに表5のクライアント、リソースサーバー管理テーブルを参照する。その結果により、リダイレクトURIに対応するリソースサーバーURIが取得したリソースサーバー400のURIにマッチするかどうかを確認する(S12.3)。リソースサーバーのURIにマッチしなければ、認可サーバーモジュール510は、本処理の呼び出し元のWeb-Hostedクライアント300に対して失敗を返し(S12.5)、処理を終了する。一方、Web-HostedクライアントのURIにマッチするならば、認可サーバーモジュール510は呼び出し元のリソースサーバー400に対して成功を返し(S12.4)、処理を終了する。   In S12.3, the authorization server module 510 refers to the redirect URI corresponding to the matched nonce value in the client management table, and further refers to the client and resource server management table in Table 5. Based on the result, it is confirmed whether or not the resource server URI corresponding to the redirect URI matches the acquired URI of the resource server 400 (S12.3). If the URI does not match the URI of the resource server, the authorization server module 510 returns a failure to the calling Web-Hosted client 300 of this processing (S12.5) and ends the processing. On the other hand, if it matches the URI of the Web-Hosted client, the authorization server module 510 returns success to the caller resource server 400 (S12.4) and ends the process.

ここで図6のフローに戻る。アクセストークン情報「AT_000001」、スコープ「リソースA」を取得したリソースサーバー400は、取得した情報を元に要求を受け付けたリソースに対するアクセスを許可するか拒否するかを判断する。ここでは、リソースサーバー400に予めアクセス可能なアプリケーションIDが設定されているものとする。そして、その設定されているアプリケーションIDと、アクセストークン情報「AT_000001」から取得されたアプリケーションIDを比較することでアクセスを許可するかを検証する。この検証は、リソースサーバー400が認可サーバー500に対し、アクセストークン「AT_000001」、スコープ「リソースA」を引数にしてトークン情報を取得することで行われる(S6.22)。   Returning to the flow of FIG. The resource server 400 that acquired the access token information “AT_000001” and the scope “resource A” determines whether to permit or deny access to the resource for which the request has been received based on the acquired information. Here, it is assumed that an application ID accessible to the resource server 400 is set in advance. Then, whether the access is permitted is verified by comparing the set application ID with the application ID acquired from the access token information “AT_000001”. This verification is performed by the resource server 400 acquiring token information from the authorization server 500 using the access token “AT_000001” and the scope “resource A” as arguments (S6.22).

認可サーバー500は、表3のトークン管理テーブルを参照し、取得したアクセストークン「AT_00001」の有効期間が切れていないこと、要求されているスコープ「リソースA」がスコープ範囲内であることを検証する。検証の結果、問題がなければ検証の成功を返す(S6.23)。この結果、アクセス許可と判断された場合は、リソースサーバー400は、Webブラウザー230に対して、リソースを応答する(S6.24)。ここで、リソースは例えば、リソースサーバー400が印刷サービスであった場合は印刷可能な文書のリストであり、帳票サービスであった場合は、作成可能な帳票のリストである。   The authorization server 500 refers to the token management table in Table 3 and verifies that the acquired access token “AT_00001” has not expired and that the requested scope “resource A” is within the scope. . If there is no problem as a result of the verification, the verification success is returned (S6.23). As a result, when it is determined that access is permitted, the resource server 400 responds to the web browser 230 with a resource (S6.24). Here, the resource is, for example, a list of documents that can be printed when the resource server 400 is a print service, and a list of forms that can be created when the resource server 400 is a form service.

なお、上述の実施例では、S6.22からS6.23までの処理を、トークンの検証を認可サーバー500、リソースサーバー400それぞれで行なうよう説明した。しかし、リソースに対するアクセス可能なアプリケーションを認可サーバー500で管理し、全ての検証を認可サーバー500で行うよう構成する事も可能である。また、本実施例ではアクセス可能なアプリケーションの判断をアプリケーションIDを用いて実施するよう説明した。しかし、トークン情報から取得できるシリアル番号やクライアントIDを元にクライアントPC200上のWebブラウザー230を識別し、アクセスの可否を判断するよう構成する事もできる。また、同様に、トークン情報から取得できるスコープやユーザーIDを元にアクセスの可否を判断するよう構成する事もできる。   In the above-described embodiment, the processing from S6.22 to S6.23 has been described so that the token verification is performed by the authorization server 500 and the resource server 400, respectively. However, it is also possible to configure such that an application that can access resources is managed by the authorization server 500 and all verification is performed by the authorization server 500. Further, in the present embodiment, it has been described that an accessible application is determined using an application ID. However, the Web browser 230 on the client PC 200 can be identified based on the serial number or client ID that can be acquired from the token information, and the access can be determined. Similarly, it can be configured to determine whether or not access is possible based on a scope or user ID that can be acquired from token information.

リソース応答(S6.24)を受け付けたクライアントPC200上のWebブラウザー230は、受信したデータを元に前述のアプリケーション画面を構成し、リソースオーナー1000たるユーザーに応答する。   The web browser 230 on the client PC 200 that has received the resource response (S6.24) configures the aforementioned application screen based on the received data, and responds to the user who is the resource owner 1000.

<実施例2> (複数リダイレクトURIによるリソースサーバー非機能要件選択)
実施例1に示した方法では、非機能要件の異なるリソースサーバーを選択可能にするために必要なクライアント登録処理において、クライアント登録時に選択できるリダイレクトURIは一つであった。実施例2においては、クライアント登録時にクライアントIDに対して複数のリダイレクトURIを選択可能な方法を具体的に示す。
<Example 2> (Resource server non-functional requirement selection by multiple redirect URIs)
In the method shown in the first embodiment, there is only one redirect URI that can be selected at the time of client registration in the client registration process necessary for enabling selection of resource servers having different non-functional requirements. In the second embodiment, a method capable of selecting a plurality of redirect URIs for a client ID at the time of client registration will be specifically described.

ここで、非機能要件の異なるリソースサーバーを選択可能にするために必要なクライアント登録処理を行うための、本実施例に係るクライアント登録フローを表すシーケンスについて図4、13を用いて説明する。図4のクライアント登録フローは、OAuth2.0で一般的なOAuth2.0仕様におけるクライアント登録に関して、本実施例独自の拡張を加えたフローである。実施例2においても、図4に示すクライアント登録フロー自体は実施例1と同様である。   Here, a sequence representing a client registration flow according to the present embodiment for performing a client registration process necessary for enabling selection of resource servers having different non-functional requirements will be described with reference to FIGS. The client registration flow in FIG. 4 is a flow in which the extension unique to the present embodiment is added to the client registration in the OAuth 2.0 specification generally used in OAuth 2.0. Also in the second embodiment, the client registration flow itself shown in FIG. 4 is the same as that of the first embodiment.

図4のフローにおいて、まず、クライアント登録者1001が、本実施例におけるリソースアクセスに必要なOAuth2.0仕様で言うところのクライアントについて、クライアント登録を行う。後述するリソースオーナー1000は、本フローにより事前登録されたクライアントを用いてリソースアクセスを行うことになる。クライアント登録者1001は、Webブラウザー230を用いて認可サーバー500に対してクライアント登録画面を要求する(S4.1)。認可サーバー500は、S4.1の要求に応じて図13に示すようなクライアント登録画面を返す(S4.2)。   In the flow of FIG. 4, first, the client registrant 1001 performs client registration for the client referred to in the OAuth 2.0 specification necessary for resource access in this embodiment. The resource owner 1000 to be described later performs resource access using a client registered in advance by this flow. The client registrant 1001 requests a client registration screen from the authorization server 500 using the Web browser 230 (S4.1). The authorization server 500 returns a client registration screen as shown in FIG. 13 in response to the request of S4.1 (S4.2).

図13はOAuth2.0仕様におけるクライアントについて登録を行うためのクライアント登録画面である。クライアント登録画面は、認可サーバー500がクライアント登録に必要なパラメーターを表示、選択するクライアント登録パラメーター表示13000と、以下の2つのボタンから成る。即ち、クライアント登録パラメーターを確定して認可サーバー500に登録するためのOKボタン13005と、クライアント登録パラメーター表示13000をキャンセルするキャンセルボタン13006である。   FIG. 13 is a client registration screen for registering a client in the OAuth 2.0 specification. The client registration screen includes a client registration parameter display 13000 for displaying and selecting parameters necessary for client registration by the authorization server 500, and the following two buttons. That is, an OK button 13005 for confirming the client registration parameter and registering it in the authorization server 500, and a cancel button 13006 for canceling the client registration parameter display 13000.

クライアント登録パラメーター表示13000は、クライアント名入力行13007と、クライアントID表示行13001と、リダイレクトURI選択行13002、13003、13004からなる。クライアントID表示行13001には、クライアント登録画面要求(S4.1)を受けた認可サーバー500が、クライアント登録画面返却(S4.2)時に、UUID形式のランダムかつユニークな値を生成して表示する。例えば、’9237ee87-1d58-4b0d-a7ed-a4042402df52’のような値である。クライアント名入力行13007にはクライアント登録者1001がクライアント登録時に任意のクライアント名を入力する。リダイレクトURI選択行13002、13003、13004には、本クライアント登録の際に有効となる、OAuth2.0仕様で言うところのリダイレクトURIの予め用意された選択肢を表示する。さらに、クライアント登録者1001が複数のリダイレクトURI選択肢の中から一つまたは複数を選択して認可サーバー500に登録するように、リダイレクトURI選択行の各行に複数選択可能なチェックボタンを表示し、一つまたは複数を選択可能とする。   The client registration parameter display 13000 includes a client name input line 13007, a client ID display line 13001, and redirect URI selection lines 13002, 13003, and 13004. In the client ID display line 13001, the authorization server 500 that has received the client registration screen request (S4.1) generates and displays a random and unique value in UUID format when the client registration screen is returned (S4.2). . For example, the value is '9237ee87-1d58-4b0d-a7ed-a4042402df52'. In the client name input line 13007, the client registrant 1001 inputs an arbitrary client name at the time of client registration. In the redirect URI selection lines 13002, 13003, and 13004, options prepared in advance for the redirect URI referred to in the OAuth 2.0 specification that are valid at the time of client registration are displayed. In addition, a multiple-selectable check button is displayed on each line of the redirect URI selection line so that the client registrant 1001 selects one or more of the multiple redirect URI options to register with the authorization server 500. One or more can be selected.

リダイレクトURIの複数の選択行13002、13003、13004は、非機能要件の異なるリソースサーバー400、401、402にクライアントを誘導するためのリダイレクトURIである。このうち、13002のリダイレクトURIはリソースサーバー400にアクセスするためのURIである。同様に、13003のリダイレクトURIはリソースサーバー401にアクセスするためのリダイレクトURIであり、13004は402にアクセスするためのリダイレクトURIである。これらの関係は、表5に示すクライアント、リソースサーバー管理テーブルにより予め定義されている。   A plurality of redirect URI selection lines 13002, 13003, and 13004 are redirect URIs for guiding a client to resource servers 400, 401, and 402 having different non-functional requirements. Among these, the redirect URI 13002 is a URI for accessing the resource server 400. Similarly, a redirect URI 13003 is a redirect URI for accessing the resource server 401, and a redirect URI 13004 is for accessing 402. These relationships are defined in advance by the client and resource server management table shown in Table 5.

図4のフローに戻り、クライアント登録者1001は、S4.2にて認可サーバー500から返された図13のクライアント登録画面を参照し、クライアント登録内容を入力する(S4.3)。具体的には、クライアントIDを確認して、リダイレクトURIを図13の選択肢(リダイレクトURI13002〜13004)の中から一つまたは複数を、複数選択可能なチェックボタンを選択することにより選択して、OKボタン13005を押下する。クライアント登録者1001がOKボタン13005を押下すると、Webブラウザー230は、認可サーバー500に対してクライアント登録処理要求を送信する(S4.4)。   Returning to the flow of FIG. 4, the client registrant 1001 refers to the client registration screen of FIG. 13 returned from the authorization server 500 in S4.2, and inputs the client registration content (S4.3). Specifically, after confirming the client ID, select one or more redirect URIs from the options shown in FIG. 13 (redirect URIs 13002 to 13004) by selecting a check button that allows multiple selection, and OK. A button 13005 is pressed. When the client registrant 1001 presses the OK button 13005, the Web browser 230 transmits a client registration processing request to the authorization server 500 (S4.4).

認可サーバー500はクライアント登録処理要求(S4.4)を受信したらクライアント登録処理を行う(S4.5)。具体的には、認可サーバー500の前記クライアント登録部620により、受信したクライアント登録処理要求(S4.4)からクライアント名とクライアントIDとリダイレクトURIを、認可サーバー500上のクライアント管理テーブル(表2)に登録する。認可サーバー500は、クライアント管理テーブルへのクライアント名、クライアントID、リダイレクトURIの登録が完了したら、登録内容(不図示)をWebブラウザー230に返却して処理を終了する(S4.6)。なお、本実施例ではクライアント登録者による認可サーバーへのクライアント登録処理についてWebブラウザーを用いた処理としているが、認可サーバーへの登録処理は専用登録アプリなどを用いても良い。   Upon receiving the client registration processing request (S4.4), the authorization server 500 performs client registration processing (S4.5). Specifically, the client registration unit 620 of the authorization server 500 receives the client name, client ID, and redirect URI from the received client registration processing request (S4.4), and the client management table on the authorization server 500 (Table 2). Register with. When the registration of the client name, client ID, and redirect URI in the client management table is completed, the authorization server 500 returns the registered content (not shown) to the Web browser 230 and ends the process (S4.6). In this embodiment, the client registration process to the authorization server by the client registrant is a process using a Web browser, but the registration process to the authorization server may use a dedicated registration application.

ここで、図14を用いて、クライアントPC200上のブラウザープリケーションを用いてリソースサービスを利用するための、本実施例に係る認可フローを表すシーケンスについて説明する。OAuth2.0の仕様では、多様なクライアントに応じた複数のプロトコルシーケンスをgrant typeと呼ぶ。図14の認可フローは、OAuth2.0仕様のimplicit grantに本実施例独自の拡張を加えたgrant typeである。なお、S14.2〜S14.22については、図6のS6.2〜S6.22と同様であるので説明を割愛する。   Here, a sequence representing an authorization flow according to the present embodiment for using a resource service using a browser application on the client PC 200 will be described with reference to FIG. In the OAuth 2.0 specification, multiple protocol sequences corresponding to various clients are called grant types. The authorization flow in FIG. 14 is a grant type obtained by adding an extension unique to this embodiment to the implicit grant of the OAuth 2.0 specification. Since S14.2 to S14.22 are the same as S6.2 to S6.22 in FIG.

図14のフローにおいて、まず、保護されたリソースへのアクセスが必要になるユーザーからの認可連携サービス開始要求が発生する(S14.1)。本サービス要求は、リソースオーナー1000であるユーザーがリソースサーバー400に対し、リソースオーナー1000が操作するユーザーエージェントたるクライアントPC200上のブラウザーアプリケーションを介してHTTPプロトコルを用いて行う。具体的には、リソースオーナー1000たるユーザーはクライアントPC200を操作してリソースサーバー400のアプリケーション画面(不図示)にアクセスする(S14.1)。このアプリケーション画面は例えば、リソースサーバー400のリソース連携アプリケーションが印刷アプリケーションの場合は印刷する文書を選択する画面であり、帳票アプリケーションの場合は、作成する帳票を選択する画面である。ここでアプリケーション画面にアクセスするとは、例えば、クライアントPC200上のブラウザー上にアプリケーション画面が選択可能に表示されており、当該アプリケーションを選択する事を指す。当該アプリケーションを選択することにより、リソースオーナー1000はリソースサーバー400に対して認可連携サービス開始要求を送信する(S14.1)。   In the flow of FIG. 14, first, an authorization cooperation service start request is generated from a user who needs access to a protected resource (S14.1). This service request is made by the user who is the resource owner 1000 to the resource server 400 using the HTTP protocol via the browser application on the client PC 200 which is a user agent operated by the resource owner 1000. Specifically, the user who is the resource owner 1000 operates the client PC 200 to access an application screen (not shown) of the resource server 400 (S14.1). This application screen is, for example, a screen for selecting a document to be printed when the resource cooperation application of the resource server 400 is a print application, and a screen for selecting a form to be created when the resource application is a form application. Here, accessing the application screen means, for example, that the application screen is displayed in a selectable manner on the browser on the client PC 200 and that the application is selected. By selecting the application, the resource owner 1000 transmits an authorization cooperation service start request to the resource server 400 (S14.1).

なお、本実施例では、上記アプリケーション画面でリソースサーバーの選択が可能である。選択可能なリソースサーバーとは、図13に示したクライアント登録画面で選択した複数のリダイレクトURIに対応したリソースサーバーURIで示されるリソースサーバーである。   In this embodiment, the resource server can be selected on the application screen. The selectable resource server is a resource server indicated by a resource server URI corresponding to a plurality of redirect URIs selected on the client registration screen shown in FIG.

また、本実施例では、リソース連携アプリケーションをリソースサーバー400上としている。しかし一般に、リソース連携アプリケーションはリソースサーバー400とは別のクライアントアプリケーションサーバーなどに存在しても良い。本実施例ではリソースサービス連携アプリケーションとして印刷Webアプリケーション、帳票Webアプリケーションといったリソースサービスと連携するクライアントアプリケーションが設置されている。なお1台のリソースサーバーに設置されるリソースサービス連携アプリケーションは1つでもよく、複数でもよい。   In this embodiment, the resource cooperation application is on the resource server 400. However, in general, the resource cooperation application may exist in a client application server other than the resource server 400. In this embodiment, a client application that cooperates with a resource service such as a print Web application and a form Web application is installed as a resource service cooperation application. Note that one or more resource service cooperation applications may be installed in one resource server.

上述のように、本発明においては、Web-Hostedクライアントモジュール310、リソースサーバーモジュール410にてnonce値を確認する。このことにより、前記のような一連の処理に無関係なブラウザーなどに、アクセストークン取得スクリプト、リソース要求の応答をしないようにすることができる。これにより、例え前記のようなブラウザーなどでアクセストークンが詐取されたとしても、Web-Hostedクライアント300やリソースサーバー400へのアクセスがエラーとなり、詐取されたアクセストークンの使用を防止することができる。このようにして、リソースサーバー400への不正アクセスを防止することができる。   As described above, in the present invention, the nonce value is confirmed by the Web-Hosted client module 310 and the resource server module 410. As a result, it is possible to prevent the access token acquisition script and the resource request from responding to a browser unrelated to the series of processes as described above. Thereby, even if the access token is stolen by the browser as described above, access to the Web-Hosted client 300 or the resource server 400 becomes an error, and the use of the stolen access token can be prevented. In this way, unauthorized access to the resource server 400 can be prevented.

<その他の実施例>
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
<Other examples>
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

200 クライアントPC
300 Web-Hostedクライアント
400 リソースサーバー
500 認可サーバー
200 client PC
300 Web-Hosted client
400 resource server
500 authorization server

Claims (13)

リソースを提供するリソースサーバーと、クライアントの認証及びリソースの認可を行なう認可サーバーと、クライアントと認可サーバーとの間の通信を媒介する媒介装置とを有する、ネットワークにおいて用いられる権限移譲システムであって、
前記リソースサーバーは、保護されたリソースに対するクライアントからの要求に対し、クライアントの認証に用いられる認証識別子を前記クライアントに発行し、
前記認可サーバーは、前記クライアントを識別する識別情報、前記リソースサーバーが発行した前記認証識別子、前記媒介装置の宛先を示す宛先情報を前記クライアントから受信し、前記認可サーバーに予め登録した情報に基づいて、前記クライアントを認証し、認証に成功した場合、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証に成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記媒介装置は、前記クライアントから前記宛先情報が示す宛先に前記認可サーバーが発行した前記証明情報が送られた場合、前記認証識別子と前記認可サーバーに予め登録した情報に基づいて、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証が成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記リソースサーバーは、前記媒介装置が発行した前記証明情報を前記クライアントから受信し、前記認証識別子に基づいて、前記クライアントからの前記要求を許可するかどうか検証し、検証に成功した場合、前記保護されたリソースを前記クライアントに提供し、
前記認可サーバーは、同じリソースについて性能の異なる複数のリソースサーバーに対応する複数の媒介装置の宛先情報を予め登録し、そのうちのいずれかの宛先情報を前記クライアントにより選択可能とすることを特徴とする権限移譲システム。
An authority delegation system used in a network, comprising: a resource server that provides a resource; an authorization server that authenticates and authorizes a client; and an intermediary device that mediates communication between the client and the authorization server;
The resource server issues an authentication identifier used for client authentication to the client in response to a request from the client for a protected resource,
The authorization server receives identification information for identifying the client, the authentication identifier issued by the resource server, and destination information indicating the destination of the intermediary device from the client, and is based on information registered in the authorization server in advance. Authenticate the client, verify that the client has authority over the protected resource if authentication is successful, and, if successful, provide proof information certifying that the client has authority Issued to
When the certification information issued by the authorization server is sent from the client to a destination indicated by the destination information, the intermediary device, based on the authentication identifier and information registered in the authorization server, the client Verify whether it has authority to the protected resource, and if the verification is successful, issue certification information to the client to prove the authority;
The resource server receives the certification information issued by the intermediary device from the client, verifies whether the request from the client is permitted based on the authentication identifier, and if the verification succeeds, the protection server Provided resources to the client,
The authorization server registers in advance destination information of a plurality of intermediary devices corresponding to a plurality of resource servers having different performances for the same resource, and allows any one of the destination information to be selected by the client. Authority transfer system.
前記クライアントが前記複数のリソースサーバーのいずれかにアクセスする際に、前記複数の宛先情報に基づき当該リソースサーバーを選択することを可能とすることを特徴とする請求項1に記載の権限移譲システム。   2. The authority transfer system according to claim 1, wherein when the client accesses any of the plurality of resource servers, the resource server can be selected based on the plurality of destination information. 前記複数の宛先情報のうちのいずれか1つまたは複数を前記クライアントにより選択可能とすることを特徴とする、請求項1または2に記載の権限移譲システム。   The authority transfer system according to claim 1 or 2, wherein any one or a plurality of the plurality of pieces of destination information can be selected by the client. リソースを提供するリソースサーバーと、クライアントの認証及びリソースの認可を行なう認可サーバーと、クライアントと認可サーバーとの間の通信を媒介する媒介装置とを有する、ネットワークにおいて用いられる権限移譲システムにおいて、
前記リソースサーバーは、保護されたリソースに対するクライアントからの要求に対し、クライアントの認証に用いられる認証識別子を前記クライアントに発行し、
前記認可サーバーは、前記クライアントを識別する識別情報、前記リソースサーバーが発行した前記認証識別子、前記媒介装置の宛先を示す宛先情報を前記クライアントから受信し、前記認可サーバーに予め登録した情報に基づいて、前記クライアントを認証し、認証に成功した場合、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証に成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記媒介装置は、前記クライアントから前記宛先情報が示す宛先に前記認可サーバーが発行した前記証明情報が送られた場合、前記認証識別子と前記認可サーバーに予め登録した情報に基づいて、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証が成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記リソースサーバーは、前記媒介装置が発行した前記証明情報を前記クライアントから受信し、前記認証識別子に基づいて、前記クライアントからの前記要求を許可するかどうか検証し、検証に成功した場合、前記保護されたリソースを前記クライアントに提供し、
前記認可サーバーは、同じリソースについて性能の異なる複数のリソースサーバーに対応する複数の媒介装置の宛先情報を予め登録し、そのうちのいずれかの宛先情報を前記クライアントにより選択可能とすることを特徴とする認可サーバー。
In an authority delegation system used in a network, including a resource server that provides resources, an authorization server that performs authentication and authorization of clients, and an intermediary device that mediates communication between the client and the authorization server.
The resource server issues an authentication identifier used for client authentication to the client in response to a request from the client for a protected resource,
The authorization server receives identification information for identifying the client, the authentication identifier issued by the resource server, and destination information indicating the destination of the intermediary device from the client, and is based on information registered in the authorization server in advance. Authenticate the client, verify that the client has authority over the protected resource if authentication is successful, and, if successful, provide proof information certifying that the client has authority Issued to
When the certification information issued by the authorization server is sent from the client to a destination indicated by the destination information, the intermediary device, based on the authentication identifier and information registered in the authorization server, the client Verify whether it has authority to the protected resource, and if the verification is successful, issue certification information to the client to prove the authority;
The resource server receives the certification information issued by the intermediary device from the client, verifies whether the request from the client is permitted based on the authentication identifier, and if the verification succeeds, the protection server Provided resources to the client,
The authorization server registers in advance destination information of a plurality of intermediary devices corresponding to a plurality of resource servers having different performances for the same resource, and allows any one of the destination information to be selected by the client. Authorization server.
リソースを提供するリソースサーバーと、クライアントの認証及びリソースの認可を行なう認可サーバーと、クライアントと認可サーバーとの間の通信を媒介する媒介装置とを有する、ネットワークにおいて用いられる権限移譲システムにおいて、
前記リソースサーバーは、保護されたリソースに対するクライアントからの要求に対し、クライアントの認証に用いられる認証識別子を前記クライアントに発行し、
前記認可サーバーは、前記クライアントを識別する識別情報、前記リソースサーバーが発行した前記認証識別子、前記媒介装置の宛先を示す宛先情報を前記クライアントから受信し、前記認可サーバーに予め登録した情報に基づいて、前記クライアントを認証し、認証に成功した場合、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証に成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記媒介装置は、前記クライアントから前記宛先情報が示す宛先に前記認可サーバーが発行した前記証明情報が送られた場合、前記認証識別子と前記認可サーバーに予め登録した情報に基づいて、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証が成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記認可サーバーは、同じリソースについて性能の異なる複数のリソースサーバーに対応する複数の媒介装置の宛先情報を予め登録し、そのうちのいずれかの宛先情報を前記クライアントにより選択可能とし、
前記リソースサーバーは、前記媒介装置が発行した前記証明情報を前記クライアントから受信し、前記認証識別子に基づいて、前記クライアントからの前記要求を許可するかどうか検証し、検証に成功した場合、前記保護されたリソースを前記クライアントに提供することを特徴とするリソースサーバー。
In an authority delegation system used in a network, including a resource server that provides resources, an authorization server that performs authentication and authorization of clients, and an intermediary device that mediates communication between the client and the authorization server.
The resource server issues an authentication identifier used for client authentication to the client in response to a request from the client for a protected resource,
The authorization server receives identification information for identifying the client, the authentication identifier issued by the resource server, and destination information indicating the destination of the intermediary device from the client, and is based on information registered in the authorization server in advance. Authenticate the client, verify that the client has authority over the protected resource if authentication is successful, and, if successful, provide proof information certifying that the client has authority Issued to
When the certification information issued by the authorization server is sent from the client to a destination indicated by the destination information, the intermediary device, based on the authentication identifier and information registered in the authorization server, the client Verify whether it has authority to the protected resource, and if the verification is successful, issue certification information to the client to prove the authority;
The authorization server registers in advance destination information of a plurality of intermediary devices corresponding to a plurality of resource servers having different performance for the same resource, and allows any one of the destination information to be selected by the client,
The resource server receives the certification information issued by the intermediary device from the client, verifies whether the request from the client is permitted based on the authentication identifier, and if the verification succeeds, the protection server A resource server, wherein the resource server is provided to the client.
リソースを提供するリソースサーバーと、クライアントの認証及びリソースの認可を行なう認可サーバーと、クライアントと認可サーバーとの間の通信を媒介する媒介装置とを有する、ネットワークにおいて用いられる権限移譲システムにおいて、
前記クライアントは、保護されたリソースに対する要求を前記リソースサーバーに送信し、クライアントの認証に用いられる認証識別子を前記リソースサーバーから受信し、
前記クライアントは、前記クライアントを識別する識別情報、前記リソースサーバーから受信した前記認証識別子、前記媒介装置の宛先を示す宛先情報を前記認可サーバーに送信し、前記クライアントが前記保護されたリソースに対して権限を有することを証明する証明情報を前記認可サーバーから受信し、
前記クライアントは、前記媒介装置の前記宛先情報が示す宛先に前記認可サーバーから受信した前記証明情報を送信し、前記クライアントが前記保護されたリソースに対して権限を有することを証明する証明情報を前記媒介装置から受信し、
前記クライアントは、前記媒介装置から受信した前記証明情報を前記リソースサーバーに送信し、前記保護されたリソースを前記リソースサーバーから受信し、
前記クライアントは、同じリソースについて性能の異なる複数のリソースサーバーに対応して前記認可サーバーに予め登録される複数の媒介装置の宛先情報のうちのいずれかの宛先情報を選択可能であることを特徴とするクライアント。
In an authority delegation system used in a network, including a resource server that provides resources, an authorization server that performs authentication and authorization of clients, and an intermediary device that mediates communication between the client and the authorization server.
The client sends a request for a protected resource to the resource server, receives an authentication identifier used to authenticate the client from the resource server;
The client transmits identification information for identifying the client, the authentication identifier received from the resource server, and destination information indicating a destination of the intermediary device to the authorization server. Receiving proof information from the authorization server certifying that it has authority;
The client transmits the certification information received from the authorization server to a destination indicated by the destination information of the intermediary device, and provides certification information for certifying that the client has authority over the protected resource. Received from the intermediary device,
The client sends the certification information received from the intermediary device to the resource server, receives the protected resource from the resource server;
The client is capable of selecting one of destination information of a plurality of intermediary devices registered in advance in the authorization server corresponding to a plurality of resource servers having different performance for the same resource. Client.
リソースを提供するリソースサーバーと、クライアントの認証及びリソースの認可を行なう認可サーバーと、クライアントと認可サーバーとの間の通信を媒介する媒介装置とを有する、ネットワークにおいて用いられる権限移譲システムにおいて、
前記リソースサーバーは、保護されたリソースに対するクライアントからの要求に対し、クライアントの認証に用いられる認証識別子を前記クライアントに発行し、
前記認可サーバーは、前記クライアントを識別する識別情報、前記リソースサーバーが発行した前記認証識別子、前記媒介装置の宛先を示す宛先情報を前記クライアントから受信し、前記認可サーバーに予め登録した情報に基づいて、前記クライアントを認証し、認証に成功した場合、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証に成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記認可サーバーは、同じリソースについて性能の異なる複数のリソースサーバーに対応する複数の媒介装置の宛先情報を予め登録し、そのうちのいずれかの宛先情報を前記クライアントにより選択可能とし、
前記媒介装置は、前記認可サーバーが発行した前記証明情報を前記クライアントから前記宛先情報が示す宛先に受信した場合、前記認証識別子と前記認可サーバーに予め登録した情報に基づいて、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証が成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記媒介装置は、前記媒介装置が発行した前記証明情報を前記クライアントから前記リソースサーバーに送信させ、前記保護されたリソースを前記リソースサーバーから前記クライアントに提供させることを特徴とする媒介装置。
In an authority delegation system used in a network, including a resource server that provides resources, an authorization server that performs authentication and authorization of clients, and an intermediary device that mediates communication between the client and the authorization server.
The resource server issues an authentication identifier used for client authentication to the client in response to a request from the client for a protected resource,
The authorization server receives identification information for identifying the client, the authentication identifier issued by the resource server, and destination information indicating the destination of the intermediary device from the client, and is based on information registered in the authorization server in advance. Authenticate the client, verify that the client has authority over the protected resource if authentication is successful, and, if successful, provide proof information certifying that the client has authority Issued to
The authorization server registers in advance destination information of a plurality of intermediary devices corresponding to a plurality of resource servers having different performance for the same resource, and allows any one of the destination information to be selected by the client,
When the intermediary device receives the certification information issued by the authorization server from the client to the destination indicated by the destination information, the mediator performs the protection based on the authentication identifier and information registered in advance in the authorization server. Verifying the authorization to the authorized resource, and if the verification is successful, issue certification information to prove the authorization to the client,
The intermediary device, wherein the certification information issued by the intermediary device is transmitted from the client to the resource server, and the protected resource is provided from the resource server to the client.
リソースを提供するリソースサーバーと、クライアントの認証及びリソースの認可を行なう認可サーバーと、クライアントと認可サーバーとの間の通信を媒介する媒介装置とを有する、ネットワークにおいて用いられる権限移譲システムにおいて用いられる権限移譲方法であって、
前記リソースサーバーにおいて、保護されたリソースに対するクライアントからの要求に対し、クライアントの認証に用いられる認証識別子を前記クライアントに発行し、
前記認可サーバーにおいて、前記クライアントを識別する識別情報、前記リソースサーバーが発行した前記認証識別子、前記媒介装置の宛先を示す宛先情報を前記クライアントから受信し、前記認可サーバーに予め登録した情報に基づいて、前記クライアントを認証し、認証に成功した場合、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証に成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記媒介装置において、前記クライアントから前記宛先情報が示す宛先に前記認可サーバーが発行した前記証明情報が送られた場合、前記認証識別子と前記認可サーバーに予め登録した情報に基づいて、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証が成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記リソースサーバーにおいて、前記媒介装置が発行した前記証明情報を前記クライアントから受信し、前記認証識別子に基づいて、前記クライアントからの前記要求を許可するかどうか検証し、検証に成功した場合、前記保護されたリソースを前記クライアントに提供し、
前記認可サーバーにおいて、同じリソースについて性能の異なる複数のリソースサーバーに対応する複数の媒介装置の宛先情報を予め登録し、そのうちのいずれかの宛先情報を 前記クライアントにより選択可能とすることを特徴とする権限移譲方法。
Authority used in an authority delegation system used in a network, including a resource server that provides resources, an authorization server that performs authentication and authorization of clients, and an intermediary device that mediates communication between the client and the authorization server A transfer method,
In response to a request from a client for a protected resource, the resource server issues an authentication identifier used for client authentication to the client.
The authorization server receives identification information for identifying the client, the authentication identifier issued by the resource server, and destination information indicating the destination of the intermediary device from the client, and is based on information registered in the authorization server in advance. Authenticate the client, verify that the client has authority over the protected resource if authentication is successful, and, if successful, provide proof information certifying that the client has authority Issued to
In the intermediary device, when the certification information issued by the authorization server is sent from the client to a destination indicated by the destination information, based on the authentication identifier and information registered in advance in the authorization server, the client Verify whether it has authority to the protected resource, and if the verification is successful, issue certification information to the client to prove the authority;
The resource server receives the certification information issued by the intermediary device from the client, verifies whether the request from the client is permitted based on the authentication identifier, and if the verification is successful, the protection Provided resources to the client,
In the authorization server, destination information of a plurality of intermediary devices corresponding to a plurality of resource servers having different performance for the same resource is registered in advance, and any one of the destination information can be selected by the client Authority transfer method.
請求項1〜3のいずれか1項に記載の権限移譲システムをコンピュータに実行させるためのプログラム。   The program for making a computer perform the authority transfer system of any one of Claims 1-3. 請求項4に記載の認可サーバーをコンピュータで実現させるためのプログラム。   The program for implement | achieving the authorization server of Claim 4 with a computer. 請求項5に記載のリソースサーバーをコンピュータで実現させるためのプログラム。   A program for realizing the resource server according to claim 5 on a computer. 請求項6に記載のクライアントをコンピュータで実現させるためのプログラム。   A program for realizing the client according to claim 6 on a computer. 請求項7に記載の媒介装置をコンピュータで実現させるためのプログラム。   The program for implement | achieving the mediation apparatus of Claim 7 with a computer.
JP2014255203A 2014-12-17 2014-12-17 Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program Pending JP2016115260A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014255203A JP2016115260A (en) 2014-12-17 2014-12-17 Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014255203A JP2016115260A (en) 2014-12-17 2014-12-17 Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program

Publications (1)

Publication Number Publication Date
JP2016115260A true JP2016115260A (en) 2016-06-23

Family

ID=56142061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014255203A Pending JP2016115260A (en) 2014-12-17 2014-12-17 Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program

Country Status (1)

Country Link
JP (1) JP2016115260A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018136661A (en) * 2017-02-21 2018-08-30 沖電気工業株式会社 Radio communication equipment, authentication information generation server, communication system, radio communication method and radio communication program
US20210006566A1 (en) * 2018-06-05 2021-01-07 The Toronto-Dominion Bank Methods and systems for controlling access to a protected resource
EP3809667A1 (en) 2019-10-17 2021-04-21 Fujitsu Limited Communication program, authorization apparatus, and communication system
CN113420855A (en) * 2021-06-23 2021-09-21 深圳市中壬银兴信息技术有限公司 High-security acquisition resource transfer method convenient for scanning based on block chain technology
US11336449B2 (en) 2018-09-13 2022-05-17 Kabushiki Kaisha Toshiba Information processing apparatus, computer program product, and resource providing method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018136661A (en) * 2017-02-21 2018-08-30 沖電気工業株式会社 Radio communication equipment, authentication information generation server, communication system, radio communication method and radio communication program
US20210006566A1 (en) * 2018-06-05 2021-01-07 The Toronto-Dominion Bank Methods and systems for controlling access to a protected resource
US11902289B2 (en) * 2018-06-05 2024-02-13 The Toronto-Dominion Bank Methods and systems for controlling access to a protected resource
US11336449B2 (en) 2018-09-13 2022-05-17 Kabushiki Kaisha Toshiba Information processing apparatus, computer program product, and resource providing method
EP3809667A1 (en) 2019-10-17 2021-04-21 Fujitsu Limited Communication program, authorization apparatus, and communication system
US11641356B2 (en) 2019-10-17 2023-05-02 Fujitsu Limited Authorization apparatus, data server and communication system
CN113420855A (en) * 2021-06-23 2021-09-21 深圳市中壬银兴信息技术有限公司 High-security acquisition resource transfer method convenient for scanning based on block chain technology

Similar Documents

Publication Publication Date Title
EP3525415B1 (en) Information processing system and control method therefor
JP6335657B2 (en) Authority delegation system, method, authentication server system, and program
US9021570B2 (en) System, control method therefor, service providing apparatus, relay apparatus and computer-readable medium
JP6198477B2 (en) Authority transfer system, authorization server system, control method, and program
JP6929181B2 (en) Devices and their control methods and programs
EP2232401B1 (en) System, method and program product for consolidated authentication
JP6066647B2 (en) Device apparatus, control method thereof, and program thereof
JP6061633B2 (en) Device apparatus, control method, and program thereof.
JP6166596B2 (en) Authorization server system, control method therefor, and program
JP6057666B2 (en) Image forming apparatus, information processing method, and program
JP6141041B2 (en) Information processing apparatus, program, and control method
JP2019046060A (en) Delegation-of-authority system, control method and program
JP2017107343A (en) Authentication cooperation system, authentication cooperation method, authorization server, and program
JP2005516533A (en) Single sign-on on the Internet using public key cryptography
JPWO2017130292A1 (en) Server and program
JP2016115260A (en) Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program
JP2009093580A (en) User authentication system
JP2016085638A (en) Server device, terminal device, system, information processing method, and program
JP7043480B2 (en) Information processing system and its control method and program
Baker OAuth2
US10623396B2 (en) System and method for controlling system