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 PDFInfo
- 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
Links
Images
Abstract
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.
現在スタンダードな手法になりつつある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.
以下、本発明を実施するための最良の形態について図面を用いて説明する。本実施の形態においては、インターネット上で帳票データを生成する帳票サービスと、インターネット上のデータを取得して印刷する印刷サービスが、インターネット上のサーバーに設置されていることを想定している。以降、帳票サービスや印刷サービスのように、インターネット上で機能を提供しているサービスを、「リソースサービス」と呼ぶ。 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.
認可サーバー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
リソースサーバー400、401、402は、印刷サービスや帳票サービスといったリソースサービス連携アプリケーションが設置されるサーバーである。なお1台のリソースサーバーに設置されるリソースサービス連携アプリケーションは1つでもよく、複数でもよい。またリソースサーバー400、401、402は、同じリソースサービス連携アプリケーションを提供するが、各々CPUの処理速度、メモリ容量、ディスク容量、許容同時接続数等の非機能要件に関わる仕様の異なるサーバー群である。本実施例においては、リソースサーバーの仕様は400が高スペック、401が中間スペック、402が低スペックである。本実施例においては、リソースサーバー400、401、402のスペックの違いは、リソースサーバー連携アプリケーションの能力の違いを表す。例えば印刷サービスにおいて、無償提供のサービスについては低スペックのリソースサーバー402に誘導する。有償提供の性能保証が必要なサービスについては契約するサービス性能に応じて中間性能のリソースサーバー401や高性能のリソースサーバー400に誘導する。
The
クライアント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
またクライアントPC200、Web-Hostedクライアント300、301、302、リソースサーバー400、401、402は、それぞれWAN100およびLAN101、LAN102を介して接続されている。なおクライアントPC200およびそれぞれのサービスはそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また同一のPC上に構成されていてもよい。
The
図2は本実施例に係るクライアントPC200の構成を示す図である。Web-Hostedクライアント300、301、302、リソースサーバー400、401、402、認可サーバー500のサーバーコンピューターの構成も同様である。尚、図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施例のクライアントPC200およびサーバーコンピューターには一般的な情報処理装置のハードウェア構成を適用できる。
FIG. 2 is a diagram illustrating the configuration of the
図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
なお、後述の説明において、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211にインストールされたアプリケーションプログラムである。
In the following description, unless otherwise specified, the subject on execution hardware is the
図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
認可サーバー500は認可サーバーモジュール510を備え、同モジュールはユーザー識別部610、クライアント登録部620、nonce値検証部630、クライアント検証部520、トークン検証部530、トークン発行部540を備える。なお、「nonce」(ノンス)とは、暗号通信で用いられる使い捨てのランダムな値のことであり、通常は認証の過程で使われ、リプレイ攻撃を行えないようにする働きを担っている。以下、使い捨ての認証識別子の意で用いる。
The
リソースサーバー400、401、402は同一のモジュール構成を持つ。以下、代表してリソースサーバー400について説明する。リソースサーバー400はリソースサーバーモジュール410を備え、同モジュールはトークン権限確認部420、リソース要求処理部430、後述するnonce値確認部440を備える。
The
クライアントPC200は、CPU201がROM203、或いは外部メモリ211に記憶されたOS220を実行する事で各アプリケーションを制御する。OSとしては一般的にはリアルタイムOSが使用されるが、昨今ではLinux(登録商標)等の汎用OSが使用される事もある。さらに、クライアントPC200はWWWを利用するためのユーザーエージェントであるWebブラウザー230を備える。
The
Web-Hostedクライアント300、301、302は同一のモジュール構成を持つ。以下、代表してWeb-Hostedクライアント300について説明する。Web-Hostedクライアント300はWeb-Hostedクライアントモジュール310を備え、同モジュールは後述するnonce値確認部330を備える。また、同モジュールは、クライアントPC200からのアクセストークン応答のリダイレクトURIリクエストを受信し、後述するアクセストークン取得とリソースリクエストを行うクライアントスクリプト320を返す機能を持つ。
Web-Hosted
以下の表1〜表5は認可サーバー500が外部メモリに記憶するデータテーブルを示す。これらのデータテーブルは、認可サーバー500の外部メモリではなく、LAN101を介して通信可能に構成された別のサーバーに記憶するよう構成する事も出来る。
Tables 1 to 5 below show data tables that the
表1のユーザー管理テーブルは、ユーザーID(識別情報)、パスワード、ユーザー種別から成る。認可サーバー500は、ユーザーID、パスワードの情報の組を検証し、正しければ認証情報を生成することで、各ユーザーもしくはクライアントを認証する機能を備える。
The user management table in Table 1 includes a user ID (identification information), a password, and a user type. The
表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.
表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.
表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.
表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
ここで、非機能要件の異なるリソースサーバーを選択可能にするために必要なクライアント登録処理を行うための、本実施例に係るクライアント登録フローを表すシーケンスについて図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
図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
クライアント登録パラメーター表示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
リダイレクトURIの複数の選択行5002、5003、5004は、非機能要件の異なるリソースサーバー400、401、402にクライアントを誘導するためのリダイレクトURIである。このうち、5002のリダイレクトURIはリソースサーバー400にアクセスするためのURIである。同様に、5003のリダイレクトURIはリソースサーバー401にアクセスするためのリダイレクトURIであり、5004は402にアクセスするためのリダイレクトURIである。これらの関係は、表5に示すクライアント、リソースサーバー管理テーブルにより予め定義されている。
A plurality of redirect
図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
認可サーバー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
ここで、図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
図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
なお本実施例においてはリソース連携アプリケーションをリソースサーバー400上としている。しかし一般に、リソース連携アプリケーションはリソースサーバー400とは別の、クライアントアプリケーションサーバーなどに存在しても良い。本実施例ではリソースサービス連携アプリケーションとして、印刷Webアプリケーション、帳票Webアプリケーションといったリソースサービスと連携するクライアントアプリケーションが設置されている。なお1台のリソースサーバーに設置されるリソースサービス連携アプリケーションは1つでもよく、複数でもよい。
In this embodiment, the resource cooperation application is on the
リソースサーバー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
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
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
リダイレクト要求を受信したクライアント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
ここで図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
認可サーバーモジュール510は、ユーザーを認証するために図8(a)に示すログイン画面2000をクライアントPC200上のWebブラウザー230に応答する。リソースオーナー1000であるユーザーはWebブラウザー230に示されたログイン画面2000に対して、ユーザーID、パスワードを入力しログインを実行する(S6.7)。認可サーバー500は受け付けたユーザーID、パスワードの組が表1のユーザー管理テーブルに登録されている情報と合っているかを検証する(S7.3)。
The
検証の結果、ユーザー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
図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
次に、認可サーバーモジュール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
ここで認可サーバーモジュール510は、クライアントPC200からの応答を待ち、認可確認に失敗したならば(S7.15)、認可確認失敗を返却して処理を終了する(S7.17)。一方、認可確認に成功したならば(S7.15)、認可確認成功を返却して処理を終了する(S7.16)。
Here, the
図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
アクセストークン発行処理(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
ここで図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
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-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
以下、図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
次に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
図10は図9のnonce値検証処理(S9.3)に対応した認可サーバー500におけるnonce値検証処理のフローチャートである。本フローチャートは認可サーバー500の認可サーバーモジュール510により、nonce値検証部630を用いて実行される。
FIG. 10 is a flowchart of nonce value verification processing in the
まず、上述の引数として渡された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
一方、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
ここで図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
上述のアクセストークン取得スクリプト応答(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
図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
図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
図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
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
ここで図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
認可サーバー500は、表3のトークン管理テーブルを参照し、取得したアクセストークン「AT_00001」の有効期間が切れていないこと、要求されているスコープ「リソースA」がスコープ範囲内であることを検証する。検証の結果、問題がなければ検証の成功を返す(S6.23)。この結果、アクセス許可と判断された場合は、リソースサーバー400は、Webブラウザー230に対して、リソースを応答する(S6.24)。ここで、リソースは例えば、リソースサーバー400が印刷サービスであった場合は印刷可能な文書のリストであり、帳票サービスであった場合は、作成可能な帳票のリストである。
The
なお、上述の実施例では、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
リソース応答(S6.24)を受け付けたクライアントPC200上のWebブラウザー230は、受信したデータを元に前述のアプリケーション画面を構成し、リソースオーナー1000たるユーザーに応答する。
The
<実施例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
図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
クライアント登録パラメーター表示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
リダイレクトURIの複数の選択行13002、13003、13004は、非機能要件の異なるリソースサーバー400、401、402にクライアントを誘導するためのリダイレクトURIである。このうち、13002のリダイレクトURIはリソースサーバー400にアクセスするためのURIである。同様に、13003のリダイレクトURIはリソースサーバー401にアクセスするためのリダイレクトURIであり、13004は402にアクセスするためのリダイレクトURIである。これらの関係は、表5に示すクライアント、リソースサーバー管理テーブルにより予め定義されている。
A plurality of redirect
図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
認可サーバー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
ここで、図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
図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
なお、本実施例では、上記アプリケーション画面でリソースサーバーの選択が可能である。選択可能なリソースサーバーとは、図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
上述のように、本発明においては、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
<その他の実施例>
本発明は、上述の実施例の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.
前記リソースサーバーは、保護されたリソースに対するクライアントからの要求に対し、クライアントの認証に用いられる認証識別子を前記クライアントに発行し、
前記認可サーバーは、前記クライアントを識別する識別情報、前記リソースサーバーが発行した前記認証識別子、前記媒介装置の宛先を示す宛先情報を前記クライアントから受信し、前記認可サーバーに予め登録した情報に基づいて、前記クライアントを認証し、認証に成功した場合、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証に成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記媒介装置は、前記クライアントから前記宛先情報が示す宛先に前記認可サーバーが発行した前記証明情報が送られた場合、前記認証識別子と前記認可サーバーに予め登録した情報に基づいて、前記クライアントが前記保護されたリソースに対して権限を有するかどうか検証し、検証が成功した場合、権限を有することを証明する証明情報を前記クライアントに発行し、
前記リソースサーバーは、前記媒介装置が発行した前記証明情報を前記クライアントから受信し、前記認証識別子に基づいて、前記クライアントからの前記要求を許可するかどうか検証し、検証に成功した場合、前記保護されたリソースを前記クライアントに提供し、
前記認可サーバーは、同じリソースについて性能の異なる複数のリソースサーバーに対応する複数の媒介装置の宛先情報を予め登録し、そのうちのいずれかの宛先情報を前記クライアントにより選択可能とすることを特徴とする認可サーバー。 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.
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)
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 |
-
2014
- 2014-12-17 JP JP2014255203A patent/JP2016115260A/en active Pending
Cited By (7)
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 |