[go: up one dir, main page]

JP2018180692A - Authentication authorization system, authentication authorization server, authentication method and program - Google Patents

Authentication authorization system, authentication authorization server, authentication method and program Download PDF

Info

Publication number
JP2018180692A
JP2018180692A JP2017075450A JP2017075450A JP2018180692A JP 2018180692 A JP2018180692 A JP 2018180692A JP 2017075450 A JP2017075450 A JP 2017075450A JP 2017075450 A JP2017075450 A JP 2017075450A JP 2018180692 A JP2018180692 A JP 2018180692A
Authority
JP
Japan
Prior art keywords
client
authority
authentication
authorization
access token
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
JP2017075450A
Other languages
Japanese (ja)
Inventor
能久 古本
Yoshihisa Furumoto
能久 古本
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 JP2017075450A priority Critical patent/JP2018180692A/en
Publication of JP2018180692A publication Critical patent/JP2018180692A/en
Pending legal-status Critical Current

Links

Images

Abstract

【課題】OAuthの認可フローにおいて、複数あるリソースサーバーの一つがオープンリダイレクタであった場合に、アクセストークンが漏えいするおそれがあり、攻撃者が全てのリソースサーバーに不正アクセスできる可能性がある。【解決手段】認証/認可サーバーが、クライアントからトークン発行要求を受信し、受信したクライアントのリダイレクトURIと要求された権限とを、予め与えられたリダイレクトURIに紐付けられた権限情報により限定し、限定したクライアントの権限でトークンを発行する。【選択図】図5PROBLEM TO BE SOLVED: To leak an access token when one of a plurality of resource servers is an open redirector in an OAuth authorization flow, and an attacker may be able to illegally access all resource servers. SOLUTION: An authentication / authorization server receives a token issuance request from a client, and limits the redirect URI and the requested authority of the received client by the authority information associated with the redirect URI given in advance. Issue tokens with limited client privileges. [Selection diagram] Fig. 5

Description

本発明は、認可フローにおける権限の絞り込み方法であり、特にOAuth Implicit Grantフローにおける発行するトークンに紐付く権限の絞り込みをする証認可システム、認証認可サーバー、認証方法及びプログラムに関する。   The present invention relates to a method for narrowing down authorization in an authorization flow, and more particularly to a proof-of-authorization system, authentication authorization server, authentication method and program for narrowing down authorization associated with tokens issued in an OAuth Implicit Grant flow.

クラウドの普及に伴い、手元ではサーバーマシンを管理せず、クラウド上の仮想サーバーを利用してアプリケーションサービスを提供する機会が増えている。さらに近年では、クラウド上でさえもサーバーを保持せずにアプリケーションサービスを提供できるような、アプリケーションの汎用的な機能群(以降、フレームワークと称する)を提供するクラウドサービスが存在している。アプリケーション開発者は、クラウドサービスが提供するフレームワークを利用して、クラウドサービス上にホストしたアプリケーションサービスにアクセスするためのApplication Programming Interface(アプリケーションプログラミングインターフェイス、以降、APIと称する)を設計/実装する。このようにすると、サーバー管理者がメンテナンスすべきアプリケーションサーバーが無くなるため、メンテンスコストを下げることができる。ユーザーがクラウド上のアプリケーションを使う場合、ユーザーは、認証/認可サーバーによって、認証もしくは認可されている必要がある。   With the spread of the cloud, there is an increasing opportunity to provide application services using virtual servers on the cloud without managing server machines at hand. Furthermore, in recent years, there is a cloud service that provides a general function group (hereinafter referred to as a framework) of an application that can provide an application service without holding a server even in the cloud. An application developer designs / implements an application programming interface (application programming interface, hereinafter referred to as an API) for accessing an application service hosted on a cloud service using a framework provided by the cloud service. In this way, maintenance costs can be reduced because there is no application server to be maintained by the server administrator. When a user uses an application on the cloud, the user needs to be authenticated or authorized by an authentication / authorization server.

ユーザーを認証する方式の一つに、BASIC認証がある。ここで、BASIC認証についてユーザーがアプリケーションをWebブラウザ上で利用する際の認証方法を例に概要を説明する。認証/認可サーバーがユーザーにWebブラウザを介してユーザー名とパスワードを求めた後、ユーザーはユーザー名とパスワードを認証/認可サーバーに送信する。認証/認可サーバーはユーザーから受信したユーザー名とパスワードとを、予め与えられていたユーザー名とパスワードに紐付けられたユーザー管理テーブルに含まれるか否かを検証する。Webブラウザから受信したユーザー名とパスワードが含まれる場合には、Webブラウザに認証したことを証明するトークン(以降、認証トークンと称する)を返す。以上の手順がBASIC認証の概要である。   BASIC authentication is one of the methods for authenticating a user. Here, with regard to BASIC authentication, an overview will be described by taking an authentication method when a user uses an application on a Web browser as an example. After the authentication / authorization server asks the user for a username and password via a web browser, the user sends the username and password to the authentication / authorization server. The authentication / authorization server verifies whether the user name and password received from the user are included in the user management table associated with the previously given user name and password. If the user name and password received from the web browser are included, a token certifying that the web browser has been authenticated (hereinafter referred to as an authentication token) is returned. The above procedure is an outline of BASIC authentication.

BASIC認証後にクライアントがクラウドサービス上にホストされたアプリケーションを使用するためには、クライアントがアクセスしたいアプリケーションサービスの範囲を明らかにした上で、認証/認可サーバーから認可を受けなければならない。クライアントはWebブラウザを介して認証/認可サーバーに認可を要求する。この要求にはブラウザを操作しているユーザーの認証トークン、認可を求めるクライアントの情報、認可を求めるアプリケーションサービスの範囲(以降、スコープと称する)を含む。認証/認可サーバーでは、クライアントから受信した認証トークンが正当なものかを確認する。認証トークンが正当な場合には、認証/認可サーバーはクライアントからのアクセストークン要求に対して、クラウドサービス上にホストされたアプリケーションの使用を認められたことを証明するトークン(以降、アクセストークンと称する)を発行する。以上の手順で発行されたアクセストークンを用いて認可を受けたクライアントはクラウドサービス上にホストされたアプリケーション使用することができる。   In order for a client to use an application hosted on a cloud service after BASIC authentication, the client must clarify the range of application services that the client wants to access, and then receive approval from the authentication / authorization server. The client requests authorization from the authentication / authorization server via a web browser. This request includes the authentication token of the user operating the browser, the information of the client for approval, and the scope of the application service for authorization (hereinafter referred to as a scope). The authentication / authorization server verifies that the authentication token received from the client is valid. When the authentication token is valid, the authentication / authorization server proves that the access token request from the client is permitted to use the application hosted on the cloud service (hereinafter referred to as an access token). Issue). The client authorized by using the access token issued in the above procedure can use the application hosted on the cloud service.

クライアントを認可してユーザーの権限を委譲する方式としてOAuthと呼ばれる、認可の連携を実現させるための標準プロトコルが策定されている。ここで、OAuthについて概要を説明する。   A standard protocol called OAuth, which is a method for authorizing a client and delegating the authority of a user, has been developed to realize coordination of authorization. Here, we will give an overview of OAuth.

OAuthは、クラウドサービス上のアプリケーションが管理するデータに、そのデータの所有者であるユーザーから認められたクライアントがユーザーの代理でアクセスすることを実現する方式である。このとき、クラウドサービス上にホストされたアプリケーションは、クライアントからアクセスされる範囲を明らかにする。明らかにした上で、クライアントは、認証/認可サーバーからクライアントによるアクセスに対してユーザーの明示的な権限の委譲を得なければならない。ユーザーが明示的に権限を委譲することを権限委譲と称する。ユーザーが権限委譲を行うと、認証/認可サーバーはクライアントからのアクセストークン要求に対して、クラウドサービス上にホストされたアプリケーションサービスへのアクセスを認められたことを示すアクセストークンを発行する。以上の手順で、クライアントはクラウドサービス上にホストされたアプリケーションサービスにアクセスするAPIを使用することができる。   OAuth is a method for realizing access to data managed by an application on a cloud service on behalf of the user by a client authorized by the user who is the owner of the data. At this time, the application hosted on the cloud service reveals the range accessed by the client. To be clear, the client must obtain explicit delegation of the user's authority for access by the client from the authentication / authorization server. When a user explicitly delegates authority is referred to as authority delegation. When the user transfers the authority, the authentication / authorization server issues an access token indicating that the access to the application service hosted on the cloud service has been granted in response to the access token request from the client. With the above procedure, the client can use the API for accessing the application service hosted on the cloud service.

以上のように、クラウドサービス上にホストされたアプリケーションを利用するには、ユーザーを認証する場合とユーザーの権限を委譲されたクライアントを認可するのかで実現方式が異なる。   As described above, in order to use the application hosted on the cloud service, the implementation method differs depending on whether the user is authenticated or the client whose authority is delegated is authorized.

しかし、アプリケーションをホストするクラウドサービスやフレームワークの制約で、認証トークンとアクセストークンのどちらでも受け取れるように、アプリケーションを実装できない場合がある。この場合、アプリケーション開発者は、認証トークン用とアクセストークン用で別々にAPIを作成しなければならない。同じものを作るのは非効率であるため、認証トークンを使用するWebブラウザでもアクセストークンを使用することが望ましい。   However, due to limitations of the cloud service or framework that hosts the application, it may not be possible to implement the application so that either an authentication token or an access token can be received. In this case, the application developer must create separate APIs for the authentication token and the access token. Because it is inefficient to make the same, it is desirable to use access tokens even in web browsers that use authentication tokens.

しかしながら、Webブラウザは、クライアントの認証情報(以降、クレデンシャルと称する)の機密性を保つのが難しいという欠点があり、OAuthでは、Webブラウザのようにクレデンシャルの機密性が保てないような場合でも、認証/認可サーバーがアクセストークンを発行できるImplicit Grant フローが定義されている。   However, Web browsers have the disadvantage that it is difficult to maintain the confidentiality of client authentication information (hereinafter referred to as credentials), and OAuth does not maintain the confidentiality of credentials as Web browsers do. An Implicit Grant flow is defined that allows the authentication / authorization server to issue an access token.

Implicit Grantフローの概要について説明する。認証/認可サーバーは、クライアント(たとえばWebブラウザで実行されるスクリプトなど)からの認可リクエストを受けた後、認可リクエストに含まれるリダイレクトURIと認証/認可サーバーに予め与えられているリダイレクトURIとが一致するか否かを検証する。検証結果が一致する場合には、認証/認可サーバーはユーザーからの認可を受けた後、クライアントの認可リクエストに応答してアクセストークンを発行する。   Give an overview of the Implicit Grant flow. After receiving an authorization request from a client (for example, a script executed by a Web browser), the authentication / authorization server matches the redirect URI included in the authorization request with the redirect URI given in advance to the authentication / authorization server. Verify if you want to If the verification results match, the authentication / authorization server receives an authorization from the user and then issues an access token in response to the client's authorization request.

この際、認証/認可サーバーがユーザーによる認可を受信すると、認証/認可サーバーは、一致が確認されたリダイレクトURIを用いてWebブラウザをリダイレクトさせる。WebブラウザはリダイレクトURIから、アクセストークン識別子が記載されたフラグメントの情報を取り出し、ローカルに保持する。Webブラウザは、リダイレクトの指示に従い、Web-Hostedクライアントリソースに、フラグメントを取り除いたリクエストを送信する。Web-Hostedクライアントリソースはリクエストを受信すると、通常は埋め込みのスクリプトが含まれるWebページをWebブラウザに返す。Webブラウザは、保持しているフラグメントを含む完全なリダイレクトURLにアクセスし、フラグメントに含まれているアクセストークンを抽出する。Webブラウザは上記Webページに含まれるスクリプトをローカルに実行し、アクセストークン識別子を取り出して、クライアントに送信する。   At this time, when the authentication / authorization server receives the authorization by the user, the authentication / authorization server redirects the web browser using the redirect URI for which the match is confirmed. The Web browser retrieves the information of the fragment in which the access token identifier is described from the redirect URI and holds it locally. The web browser sends a request with the fragment removed to the web-hosted client resource according to the redirect instruction. When a Web-Hosted client resource receives a request, it usually returns a Web page containing embedded scripts to the Web browser. The web browser accesses the complete redirect URL including the fragment being held, and extracts the access token contained in the fragment. The web browser executes the script contained in the web page locally, extracts the access token identifier, and sends it to the client.

このように、Implicit Grant フローは、ユーザーが介在することと、予め認証/認可サーバーに登録している特定のリダイレクトURIを検証することで、ユーザーの権限をクライアントに委譲することを実現している。このImplicit Grantフローを適用すると、Webブラウザ上で実行されるクライアントでもアクセストークンが使えるようになる。アプリケーション開発者は、アクセストークンと認証トークンで重複していた設計/開発フローをアクセストークンによる設計/開発フローに統一することが可能となる。   Thus, the Implicit Grant flow realizes that the user's authority is delegated to the client by user intervention and verification of a specific redirect URI registered in advance in the authentication / authorization server. . By applying this Implicit Grant flow, clients running on Web browsers can use access tokens. The application developer can unify the overlapping design / development flow of the access token and the authentication token into the design / development flow of the access token.

特開2015-228068号公報JP, 2015-228068, A

しかしながら、Implicit Grantフローでは、下記の条件が重なるとアクセストークンが漏えいしてしまう可能性がある。なおリソースサーバーが複数存在し、各々のリソースサーバーは少なくとも一つのWeb-Hostedクライアントリソースを保持しているものとする。ここで、複数存在するリソースサーバーのうち少なくとも一つで、特定のWeb-HostedクライアントリソースのURIが、任意のサーバーへのリダイレクトを実行してしまう(以降、オープンリダイレクタと称する)場合を考える。また、Implicit Grantフローを実行するWebブラウザが、リダイレクト先のURIにもフラグメントを引き継ぐものであるとする。さらに、上述した特定のWeb-HostedクライアントリソースのURIをリダイレクトURIに持つクライアントが、認証/認可サーバーに対し、全リソースサーバーへの全権限のスコープを要求するとしよう。   However, in the Implicit Grant flow, the access token may be leaked under the following conditions. A plurality of resource servers exist, and each resource server holds at least one Web-Hosted client resource. Here, consider the case where the URI of a specific Web-Hosted client resource executes redirection to an arbitrary server (hereinafter referred to as an open redirector) in at least one of a plurality of resource servers. In addition, it is assumed that the Web browser executing the Implicit Grant flow inherits the fragment to the redirect destination URI. Furthermore, suppose that a client having the URI of the specific Web-Hosted client resource described above as the redirect URI requests the authentication / authorization server for the scope of all privileges for all resource servers.

このような場合、認証/認可サーバーは、クライアントの要求に応じて、全リソースサーバーへの全権限のスコープをもつアクセストークンを発行する。このとき、上述したWeb-HostedクライアントリソースのURIに含まれたリダイレクト先にある、攻撃者が管理するサーバーが、フラグメントを読み取り、アクセストークンを入手する可能性がある。その結果、攻撃者は、入手したアクセストークンを使用して、全てのリソースサーバーに不正にアクセスできてしまう問題があった。ここで、オープンリダイレクタとなったサーバー以外に対しても不正なアクセスが発生するのは好ましくない。特許文献1では、Implicit Grant フローを拡張する技術が記載されている。特許文献1によれば、ユーザーの利便性を損なわないようにユーザー認証した際に、リダイレクトURIが一致する場合に限って、認証/認可サーバーがユーザーへの認可確認を省略して、アクセストークンを発行している。   In such a case, the authentication / authorization server issues an access token with the scope of all privileges to all resource servers, in response to the client's request. At this time, there is a possibility that an attacker-managed server at the redirect destination included in the above-described Web-Hosted client resource URI may read a fragment and obtain an access token. As a result, an attacker could gain unauthorized access to all resource servers using the obtained access token. Here, it is not desirable that unauthorized access occurs to servers other than the open redirector. Patent Document 1 describes a technique for extending an Implicit Grant flow. According to Patent Document 1, when performing user authentication so as not to impair user convenience, the authentication / authorization server omits the authorization confirmation for the user only when the redirect URI matches, and the access token is Is issued.

しかしながら、特許文献1でも、認証/認可サーバーは、リダイレクトURIが一致していればアクセストークンを発行するため、リソースサーバーのすべてが危険にさらされてしまうという課題は依然として残る。   However, even in Patent Document 1, since the authentication / authorization server issues an access token if the redirect URIs match, the problem that all of the resource servers are at risk remains.

本発明は、前述の課題を鑑みてなされたものであり、Implicit Grantフローにおいてトークン漏えいが発生したとしても、不正なアクセスの拡大を防止することを目的とする。   The present invention has been made in view of the above-mentioned problems, and it is an object of the present invention to prevent the expansion of unauthorized access even if a token leak occurs in an implicit grant flow.

上記目的を達成するために本発明は以下の構成を有する。   In order to achieve the above object, the present invention has the following configuration.

本発明の一側面によれば、本発明は、
クライアントから、アクセストークン要求と共に前記クライアントのリダイレクトURIと要求されるクライアントの権限とを受信する受信手段と、
要求される前記権限を、前記リダイレクトURIに紐付けられた権限情報で限定する権限限定手段と、
前記権限限定手段で限定された権限のアクセストークンを発行する発行手段と
を有することを特徴とする認証認可サーバーにある。
According to one aspect of the invention, the invention is
Receiving means for receiving from the client an access token request together with the client's redirect URI and the requested client's authority;
Authority restriction means for restricting the requested authority by the authority information linked to the redirect URI;
And an issuing means for issuing an access token of the right limited by the right limiting means.

また他の側面によれば、本発明は、
クライアントと、リソースを提供するリソースサーバーと、認証認可サーバーとを含む認証認可システムであって、
前記認証認可サーバーは、
前記クライアントから、アクセストークン要求と共に前記クライアントのリダイレクトURIと要求されるクライアントの権限とを受信する受信手段と、
要求される前記権限を、前記リダイレクトURIに紐付けられた権限情報で限定する権限限定手段と、
前記権限限定手段で限定された権限のアクセストークンを発行する発行手段と
を有し、
前記リソースサーバーは、リソースの要求と共に前記クライアントから受信する前記アクセストークンを検証し、検証に成功した場合に、前記クライアントに要求されたリソースを提供することを特徴とする認証認可システムにある。
According to another aspect, the present invention provides:
An authentication and authorization system comprising a client, a resource server for providing resources, and an authentication and authorization server, comprising:
The authentication and authorization server is
Receiving means for receiving, from the client, an access token request together with the client's redirect URI and the requested client's authority;
Authority restriction means for restricting the requested authority by the authority information linked to the redirect URI;
And issuing means for issuing an access token of the right limited by the right limiting means,
The resource server validates the access token received from the client together with a request for resources, and provides the requested resource to the client if validation is successful.

本発明によれば、Implicit Grantフローにおいてトークン漏えいが発生したとしても、不正なアクセスの拡大を防止することができる。   According to the present invention, even if a token leak occurs in an Implicit Grant flow, it is possible to prevent the expansion of unauthorized access.

OAuthのImplicit Grant フローを示すシーケンス図である。It is a sequence diagram showing the Implicit Grant flow of OAuth. 実施例1のネットワーク構成図である。FIG. 1 is a network configuration diagram of a first embodiment. 実施例1の各装置のハードウェア構成図である。FIG. 2 is a hardware configuration diagram of each device of the first embodiment. 実施例1の各装置のモジュール構成図である。FIG. 2 is a module configuration diagram of each device of the first embodiment. 実施例1の認可フローを示すシーケンス図である。FIG. 7 is a sequence diagram showing an authorization flow of the first embodiment. 実施例1の認証/認可サーバーでの処理を示すフローチャートである。FIG. 7 is a flowchart showing processing of an authentication / authorization server of the first embodiment. FIG. 実施例2の認証/認可サーバーでの処理を示すフローチャートである。FIG. 16 is a flowchart showing processing in an authentication / authorization server of Example 2. FIG. 実施例2の認可確認画面を示す図である。It is a figure which shows the approval confirmation screen of Example 2. FIG.

[実施形態1]
本実施の形態においては、インターネット上で帳票データを生成する帳票サービスと、インターネット上のデータを取得して印刷する印刷サービスが、インターネット上のサーバーに設置されていることを想定している。以降、帳票サービスや印刷サービスのように、インターネット上で機能を提供しているサービスを、リソースサービスと呼ぶ。また本実施の形態においては、携帯端末にインストールされた印刷アプリケーションおよび帳票アプリケーションがリソースサービスを利用することを想定している。以降、印刷アプリケーションや帳票アプリケーションのように、リソースサービスを利用するアプリケーションを、リソースサービス連携アプリケーションと呼ぶ。無論、リソースサービスは帳票サービス、印刷サービスには限られず、アプリケーションも帳票アプリケーション、印刷アプリケーションに限られるものではない。
Embodiment 1
In the present embodiment, it is assumed that a form service for generating form data on the Internet and a print service for acquiring and printing data on the Internet are installed in a server on the Internet. Hereinafter, a service that provides a function on the Internet, such as a form service and a printing service, is called a resource service. Further, in the present embodiment, it is assumed that the print application and the form application installed in the portable terminal use the resource service. Hereinafter, an application that uses a resource service, such as a print application and a form application, will be 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では、ユーザーから委譲された権限を証明するための情報として、アクセストークンと呼ばれる情報を利用する。本実施形態にかかる権限委譲システムは、図2に示すような構成のネットワーク上に実現される。   Furthermore, in the transfer of authority in the present embodiment, the OAuth mechanism is used. OAuth uses information called access token as information to prove the authority delegated from the user. The authority transfer system according to the present embodiment is implemented on a network configured as shown in FIG.

<認証認可システムの構成>
図2において、WAN702は、Wide Area Networkであり、本実施形態ではネットワーク702上でWorld Wide Web(WWW)システムが構築されている。LAN701、LAN703は各構成要素を接続するLocal Area Networkである。認証/認可サーバー400は、ユーザー認証とアクセストークンの発行を行うサーバーである。
<Configuration of Authentication and Authorization System>
In FIG. 2, a WAN 702 is a wide area network, and in the present embodiment, a World Wide Web (WWW) system is constructed on the network 702. A LAN 701 and a LAN 703 are Local Area Networks connecting respective components. The authentication / authorization server 400 is a server that performs user authentication and access token issuance.

リソースサーバー600、601、602には、印刷サービスや帳票サービスといったリソースサービスが設置されている。ここでは、OAuthにおけるWeb-Hosted クライアントリソースを含んでいる。なお1台のリソースサーバーに含まれるWeb-Hosted クライアントリソースは1つでもよく、複数でもよい。さらに、リソースサーバーに含まれるリソースサービスは1つでもよく、複数でもよい。   The resource servers 600, 601, and 602 are provided with resource services such as a print service and a form service. Here, it includes Web-Hosted client resources in OAuth. Note that one or more Web-Hosted client resources may be included in one resource server. Furthermore, one or more resource services may be included in the resource server.

Web-Hostedクライアントリソース500、501、502は、OAuthにおけるWeb-Hosted クライアントリソースである。携帯端末201は、ユーザーが使用する携帯端末である。ここでは、OAuthにおけるクライアント230とWebブラウザ300を含んでいる。また、リソースサーバー600、601、602と接続するのは携帯端末201に限定されるものではない。クライアント230は、ユーザーの代理として保護されたサーバー上にあるリソースに対してリクエストするクライアントであり、たとえばJavaScript(登録商標)のようなスクリプト言語によるWebブラウザ300上で実行されるソフトウェアのことである。   Web-Hosted client resources 500, 501, 502 are Web-Hosted client resources in OAuth. The portable terminal 201 is a portable terminal used by a user. Here, the client 230 and the web browser 300 in OAuth are included. Further, connection to the resource servers 600, 601, and 602 is not limited to the portable terminal 201. The client 230 is a client that makes a request for a resource located on a protected server on behalf of the user, and is software executed on the web browser 300 in a script language such as JavaScript (registered trademark), for example. .

認証/認可サーバー400、リソースサーバー600、601、および602はそれぞれLAN701を介してWAN702に接続されている。また、同様に携帯端末201は、LAN703を介してWAN702に接続されている。なお、認証/認可サーバー400、リソースサーバー600、601、および602は個別のLAN上に構成されていてもよいし、同一のLAN上に構成されていてもよい。また同一のPCまたはサーバー上に構成されていてもよい。   The authentication / authorization server 400 and the resource servers 600, 601, and 602 are connected to the WAN 702 via the LAN 701, respectively. Similarly, the portable terminal 201 is connected to the WAN 702 via the LAN 703. The authentication / authorization server 400 and the resource servers 600, 601, and 602 may be configured on separate LANs, or may be configured on the same LAN. It may also be configured on the same PC or server.

<認証認可サーバーのハードウェア構成>
図3は、本実施形態にかかる、認証/認可サーバー400のハードウェア構成を示す図である。また、リソースサーバー600、601、および602、携帯端末201の構成も同様である。図3において、CPU801は、ROM803のプログラム用ROMに記憶された、或いはハードディスク811からRAM802にロードされたOSやアプリケーション等のプログラムを実行する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理はこのプログラムをCPU801で実行することにより実現できる。RAM802は、CPU801の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)805は、キーボード(KB)809や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)806は、CRTディスプレイ810の表示を制御する。ディスクコントローラ(DKC)807は各種データを記憶するハードディスク(HD)811や媒体を交換できる光ディスク、フレキシブルディスク(FD)、不揮発メモリを用いた記録媒体等におけるデータアクセスを制御する。NC812はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
<Hardware configuration of authentication and authorization server>
FIG. 3 is a diagram showing a hardware configuration of the authentication / authorization server 400 according to the present embodiment. In addition, the configurations of the resource servers 600, 601, and 602, and the portable terminal 201 are the same. In FIG. 3, the CPU 801 executes a program such as an OS or an application stored in the program ROM of the ROM 803 or loaded from the hard disk 811 into the RAM 802. Here, OS is an abbreviation of an operating system operating on a computer, and the operating system is hereinafter referred to as an OS. The processing of each flowchart to be described later can be realized by executing this program by the CPU 801. A RAM 802 functions as a main memory, a work area, and the like of the CPU 801. A keyboard controller (KBC) 805 controls key input from a keyboard (KB) 809 or a pointing device (not shown). A CRT controller (CRTC) 806 controls the display of the CRT display 810. A disk controller (DKC) 807 controls data access to a hard disk (HD) 811 storing various data, an optical disk capable of exchanging media, a flexible disk (FD), a recording medium using a non-volatile memory, and the like. The NC 812 is connected to the network and executes communication control processing with other devices connected to the network.

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

<アクセストークンが漏洩する原因>
ここで、本発明を実施するための詳細な説明をする前に、前述の課題でも説明した、Implicit Grantフローでアクセストークンが漏えいする可能性の詳細について図2を用いて説明する。
リソースサーバーに少なくとも一つのWeb-Hosted クライアントリソースが内在しているものとし、リソースサーバー600と、リソースサーバー601と、リソースサーバー602がLAN701上にある。ここで、表1に認証/認可サーバーが検証する権限のスコープとリダイレクトURIとの関係を示す。このスコープはクライアント権限のスコープである。本実施形態では、単に権限といった場合にはクライアント権限を指す。
<Cause of access token leakage>
Here, before giving a detailed description for practicing the present invention, details of the possibility of the access token being leaked in the Implicit Grant flow, which is also described in the above-mentioned problem, will be described using FIG.
It is assumed that at least one Web-Hosted client resource is inherent in the resource server, and the resource server 600, the resource server 601, and the resource server 602 are on the LAN 701. Here, Table 1 shows the relationship between the scope of the authority to be verified by the authentication / authorization server and the redirect URI. This scope is the scope of the client authority. In the present embodiment, when simply referring to the right, it refers to the client right.

Figure 2018180692
Figure 2018180692

表1では、リソースサーバー600が、検証するクライアント権限のスコープscopeA、Web-Hosted クライアントリソースのURIhttps://xxx.example.comに紐付けされている。リソースサーバー601は、検証するクライアント権限のスコープscopeB、Web-Hosted クライアントリソースのURIhttps://yyy.example.comに紐付けされている。リソースサーバー602は、検証するクライアント権限のスコープscopeCとscopeD、Web-Hosted クライアントリソースのURI"https://zzz.example.com"に紐付けされている。 In Table 1, the resource server 600 is linked to the scope scopeA of the client authority to be verified and the URI https://xxx.example.com of the Web-Hosted client resource. The resource server 601 is linked to the scope scope B of the client authority to be verified and the URI https://yyy.example.com of the Web-Hosted client resource. The resource server 602 is linked to the scope scope C and scope D of the client authority to be verified, and the URI “https://zzz.example.com” of the Web-Hosted client resource.

携帯端末201は、WAN702を挟んだLAN701とは別のLAN703上にある。携帯端末201は、認証/認可サーバー400に対して、リソースサーバー600への権限のスコープを要求するものとする。ただし、携帯端末201は、他のリソースサーバー601と602へのアクセスも今後したいため、一旦すべての権限のスコープを要求するものと想定する。すなわち、クライアント230は認証/認可サーバーへ、クライアント識別子をclient230、要求する権限のスコープをscopeA、scopeB、scopeC、scopeDとし、リダイレクトURIとしてhttps://xxx.example.comを指定している認可リクエストを送信してアクセストークンを要求するものとする。なお、認証/認可サーバー400には、クライアント識別子がリダイレクトURIに紐付いたクライアント管理テーブルが予め与えられているものとする。表2にクライアント管理テーブルを示す。   The portable terminal 201 is located on a LAN 703 different from the LAN 701 across the WAN 702. The portable terminal 201 requests the authentication / authorization server 400 for the scope of the authority to the resource server 600. However, it is assumed that the portable terminal 201 once requests the scope of all the rights because it also wants to access other resource servers 601 and 602 in the future. That is, the client 230 requests the authentication / authorization server, the client identifier is client 230, the scope of the authority to request is scopeA, scopeB, scopeC, scopeD, and the authorization request specifies https://xxx.example.com as the redirect URI. And request an access token. It is assumed that the client management table in which the client identifier is linked to the redirect URI is given to the authentication / authorization server 400 in advance. Table 2 shows the client management table.

Figure 2018180692
Figure 2018180692

表2では、クライアント230のクライアント識別子client230に対して、3つのリダイレクトURIであるhttps://xxx.example.com、https://yyy.example.com、https://zzz.example.comが紐付けされている。 In Table 2, for the client identifier client 230 of the client 230, three redirect URIs https://xxx.example.com, https://yyy.example.com, https://zzz.example.com It is tied.

ここで、図2に示すリソースサーバー600のWeb-Hosted クライアントリソース500がリソースサーバー600の外へリダイレクトを実行するようなオープンリダイレクタになってしまっていて、且つWebブラウザ300がリダイレクト先のURIにもフラグメントを引き継いでしまう場合を想定する。このとき発生する課題について、図1で示したImplicit Grant フローに従って詳細を以下に示す。図1において、ユーザー100は、保護されたサーバー上にあるリソースのオーナーである。クライアント230は、ユーザー100の代理として保護されたサーバー上にあるリソースに対するリクエストを行うもので、たとえばJavaScript(登録商標)のようなスクリプト言語によるWebブラウザ300上で実行されるソフトウェアである。Webブラウザ300は、例えばコンピュータ上でWWWを利用するためのユーザーエージェントである。認証/認可サーバー400は、ユーザー100がクライアント230に権限委譲を認可したことを確認するとアクセストークンをクライアント230に発行するサーバーである。Web-Hosted クライアントリソース500は、Webブラウザ300からリダイレクトURIリクエストを受信し、クライアント230がアクセストークンを取得するために、Webブラウザ300にスクリプトを返すサーバー上にホストされたモジュールである。リソースサーバー600は、保護されたサーバー上にあるリソースをホストしアクセストークン識別子を用いたリソースへのリクエストを受理して応答を返すサーバーである。   Here, the Web-Hosted client resource 500 of the resource server 600 shown in FIG. 2 is an open redirector that performs redirection to the outside of the resource server 600, and the Web browser 300 is also the URI of the redirect destination. Suppose that a fragment is taken over. The problems occurring at this time will be described in detail according to the Implicit Grant flow shown in FIG. In FIG. 1, user 100 is the owner of a resource located on a protected server. The client 230 makes a request for a resource on a protected server on behalf of the user 100, and is software executed on the Web browser 300 in a script language such as JavaScript (registered trademark), for example. The web browser 300 is, for example, a user agent for using the WWW on a computer. The authentication / authorization server 400 is a server that issues an access token to the client 230 upon confirming that the user 100 has authorized the client 230 to transfer authority. The web-hosted client resource 500 is a module hosted on a server that receives a redirect URI request from the web browser 300 and returns a script to the web browser 300 in order for the client 230 to obtain an access token. The resource server 600 is a server that hosts resources on a protected server, accepts requests for resources using access token identifiers, and returns responses.

S1.1で、ユーザー100が、Webブラウザ300を介して、リソースサーバー600にアクセスする。
S1.2で、リソースサーバー600は、ユーザー100からのアクセストークン要求を受信し、Webブラウザ300を介して、ユーザー100にWebブラウザ上で動作するクライアント230を配布する。配布されたクライアント230はWebブラウザ300により実行される。
S1.3で、クライアント230は、認証/認可サーバー400に対して、認可リクエストを送信する。認可リクエストには、クライアント識別子としてclient230が、要求する権限のスコープとしてscopeA、scopeB、scopeC、scopeDが、リダイレクトURIとしてhttps://xxx.example.comが含まれている。
S1.4で、認証/認可サーバー400は、S1.3でクライアント230から提示されたクライアント識別子とリダイレクトURIと、予め与えられていた表2に示すクライアント管理テーブルとを照合する。そして認可リクエストのクライアント識別子及びリダイレクトURIと一致するクライアント識別子及びリダイレクトURIの組が、クライアント管理テーブルに格納されているか否かを判定する。クライアント230から受信した認可リクエストに含まれるクライアント識別子とリダイレクトURIとが、表2内のクライアント識別子であるclient230と、それに紐付けられたリダイレクトURIであるhttps://xxx.example.comとに一致していると、S1.5へ進む。
S1.5で、認証/認可サーバー400は、Webブラウザ300に対して、認可確認画面を表示するスクリプトを送信する。
S1.6で、ユーザー100が認可確認をS1.5で表示した認可確認画面で認可操作を行うと、Webブラウザ300は、認可確認のメッセージを認証/認可サーバー400に送信する。
S1.7で、認可確認を受信した認証/認可サーバー400は、S1.4で一致が確認されたリダイレクトURI(https://xxx.example.com)を用いてWebブラウザ300をリダイレクトさせる。このリダイレクトURIには、要求されたアクセストークン識別子がフラグメントとして記載されている。さらに、認証/認可サーバー400では、発行したアクセストークンを管理するために、アクセストークン識別子に対して発行先のクライアントのクライアント識別子と、要求された権限のスコープとを関連付けたレコードを、後述する表3に示すアクセストークン管理テーブルに追加する。ここでは、アクセストークン識別子をAT_000201とする。認証/認可サーバー400が発行するリダイレクトURIは、アクセストークン識別子をフラグメントに記載して構成され、たとえばhttps://xxx.example.com/#token_id=AT_000201となる。さらに、アクセストークン管理テーブルには、認証/認可サーバー400によって、表3に示すように、アクセストークン識別子AT_000201と、それに関連付けらたクライアント識別子client230と、権限のスコープscopeA、scopeB、scopeC、scopeDとを含むレコードが追加される。
In S1.1, the user 100 accesses the resource server 600 via the web browser 300.
At S1.2, the resource server 600 receives the access token request from the user 100, and distributes the client 230 operating on the web browser to the user 100 via the web browser 300. The distributed client 230 is executed by the web browser 300.
At S1.3, the client 230 sends an authorization request to the authentication / authorization server 400. The authorization request includes the client 230 as the client identifier, scope A, scope B, scope C, scope D as the scope of the authority requested, and https://xxx.example.com as the redirect URI.
At S1.4, the authentication / authorization server 400 collates the client identifier and redirect URI presented from the client 230 at S1.3 with the client management table shown in Table 2 given in advance. Then, it is determined whether a combination of the client identifier of the authorization request and the client identifier and the redirect URI matching the redirect URI is stored in the client management table. The client identifier and redirect URI included in the authorization request received from the client 230 are one of the client identifier client 230 in Table 2 and https://xxx.example.com that is the redirect URI linked thereto. If you do, go to S1.5.
In S1.5, the authentication / authorization server 400 transmits, to the Web browser 300, a script for displaying an authorization confirmation screen.
When the user 100 performs the authorization operation on the authorization confirmation screen in which the authorization confirmation is displayed in S1.5 in S1.6, the Web browser 300 transmits an authorization confirmation message to the authentication / authorization server 400.
In S1.7, the authentication / authorization server 400 that has received the authorization confirmation redirects the web browser 300 using the redirect URI (https://xxx.example.com) whose match is confirmed in S1.4. In this redirect URI, the requested access token identifier is described as a fragment. Further, in the authentication / authorization server 400, in order to manage the issued access token, a record will be described later that associates the client identifier of the client of the issue destination with the access token identifier and the scope of the requested authority. Add to the access token management table shown in 3. Here, the access token identifier is AT_000201. The redirect URI issued by the authentication / authorization server 400 is configured by writing an access token identifier in a fragment, and is, for example, https://xxx.example.com/#token_id=AT_000201. Furthermore, in the access token management table, as shown in Table 3 by the authentication / authorization server 400, the access token identifier AT_000201, the client identifier client 230 associated therewith, and scopes of privileges scopeA, scopeB, scopeC, scopeD. Contains records are added.

Figure 2018180692
Figure 2018180692

S1.8で、Webブラウザ300は、リダイレクトURIからフラグメントの情報を取り出し、ローカルに保持する。
Webブラウザ300は、S1.9において、リダイレクトの指示に従い、リダイレクトURIで指定されたWeb-Hostedクライアントリソース500にフラグメントを取り除いたリクエストを送信する。
In step S1.8, the web browser 300 extracts fragment information from the redirect URI and holds it locally.
In step S1.9, the web browser 300 transmits the request with the fragment removed to the web-hosted client resource 500 specified by the redirect URI in accordance with the redirect instruction.

ここで本来であれば、Web-Hostedクライアントリソース500はリクエストを受信すると、Webページ(通常、埋め込みのスクリプトが含まれるHTMLドキュメント)をWebブラウザに返す(S1.10)。そのWebページでは、Webブラウザ300によって保持されているフラグメントを含む完全なリダイレクトURLにアクセスし、フラグメントに含まれているアクセストークン(とその他のパラメーター)を抽出する(S1.11)。
Webブラウザ300は、S1.10で受信したWebページに含まれるスクリプトをローカルに実行し、アクセストークン識別子を取り出して、クライアント230に送信する(S1.12)。
以上の手順でクライアント230は、アクセストークン識別子を取得できる。またここで取得したアクセストークン識別子を用いることで、クライアントは、リソースサーバー上のリソースにアクセスできるようになる。
Here, originally, when the Web-Hosted client resource 500 receives a request, it returns a Web page (usually, an HTML document including an embedded script) to the Web browser (S1. 10). In the web page, the complete redirect URL including the fragment held by the web browser 300 is accessed, and the access token (and other parameters) included in the fragment are extracted (S1.11).
The web browser 300 locally executes the script included in the web page received in S1.10, extracts the access token identifier, and transmits it to the client 230 (S1.12).
The client 230 can acquire the access token identifier by the above procedure. Also, by using the access token identifier acquired here, the client can access the resource on the resource server.

これに対して、攻撃者がオープンリダイレクタを悪用し、リダイレクトURI(Web-Hostedクライアントリソース500を示す)からさらに攻撃者のサーバーへWebブラウザ300を誘導する場合を説明する。
S1.9で、Webブラウザ300は、リダイレクトの指示に従い、リダイレクトURIで示されたWeb-Hosted クライアントリソース500にリクエストを送信する。ここで、Web-Hosted クライアントリソース500がオープンリダイレクタになってしまっていると、図示していない攻撃者のサーバーにさらにリダイレクトされる。このとき、S1.10で攻撃者のサーバーから偽のWeb-Hosted クライアントリソース(例えばスクリプトを含むWebページ)をダウンロードしたWebブラウザ300が、偽のWeb-Hosted クライアントリソースに、Webブラウザ300が保持するフラグメントを盗まれてしまう。そして、偽のWeb-Hosted クライアントリソースが、攻撃者にフラグメントを横流しし、攻撃者がフラグメントを読み取り、アクセストークン識別子のAT_000201を入手する可能性がある。
On the other hand, the case where the attacker abuses the open redirector and directs the Web browser 300 to the attacker's server from the redirect URI (indicating the Web-Hosted client resource 500) will be described.
In S1.9, the web browser 300 sends a request to the web-hosted client resource 500 indicated by the redirect URI according to the redirect instruction. Here, if the Web-Hosted client resource 500 has become an open redirector, it is further redirected to the server of an attacker (not shown). At this time, the Web browser 300 holds the fake Web-Hosted client resource (for example, a web page including a script) downloaded from the server of the attacker in S1.10 in the fake Web-Hosted client resource. The fragment is stolen. Then, a fake Web-Hosted client resource may traverse the fragment to the attacker, who may read the fragment and obtain the access token identifier AT_000201.

攻撃者は入手したアクセストークン識別子を悪用し、リソースサーバー600だけではなく、リソースサーバー601とリソースサーバー602にも不正にアクセスできてしまう。以上の手順でアクセストークンが漏れてしまう可能性がある。   An attacker can exploit the obtained access token identifier and illegally access not only the resource server 600 but also the resource server 601 and the resource server 602. There is a possibility that the access token may leak in the above procedure.

オープンリダイレクタのサーバー以外に攻撃者からの被害を波及させないために、本発明を実施するための最良の形態について説明する。   The best mode for carrying out the present invention will be described in order not to spread the damage from the attacker other than the server of the open redirector.

<サーバー及び端末のソフトウェア構成>
図4は、本実施形態にかかる、認証/認可サーバー、リソースサーバー、携帯端末の、それぞれのモジュール構成を示す図である。なお認証/認可サーバー400、リソースサーバー600、携帯端末201は、図2のものと同一である。認証/認可サーバー400は認証サーバーモジュール410と、認可サーバーモジュール420を持つ。認証サーバーモジュール410は、ユーザーを認証するためのモジュールである。
<Software configuration of server and terminal>
FIG. 4 is a diagram showing module configurations of the authentication / authorization server, the resource server, and the portable terminal according to the present embodiment. The authentication / authorization server 400, the resource server 600, and the portable terminal 201 are the same as those in FIG. The authentication / authorization server 400 includes an authentication server module 410 and an authorization server module 420. The authentication server module 410 is a module for authenticating a user.

認可サーバーモジュール420はクライアント検証部430、権限限定部440、認可確認部460、トークン発行部470、トークン検証部480を持つ。クライアント検証部430は、クライアントを検証するためのモジュールである。権限限定部440は、アクセストークンに紐付く権限の絞り込みを行うためのモジュールである。認可確認部460は、認可確認画面を表示し、認可確認をするためのモジュールである。トークン発行部470は、トークンを発行するためのモジュールである。トークン検証部480は、トークンの正当性を検証するためのモジュールである。   The authorization server module 420 has a client verification unit 430, an authority limitation unit 440, an authorization confirmation unit 460, a token issuing unit 470, and a token verification unit 480. The client verification unit 430 is a module for verifying the client. The authority limiting unit 440 is a module for narrowing down the authority associated with the access token. The authorization confirmation unit 460 is a module for displaying an authorization confirmation screen and performing authorization confirmation. The token issuing unit 470 is a module for issuing a token. The token verification unit 480 is a module for verifying the legitimacy of the token.

リソースサーバー600は、Web-Hosted クライアントリソースモジュール510とリソースサーバーモジュール610を持つ。Web-Hosted クライアントリソースモジュール510は、クライアントスクリプト520を持つ。リソースサーバーモジュール610はトークン権限確認部620とリソース要求処理部630を持つ。   The resource server 600 includes a Web-Hosted client resource module 510 and a resource server module 610. The web-hosted client resource module 510 has a client script 520. The resource server module 610 has a token authority confirmation unit 620 and a resource request processing unit 630.

携帯端末201はCPU801がROM803或いは外部メモリ811に記憶されたOS210を実行する事で各アプリケーションを制御する。さらに、携帯端末201はWWWを利用するためのユーザーエージェントであるWebブラウザ300と、クライアント230を持つ。   The portable terminal 201 controls each application by the CPU 801 executing the OS 210 stored in the ROM 803 or the external memory 811. Furthermore, the portable terminal 201 has a web browser 300 which is a user agent for using the WWW, and a client 230.

以下に示す、表4、表5、表6、表7は、認証/認可サーバー400が外部メモリに記憶するデータテーブルである。これらデータテーブルは、認証/認可サーバー400の外部メモリではなく、LAN701を介して通信可能に構成された別のサーバーに記憶するよう構成する事も出来る。   Table 4, Table 5, Table 6, and Table 7 shown below are data tables stored in the external memory by the authentication / authorization server 400. These data tables can also be configured to be stored not in the external memory of the authentication / authorization server 400 but in another server configured to be communicable via the LAN 701.

Figure 2018180692
Figure 2018180692

表4は、認証サーバーモジュール410が使用するユーザー管理テーブルである。表4のユーザー管理テーブルは、ユーザー識別子、パスワードから成る。認証/認可サーバー400は、ユーザー識別子、パスワードの情報の組を検証し、正しければ認証情報を生成することで、各ユーザーもしくはクライアントを認証する機能を備える。 Table 4 is a user management table used by the authentication server module 410. The user management table of Table 4 consists of a user identifier and a password. The authentication / authorization server 400 has a function of authenticating each user or client by verifying a set of information of a user identifier and a password, and generating authentication information if correct.

Figure 2018180692
Figure 2018180692

表5は、クライアント検証部430が使用するクライアント管理テーブルである。表5のクライアント管理テーブルはクライアント識別子と、それに関連付けられたリダイレクトURIから成る。 Table 5 is a client management table used by the client verification unit 430. The client management table of Table 5 comprises a client identifier and a redirect URI associated with it.

Figure 2018180692
Figure 2018180692

表6は、権限限定部440が使用するリダイレクトURIスコープ紐付け管理テーブルである。表6のリダイレクトURIスコープ紐付け管理テーブルは、リダイレクトURIと、そのリダイレクトURIを介してImplicit Grant フローを実行する場合に、認可リクエストの元であるクライアントに対して許可される権限の範囲を示すスコープ(以降、クライアントスコープと称し、クライアントの権限情報とも呼ぶ)から成る。表6のリダイレクトURIスコープ紐付け管理テーブルの処理詳細については後述する。 Table 6 is a redirect URI scope tying management table used by the authority limiting unit 440. The redirect URI scope tying management table in Table 6 is a scope that indicates the redirect URI and the scope of the permission granted to the client that is the source of the authorization request when executing the Implicit Grant flow via the redirect URI. (Hereinafter referred to as client scope, also referred to as client authority information). Details of processing of the redirect URI scope tying management table of Table 6 will be described later.

Figure 2018180692
Figure 2018180692

表7は、トークン発行部470が生成するアクセストークン管理テーブルである。表7のアクセストークン管理テーブルは、アクセストークン識別子、クライアント識別子、ユーザー識別子、クライアントのスコープ、有効期限を関連付けたレコードから成る。表7のアクセストークン管理テーブルの処理詳細については後述する。 Table 7 is an access token management table generated by the token issuing unit 470. The access token management table of Table 7 is composed of an access token identifier, a client identifier, a user identifier, a scope of the client, and a record in which an expiration date is associated. Details of processing of the access token management table of Table 7 will be described later.

<本実施形態の認可シーケンス>
ここで、携帯端末201上のWebブラウザを用いてリソースサービスを利用するための、本実施形態に係る認可フローを表すシーケンスについて、図5を用いて説明する。図5は、OAuth2.0仕様のImplicit Grant フローに本実施形態に独自の拡張を加えた認可フローである。
<Authorization Sequence of This Embodiment>
Here, a sequence representing an authorization flow according to the present embodiment for using a resource service using a web browser on the portable terminal 201 will be described with reference to FIG. FIG. 5 is an authorization flow obtained by adding an extension unique to the present embodiment to the Implicit Grant flow of the OAuth 2.0 specification.

まず、ユーザー100がWebブラウザ300を介して、リソースサーバー600にリソース使用開始のためのアクセスを試行する(S5.1)。
リソースサーバー600は、S5.1でユーザー100からのアクセストークン要求を受信し、Webブラウザ300を介して、ユーザー100にWebブラウザ上で実行されるクライアント230を配布する(S5.2)。
Webブラウザ300で実行されるクライアント230は、Webブラウザ300を介して認証/認可サーバー400に対して、認可リクエストを送信する(S5.3)。認可リクエストは、クライアント識別子と、要求する権限のスコープと、リダイレクトURIとを含む(S5.3)。ここで、リダイレクトURIとは、認証/認可サーバー400がWebブラウザ300をWeb-Hosted クライアントリソース500へ戻すためのURIを意味する。
認証/認可サーバー400の認証サーバーモジュール410は、クライアント230からの認可リクエストを受信する(S5.4)。
First, the user 100 tries to access the resource server 600 for resource usage start via the web browser 300 (S5.1).
The resource server 600 receives the access token request from the user 100 in S5.1, and distributes the client 230 executed on the web browser to the user 100 via the web browser 300 (S5.2).
The client 230 executed by the web browser 300 transmits an authorization request to the authentication / authorization server 400 via the web browser 300 (S5.3). The authorization request includes the client identifier, the scope of the authority to request, and the redirect URI (S5.3). Here, the redirect URI means a URI for the authentication / authorization server 400 to return the web browser 300 to the web-hosted client resource 500.
The authentication server module 410 of the authentication / authorization server 400 receives the authorization request from the client 230 (S5.4).

認証/認可サーバー400の認証サーバーモジュール410は、S5.4で認可リクエストを受信すると、ユーザーが未認証の場合には、後述のS5.5、S5.6、S5.7を行う。
認証/認可サーバー400の認証サーバーモジュール410は、ユーザー認証画面を表示(不図示)するスクリプトを送信する(S5.5)。ユーザー認証画面の具体的な例としては、ユーザーにユーザー識別子とパスワードを入力するように促す画面を挙げられる(S5.5)。
ユーザー100は、ユーザー識別子とパスワードをS5.5で表示されたユーザー認証画面で認証操作を行う(S5.6)
認証/認可サーバー400の認証サーバーモジュール410は、S5.6で受信したユーザー識別子とパスワードが表4に示すユーザー管理テーブル内のユーザー識別子とパスワードの組み合わせと一致するかを判定する(S5.7)。S5.7で一致するユーザー識別子とパスワードの組み合わせがユーザー管理テーブルに登録されていると判定された場合に、次のシーケンスに進める。
When the authentication server module 410 of the authentication / authorization server 400 receives the authorization request in S5.4, if the user is unauthenticated, it performs S5.5, S5.6, and S5.7 described later.
The authentication server module 410 of the authentication / authorization server 400 sends a script (not shown) for displaying a user authentication screen (S5.5). A specific example of the user authentication screen may be a screen prompting the user to enter a user identifier and a password (S5.5).
The user 100 performs an authentication operation on the user authentication screen displayed in S5.5 for the user identifier and password (S5.6)
The authentication server module 410 of the authentication / authorization server 400 determines whether the user identifier and password received in S5.6 match the combination of the user identifier and password in the user management table shown in Table 4 (S5.7) . If it is determined in S5.7 that the combination of the matching user identifier and password is registered in the user management table, the process proceeds to the next sequence.

認証/認可サーバー400のクライアント検証部430は、S5.3でクライアント230から受信したクライアント識別子とリダイレクトURIが、表5に示すクライアント管理テーブル内のクライアント識別子とリダイレクトURIの組み合わせに一致するかを判定する(S5.8)。S5.8で一致するクライアント識別子とリダイレクトURIの組み合わせがクライアント管理テーブルに登録されている場合に、次のシーケンスに進める。
認証/認可サーバー400の権限限定部440は、S5.3でクライアント230から受信した認可リクエストに含まれたリダイレクトURIが、表6に示すリダイレクトURIスコープ紐付け管理テーブルに含まれるか否かを判定する(S5.9)。含まれる場合には、権限限定部440は、S5.3でクライアント230から受信した認可リクエストに含まれた、要求する権限のスコープを、表6に示すリダイレクトURIスコープ紐付け管理テーブルの、該当するリダイレクトURIに紐付けられたクライアントスコープで絞り込む(S5.9)。すなわち、認可リクエストに含まれたスコープが、表6に示すリダイレクトURIスコープ紐付け管理テーブルの、該当するリダイレクトURIに紐付けられたクライアントスコープ以外の部分についてはリクエストと拒否する。さらに換言すれば、要求されたスコープとその要求で指定されるリダイレクトURIに対して予め設定されたスコープとの共通部分以外については権限を認めない、ということもできる。なお、オープンリダイレクタとなっているリソースサーバー以外に不正アクセスが及ぶことを防げるために、リダイレクトURIスコープ紐付け管理テーブルに登録されるスコープは、オープンリダイレクタとなっているリソースサーバーにアクセス権限を限定するものであることが望ましい。
The client verification unit 430 of the authentication / authorization server 400 determines whether the client identifier and the redirect URI received from the client 230 in S5.3 match the combination of the client identifier and the redirect URI in the client management table shown in Table 5. (S5.8). When the combination of the matching client identifier and the redirect URI is registered in the client management table in S5.8, the process proceeds to the next sequence.
The authority limiting unit 440 of the authentication / authorization server 400 determines whether or not the redirect URI included in the authorization request received from the client 230 in S5.3 is included in the redirect URI scope tying management table shown in Table 6. (S5.9). When it is included, the authority limiting unit 440 corresponds to the scope of the requesting authority included in the authorization request received from the client 230 in S5.3 in the redirect URI scope tying management table shown in Table 6. Filter by client scope linked to redirect URI (S5.9). That is, the scope included in the authorization request rejects the request and the part of the redirect URI scope tying management table shown in Table 6 other than the client scope linked to the corresponding redirect URI. Furthermore, in other words, it is possible to deny authority only to the common part between the requested scope and the scope set in advance for the redirect URI specified by the request. In addition, in order to prevent unauthorized access from reaching the resource server that is an open redirector, the scope registered in the redirect URI scope tying management table limits the access authority to the resource server that is an open redirector. Is desirable.

S5.9で絞り込まれたスコープが1つ以上ある場合には、認証/認可サーバー400の認可確認部460は、Webブラウザ300に対して、認可確認画面を表示するスクリプトを送信する(S5.10)。認可確認画面の具体的な例としては、ユーザーにユーザーの権限をクライアントに委譲することを許可するか拒否するかを問い合わせる内容を表示する画面と、ユーザーによるボタン入力を促す画面を挙げられる。
ユーザー100は、認可確認をS5.10で表示された認可確認画面で認可操作を行う(S5.11)。認証/認可サーバー400の認可確認部460は、ユーザー100がS5.11にてユーザーが認可操作したことを受信する(S5.11)。認可操作を受信した場合に、次のシーケンスに進める。
認証/認可サーバー400のトークン発行部470は、認可操作の受信に応じてアクセストークンを発行する(S5.12)。具体的には、表7に示すアクセストークン管理テーブルに、発行したアクセストークンのアクセストークン識別子と、そのアクセストークンの要求元であるクライアント識別子と、権限の委譲を認可したユーザー識別子と、発行したアクセストークンに対して認められた権限の範囲であるクライアントスコープと、発行したアクセストークンの有効期限のレコードとを追加する(S5.12)。
認証/認可サーバー400のトークン発行部470は、Webブラウザ300をリダイレクトさせるアクセストークンレスポンスをWebブラウザ300に送信する(S5.13)。そのアクセストークンレスポンスには、認可リクエストに含まれたリダイレクトURIと一致するとS5.8で判定したリダイレクトURIに、トークン発行部470で発行したアクセストークン識別子をフラグメントとして付加したリダイレクトURIが指定されている。
If there is one or more scopes narrowed down in S5.9, the authorization confirmation unit 460 of the authentication / authorization server 400 transmits a script for displaying the authorization confirmation screen to the Web browser 300 (S5.10). ). Specific examples of the authorization confirmation screen include a screen displaying a content asking whether the user is permitted or denied to transfer the user's authority to the client, and a screen prompting the user to input a button.
The user 100 performs the authorization operation on the authorization confirmation screen displayed in S5.10 (S5.11). The authorization confirmation unit 460 of the authentication / authorization server 400 receives that the user 100 performs the authorization operation in S5.11 (S5.11). If an authorization operation is received, it proceeds to the next sequence.
The token issuing unit 470 of the authentication / authorization server 400 issues an access token in response to the reception of the authorization operation (S5.12). Specifically, in the access token management table shown in Table 7, the access token identifier of the issued access token, the client identifier that is the request source of the access token, the user identifier that has authorized the transfer of the authority, and the issued access The client scope which is the scope of the authority granted to the token and the record of the expiration date of the issued access token are added (S5.12).
The token issuing unit 470 of the authentication / authorization server 400 transmits an access token response for redirecting the web browser 300 to the web browser 300 (S5.13). In the access token response, a redirect URI is specified in which the access token identifier issued by the token issuing unit 470 is added as a fragment to the redirect URI determined in S5.8 when it matches the redirect URI included in the authorization request. .

Webブラウザ300は、リダイレクトURIから、フラグメントの情報を取り出し、ローカルに保持する(S5.14)。
Webブラウザ300は、リダイレクトの指示に従い、指定されたリダイレクトURIに対して、Web-Hosted クライアントリソース500にフラグメントを取り除いたリダイレクトURIリクエストを送信する(S5.15)。
The web browser 300 extracts fragment information from the redirect URI and holds it locally (S5.14).
The web browser 300 transmits a redirect URI request with the fragment removed to the Web-Hosted client resource 500 to the designated redirect URI according to the redirect instruction (S5.15).

Web-Hosted クライアントリソース500はリクエストを受信すると、Webページ (通常、埋め込みのスクリプトが含まれるHTMLドキュメント) すなわちアクセストークン取得スクリプトレスポンスをWebブラウザに返す(S5.16)。
Webページでは、S5.14にて、Webブラウザ300によって保持されているフラグメントを含む完全なリダイレクトURIにアクセスし、フラグメントに含まれているアクセストークン識別子(とその他のパラメーター)を抽出する(S5.17)。
Webブラウザ300はアクセストークン識別子をクライアント230に送信する(S5.18)。
クライアント230は、認証/認可サーバー400のトークン発行部470で発行されたアクセストークンを使用して保護されたサーバー上にあるリソースへのアクセスのため、リソースサーバー600に対して、リソースリクエストを送信する (S5.19)。このリソースリクエストには、アクセストークン識別子が含まれている(S5.19)。
リソースサーバー600のトークン権限確認部620は、クライアント230から受信したアクセストークン識別子を元にリソースリクエストで要求されたリソースに対するアクセスを許可するか否かを判定する。リソースサーバー600のトークン権限確認部620は、前記判定のために、検証リクエストを認証/認可サーバー400に送信する(S5.20)。検証リクエストには、受信したアクセストークン識別子とリソースサーバー600でリソースを使用するために必要な権限のスコープとが含まれる。
検証リクエストを受信した認証/認可サーバー400のトークン検証部480では、表7のアクセストークン管理テーブルを参照してアクセストークンを検証する。トークン検証部480は、検証リクエストと共に受信したアクセストークンの有効期限が切れていないことを確認する。さらに、トークン検証部480は、S5.20でリソースサーバー600から受信したアクセストークン識別子に紐付けられたリソースサーバー600でリソースを使用するための権限のスコープが、表7に示すクライアントスコープの範囲内であることを確認する(S5.21)。
認証/認可サーバー400のトークン検証部480は、検証結果に問題がなければ、すなわち、アクセストークンが有効であり、アクセストークンに紐づけられたスコープが許されたスコープの範囲であれば、検証の成功をリソースサーバー600へ返す(S5.22)。
リソースサーバー600のリソース要求処理部630は、クライアント230に対して、リソースをレスポンスする(S5.23)。
以上が本実施例の形態に係る認可フローである。
When the Web-Hosted client resource 500 receives the request, it returns a Web page (usually, an HTML document containing embedded script), that is, an access token acquisition script response to the Web browser (S5.16).
In the web page, at S5.14, the complete redirect URI including the fragment held by the web browser 300 is accessed, and the access token identifier (and other parameters) included in the fragment are extracted (S5. 17).
The web browser 300 transmits the access token identifier to the client 230 (S5.18).
The client 230 sends a resource request to the resource server 600 for access to a resource located on a server protected using the access token issued by the token issuing unit 470 of the authentication / authorization server 400. (S5.19). The resource request contains an access token identifier (S5.19).
Based on the access token identifier received from the client 230, the token authority confirmation unit 620 of the resource server 600 determines whether to permit access to the resource requested by the resource request. The token authority confirmation unit 620 of the resource server 600 transmits a verification request to the authentication / authorization server 400 for the determination (S5.20). The verification request includes the received access token identifier and the scope of the authority necessary to use the resource in the resource server 600.
The token verification unit 480 of the authentication / authorization server 400 having received the verification request refers to the access token management table of Table 7 to verify the access token. The token verification unit 480 confirms that the access token received together with the verification request has not expired. Furthermore, the token verification unit 480 has the scope of the authority for using the resource in the resource server 600 linked to the access token identifier received from the resource server 600 in S5.20 within the scope of the client scope shown in Table 7. (S5.21).
If there is no problem in the verification result, that is, if the access token is valid and the scope associated with the access token is within the scope of the permitted scope, the token verification unit 480 of the authentication / authorization server 400 performs verification. The success is returned to the resource server 600 (S5.22).
The resource request processing unit 630 of the resource server 600 responds the resource to the client 230 (S5.23).
The above is the approval flow according to the form of the present embodiment.

<認証認可サーバーによるアクセストークン発行手順>
ここで、本実施例の特徴である認証/認可サーバー400でのアクセストークンを発行するまでのフローについて、図6a、図6bを用いて詳細を説明する。次いでアクセストークンに紐付く権限の絞り込みについて前述のクライアント230について説明する。
<Procedure of Access Token Issue by Authentication Authorization Server>
Here, the flow until issuing an access token in the authentication / authorization server 400, which is a feature of the present embodiment, will be described in detail with reference to FIGS. 6a and 6b. Next, narrowing down of the authority associated with the access token will be described for the client 230 described above.

図6aのS601にて、認証サーバーモジュール410は、クライアント230から認可リクエストを受信すると、S602へ進める。
図6aのS602にて、認証サーバーモジュール410は、ユーザーが認証済みか否かを判定し、ユーザー認証済みの場合にはS604へ進め、未認証の場合には、S603へ進める。S603のユーザー認証処理については、図6bを参照して後述する。
図6aのS604にて、クライアント検証部430は、S601で受信した認可リクエストに含まれるクライアント識別子とリダイレクトURIを取り出し、認証/認可サーバー400のローカルに保存する。その後、S605へ進める。
図6aのS605にて、クライアント検証部430は、S604で保存したクライアント識別子とリダイレクトURIに一致する、クライアント識別子とリダイレクトURIの組み合わせが表5に示すクライアント管理テーブル内にあるか否かを判定する。クライアント検証部430は、判定の結果、一致すると判断された場合には、S606へ進める。一致しない場合には、S690へ進める。
図6aのS606にて、権限限定部440は、S601で受信した認可リクエストに含まれるクライアントが要求する権限のスコープを取り出し、認証/認可サーバー400のローカルに保存する。その後、S607へ進める。
図6aのS607にて、権限限定部440は、S604で保存したリダイレクトURIが表6に示すリダイレクトURIスコープ紐付け管理テーブルに含まれるか否かを確認する。権限限定部440は、含まれる場合には、S608へ進める。含まれない場合には、S690へ進める。
図6aのS608にて、権限限定部440は、S606で保存したクライアントが要求する権限のスコープを、表6に示すリダイレクトURIスコープ紐付け管理テーブルのリダイレクトURIに紐付けられたクライアントスコープで絞り込む。なお、ここでは、絞り込むと表現したが、表6に示すリダイレクトURIスコープ紐付け管理テーブルのリダイレクトURIに紐付けられたクライアントスコープ以外を含む場合は、リダイレクトURIに紐づけられたスコープ外の部分については拒否するとしてもよい。その後、S609へ進める。
図6aのS609にて、権限限定部440は、S608にて絞り込まれた結果、残ったスコープが1つ以上の場合には、S610へ進める。一方、絞り込まれたスコープが1つもない場合には、S690へ進める。
図6aのS690にて、権限限定部440は、クライアント230にエラーを通知して終了する。
図6aのS610にて、認可確認部460は、認可確認画面を表示して、ユーザーに認可操作を促す。その後、S611へ進める。ユーザーは、認可確認画面上において承認すなわち許可または拒否を入力する。
図6aのS611にて、認可確認部460は、ユーザーが求められた権限委譲を認可したことを受信した場合には、S612へ進める。ユーザーが求められた権限委譲を拒否したことを受信した場合には、S691へ進める。
図6aのS612にて、トークン発行部470は、アクセストークンを発行する。本実施例では、トークン発行部470は、表7のアクセストークン管理テーブルに示すように、アクセストークン識別子と、クライアント識別子と、ユーザー識別子と、クライアントスコープと、有効期限のレコードを追加する。その後、S613へ進める。
図6aのS613にて、トークン発行部470は、フラグメントにアクセストークン識別子を記載して、クライアント230に返す。その後、終了する。
図6aのS691にて、トークン発行部470は、クライアント230に認可失敗を通知して終了する。
When the authentication server module 410 receives an authorization request from the client 230 in S601 of FIG. 6a, the processing proceeds to S602.
In S602 of FIG. 6A, the authentication server module 410 determines whether or not the user has been authenticated, and proceeds to S604 if the user has been authenticated, and proceeds to S603 if the user has not been authenticated. The user authentication process of S603 will be described later with reference to FIG. 6b.
In S604 of FIG. 6A, the client verification unit 430 extracts the client identifier and the redirect URI included in the authorization request received in S601, and stores the client identifier and the redirect URI locally in the authentication / authorization server 400. Thereafter, the process proceeds to step S605.
In S605 of FIG. 6A, the client verification unit 430 determines whether or not the combination of the client identifier and the redirect URI that matches the client identifier and the redirect URI stored in S604 is in the client management table shown in Table 5. . If the client verification unit 430 determines that they match as a result of the determination, the process advances to step S606. If they do not match, the process advances to step S690.
In S606 of FIG. 6A, the authority limiting unit 440 extracts the scope of the authority requested by the client, which is included in the authorization request received in S601, and stores the scope locally in the authentication / authorization server 400. Thereafter, the process advances to step S607.
In S607 of FIG. 6A, the authority limiting unit 440 confirms whether the redirect URI stored in S604 is included in the redirect URI scope tying management table shown in Table 6. If it is included, the authority limiting unit 440 proceeds to S608. If not included, the process proceeds to S690.
In S608 of FIG. 6A, the authority limiting unit 440 narrows down the scope of the authority requested by the client stored in S606 with the client scope linked to the redirect URI in the redirect URI scope tying management table shown in Table 6. In addition, although it expressed as narrowing down here, when including the client scope other than the client scope linked to the redirect URI of the redirect URI scope tying management table shown in Table 6, about the part out of scope linked to the redirect URI May refuse. Thereafter, the process advances to step S609.
In S609 of FIG. 6A, the authority limiting unit 440 proceeds to S610 if one or more scopes remain as a result of narrowing down in S608. On the other hand, if there is no scope that has been narrowed down, the process proceeds to S690.
In S690 of FIG. 6A, the authority limiting unit 440 notifies the client 230 of an error and ends.
In S610 of FIG. 6A, the authorization confirmation unit 460 displays an authorization confirmation screen to urge the user to perform an authorization operation. Thereafter, the process proceeds to step S611. The user inputs approval or permission or denial on the approval confirmation screen.
If the authorization confirmation unit 460 receives that the user has authorized the requested authority transfer in S611 of FIG. 6A, the processing proceeds to S612. If the user receives the rejection of the requested authority transfer, the process advances to step S691.
At S612 in FIG. 6a, the token issuing unit 470 issues an access token. In the present embodiment, as shown in the access token management table of Table 7, the token issuing unit 470 adds the access token identifier, the client identifier, the user identifier, the client scope, and the record of the expiration date. After that, it advances to S613.
At S613 in FIG. 6A, the token issuing unit 470 writes the access token identifier in the fragment and returns it to the client 230. After that, it ends.
In S691 of FIG. 6A, the token issuing unit 470 notifies the client 230 of authorization failure and ends.

ここで、S603のユーザー認証処理について、図6bを用いて処理フローを説明する。
図6bのS620にて、認証サーバーモジュール410は、ユーザー認証をユーザーにさせるためにユーザー認証画面を表示する。
図6bのS621にて、認証サーバーモジュール410は、ユーザーに入力された認証情報を受信した後、S622へ進める。
図6bのS622にて、認証サーバーモジュール410は、S621で受信したユーザー識別子とパスワードを検証する。そのためにS622では、認証サーバーモジュール410は、S621で受信したユーザー識別子とパスワードが表4に示すユーザー管理テーブル内のユーザー識別子とパスワードの組み合わせと一致するかを判定する。認証サーバーモジュール410は、検証の結果、一致すると判断された場合には、S623へ進める。一致しない場合には、S692へ進める。
図6bのS623にて、認証サーバーモジュール410は、不図示の認証トークン管理テーブルにレコードを追加する。
図6bのS692にて、認証サーバーモジュール410は、クライアント230にログインエラーを通知し、処理を終了する。
Here, the processing flow of the user authentication processing of S603 will be described using FIG. 6b.
At S620 of FIG. 6b, the authentication server module 410 displays a user authentication screen to allow the user to perform user authentication.
After receiving the authentication information input by the user in S621 of FIG. 6B, the authentication server module 410 proceeds to S622.
In S622 of FIG. 6 b, the authentication server module 410 verifies the user identifier and password received in S621. Therefore, in S622, the authentication server module 410 determines whether the user identifier and password received in S621 match the combination of the user identifier and password in the user management table shown in Table 4. If it is determined that the authentication server module 410 matches as a result of the verification, the processing proceeds to step S623. If they do not match, the process advances to step S692.
In S623 of FIG. 6B, the authentication server module 410 adds a record to an authentication token management table (not shown).
At S692 of FIG. 6B, the authentication server module 410 notifies the client 230 of a login error, and ends the process.

<処理の具体例>
つぎに、前記処理フローに沿って、具体的な例を取り上げて詳しく処理を説明する。ここで、ユーザーは、ユーザー識別子uid00001、パスワードLigajD12f3KLGでユーザー認証しているものとし、ユーザーは、リソースサーバー600からクライアント230を受信しているものとする。またクライアント230の識別子をclient230とする。
S601にて、認証サーバーモジュール410は、クライアント230から、認可リクエストを受信し、S602へ進める。
S602にて、認証サーバーモジュール410は、ユーザー認証が済んでいるため、S604へ進める。
S604にて、クライアント検証部430は、S601で受信した認可リクエストに含まれるクライアント識別子とリダイレクトURIを認証/認可サーバー400のローカルに保存する。本実施例では、クライアント検証部430は、クライアント識別子としてclient230を、リダイレクトURIとしてhttps://xxx.example.comを認証/認可サーバー400のローカルに保存し、S605へ進める。
S605にて、クライアント検証部430は、S604で取り出したクライアント識別子とリダイレクトURIが、表5に示すクライアント管理テーブル内のクライアント識別子とリダイレクトURIの組み合わせと一致するため、S606へ進める。
S606にて、権限限定部440は、S601で受信した認可リクエストに含まれるクライアントが要求する権限のスコープを取り出し、認証/認可サーバー400のローカルに保存する。本実施例では、権限限定部440は、scopeA、scopeB、scopeC、scopeDを保存し、S607へ進める。
S607にて、権限限定部440は、S604で取り出したリダイレクトURIが表6に示すリダイレクトURIスコープ紐付け管理テーブルに含まれるか否かを確認する。本実施例では、https://xxx.example.comが一致するリダイレクトURIであるため、S608へ進める。
S608にて、権限限定部440は、要求する権限のスコープを表6に示すリダイレクトURIスコープ紐付け管理テーブルのリダイレクトURIに紐付けられたクライアントスコープで絞り込む。クライアント230が要求する権限は、scopeA、scopeB、scopeC、scopeDであるのに対して、表6のリダイレクトURIスコープ紐付け管理テーブル内のクライアントスコープには、scopeAが格納されている。クライアント230が要求する権限のスコープは、権限限定部440によって、scopeAに絞りこまれる。その後、S609へ進める。
S609にて、権限限定部440は、S608にて絞り込んだ結果、scopeAが残ったため、S610へ進める。
S610にて、認可確認部460は、認可確認画面を表示して、ユーザーが認可操作を実施する。その後、S611へ進める。
S611にて、認可確認部460は、ユーザーが求められた権限委譲を認可したことを受信したため、S612へ進める。
S612にて、トークン発行部470は、アクセストークンを発行する。表7に示すように、アクセストークン識別子がAT_000001、クライアント識別子がclient230、ユーザー識別子がuid00001、クライアントスコープがscopeA、有効期限2016/11/14/12:00.00として、レコードが追加される。その後、S613へ進める。
S613にて、トークン発行部470は、フラグメントにアクセストークン識別子を記載して、クライアント230に返す。このとき、トークン発行部470から発行されるリダイレクトURIは、アクセストークンの識別子をフラグメントに記載して、https://xxx.example.com/#token_id=AT_000001となる。
<Specific example of processing>
Next, the process will be described in detail by taking a specific example along the process flow. Here, it is assumed that the user authenticates the user with the user identifier uid00001 and the password LigajD12f3KLG, and the user receives the client 230 from the resource server 600. Also, let us say that the identifier of the client 230 is client 230.
At S601, the authentication server module 410 receives an authorization request from the client 230, and proceeds to S602.
At S602, the authentication server module 410 proceeds to S604 because user authentication has been completed.
In S604, the client verification unit 430 stores the client identifier and the redirect URI included in the authorization request received in S601 locally in the authentication / authorization server 400. In the present embodiment, the client verification unit 430 stores the client 230 as the client identifier and https://xxx.example.com as the redirect URI locally on the authentication / authorization server 400, and proceeds to S605.
In step S605, the client verification unit 430 proceeds to step S606 because the client identifier and redirect URI extracted in step S604 match the combination of the client identifier and redirect URI in the client management table shown in Table 5.
In S606, the authority limiting unit 440 extracts the scope of the authority requested by the client included in the authorization request received in S601, and stores the scope locally in the authentication / authorization server 400. In the present embodiment, the authority limiting unit 440 stores scope A, scope B, scope C, and scope D, and proceeds to S607.
In S607, the authority limiting unit 440 confirms whether the redirect URI extracted in S604 is included in the redirect URI scope tying management table shown in Table 6. In the present embodiment, since https://xxx.example.com is a matching redirect URI, the process advances to step S608.
In S608, the authority limiting unit 440 narrows down the scope of the authority to be requested by the client scope linked to the redirect URI in the redirect URI scope tying management table shown in Table 6. The authority requested by the client 230 is scopeA, scopeB, scopeC, and scopeD, whereas scopeA is stored in the client scope in the redirect URI scope tying management table of Table 6. The scope of the authority requested by the client 230 is narrowed down to scope A by the authority limiting unit 440. Thereafter, the process advances to step S609.
In step S609, the authority limiting unit 440 advances the process to step S610 because the scope A remains as a result of narrowing down in step S608.
In S610, the authorization confirmation unit 460 displays an authorization confirmation screen, and the user performs an authorization operation. Thereafter, the process proceeds to step S611.
In step S611, the authorization confirmation unit 460 proceeds to step S612 because it has received that the user has authorized the requested authority transfer.
At S612, token issuing unit 470 issues an access token. As shown in Table 7, a record is added with the access token identifier AT_000001, the client identifier client230, the user identifier uid00001, the client scope scopeA, and the expiration date 2016/11/14/12: 00.00. After that, it advances to S613.
In S613, the token issuing unit 470 describes the access token identifier in the fragment and returns it to the client 230. At this time, the redirect URI issued from the token issuing unit 470 describes the identifier of the access token in the fragment, and becomes https://xxx.example.com/#token_id=AT_000001.

以上が実施形態1の詳細である。以上の構成により、認証/認可サーバーは、発行するアクセストークンに紐付く権限の絞り込みを実現できる。これによって、Implicit Grant フローにおけるアクセストークンが仮に漏えいした場合でも、攻撃者による不正アクセスの範囲を、リダイレクト先に紐づけられた権限の範囲に限定できる。これにより不正アクセスがあったとしても、その拡大を抑制できる。   The above is the details of the first embodiment. With the above configuration, the authentication / authorization server can realize narrowing of the authority associated with the access token to be issued. By this, even if the access token in the Implicit Grant flow is temporarily leaked, the range of unauthorized access by the attacker can be limited to the range of authority linked to the redirect destination. Thereby, even if there is unauthorized access, the expansion can be suppressed.

[実施形態2]
実施形態1においては、クライアントの権限をリダイレクトURIに応じて絞り込むことができるが、ユーザーの権限は、認証/認可サーバーによって、絞り込まれていない。そのため、実施形態1ではアクセストークン漏えい時に、絞り込まれていないユーザーの権限が漏えいしてしまう課題がある。実施形態2の第一の目的は、ユーザーの権限の絞り込みを行うことである。この絞り込みをアクセストークン発行時に行うと、認可確認画面に表示した委譲するユーザーの権限と実際にアクセストークンに紐付けられるユーザーの権限に差異が生じ、ユーザーが誤認識してしまい、ユーザビリティが低下する課題が生じる。実施形態2の二つ目の目的は、認可確認画面表示時に、実際にアクセストークンに紐付けるスコープを列挙することで、その誤認識を防止することである。
本実施形態では、クライアントの権限をリダイレクトURIに応じて絞り込む処理に追加して、ユーザーの権限をリダイレクトURIに応じて絞り込み、さらに絞り込んだユーザーの権限を認可確認画面に表示することで、ユーザビリティの向上を図る。ここで、ユーザー権限とは、例えば携帯端末201で実行されるソフトウェアに付与される権限であり、人のユーザーに与えられるクライアント権限と区別される。このように本実施形態では、複数種類の権限それぞれについて、要求されたスコープをさらに限定する。
Second Embodiment
In the first embodiment, although the client's authority can be narrowed according to the redirect URI, the user's authority is not narrowed by the authentication / authorization server. Therefore, in the first embodiment, when the access token is leaked, there is a problem that the authority of the user who is not narrowed down is leaked. The first object of the second embodiment is to narrow down the user's authority. If this narrowing down is performed when the access token is issued, the authority of the user to be transferred displayed on the authorization confirmation screen is different from the authority of the user actually linked to the access token, and the user misrecognizes, and the usability decreases. A problem arises. The second object of the second embodiment is to prevent such erroneous recognition by listing the scopes actually associated with the access token when the authorization confirmation screen is displayed.
In this embodiment, the client authority is added to the process of narrowing down according to the redirect URI, the user right is narrowed down according to the redirect URI, and the narrowed down user's right is displayed on the authorization confirmation screen. Improve. Here, the user authority is, for example, an authority given to software executed on the mobile terminal 201, and is distinguished from a client authority given to a human user. As described above, in the present embodiment, the requested scope is further limited for each of a plurality of types of authority.

次に、実施形態2について図面を用いて説明する。なお実施形態1と共通の部分については説明を省略し、以下では差異部分のみ説明する。本実施形態は、図2に示す構成のネットワーク上に実現され、ユーザーが携帯端末201を所持しており、ユーザーが全リソースサーバーへの全権限のスコープscopeK、scopeL、scopeMを保持しているものとする。このとき、クライアント230は、クライアントの権限であるscopeA、scopeB、scopeCの他にユーザーの権限であるscopeK、scopeL、scopeMを認証/認可サーバー400に要求する。本実施形態の特徴であるユーザーの権限をリダイレクトURIで絞り込むために、表6に示したリダイレクトURIスコープ紐付け管理テーブルを拡張する。具体的には、表6のリダイレクトURIスコープ紐付け管理テーブルに、リダイレクトURIを介してImplicit Grant フローを実行する場合に、ユーザーに対して許可される権限の範囲を示すスコープ(以降、オーナースコープと称する)を追加し拡張する。表8に追加拡張した拡張リダイレクトURIスコープ紐付け管理テーブルを示す。さらに、表7に示したアクセストークン管理テーブルも表8同様、オーナースコープを追加拡張する。表9に追加拡張した拡張アクセストークン管理テーブルを示す。   Next, a second embodiment will be described using the drawings. The description of the parts common to the first embodiment will be omitted, and only the differences will be described below. The present embodiment is realized on the network configured as shown in FIG. 2, and the user holds the portable terminal 201, and the user holds the scopes scope K, scope L, and scope M of all rights to all resource servers. I assume. At this time, the client 230 requests the authentication / authorization server 400 from the client's authority scopeA, scopeB, scopeC, as well as the user's authority scopeK, scopeL, scopeM. The redirect URI scope tying management table shown in Table 6 is expanded in order to narrow down the authority of the user, which is a feature of the present embodiment, by the redirect URI. Specifically, in the redirect URI scope tying management table of Table 6, when executing the Implicit Grant flow via the redirect URI, a scope indicating the scope of the authority granted to the user (hereinafter, owner scope and Add and extend). The extended redirect URI scope tying management table which expanded in Table 8 is shown. Furthermore, the access token management table shown in Table 7 also extends the owner scope similarly to Table 8. Table 9 shows the expanded access token management table.

表8、表9は、認証/認可サーバー400が外部メモリに記憶するデータテーブルである。これらデータテーブルは、認証/認可サーバー400の外部メモリではなく、LAN701を介して通信可能に構成された別のサーバーに記憶するよう構成する事もできる。   Tables 8 and 9 are data tables stored in the external memory by the authentication / authorization server 400. These data tables may be configured to be stored not on the external memory of the authentication / authorization server 400 but on another server configured to be communicable via the LAN 701.

Figure 2018180692
Figure 2018180692

表8は、権限限定部440が使用する拡張リダイレクトURIスコープ紐付け管理テーブルである。リダイレクトURIがhttps://xxx.example.comに対して、オーナースコープがscopeKで与えられている。リダイレクトURIがhttps://yyy.example.comに対して、オーナースコープがscopeLで与えられている。リダイレクトURIがhttps://zzz.example.comに対して、オーナースコープがscopeMで与えられている。表8に示す拡張リダイレクトURIスコープ紐付け管理テーブルの処理詳細については後述する。 Table 8 is an extended redirect URI scope tying management table used by the authority limiting unit 440. An owner scope is given by scopeK for the redirect URI https://xxx.example.com. An owner scope is given by scopeL for https://yyy.example.com as the redirect URI. An owner scope is given by scopeM for https://zzz.example.com as the redirect URI. Details of processing of the extended redirect URI scope tying management table shown in Table 8 will be described later.

Figure 2018180692
Figure 2018180692

表9は、トークン発行部470が生成する拡張アクセストークン管理テーブルである。表9の拡張アクセストークン管理テーブルは、トークン識別子、クライアント識別子、ユーザー識別子、クライアントスコープ、オーナースコープ、有効期限から成る。 Table 9 is an extended access token management table generated by the token issuing unit 470. The extended access token management table of Table 9 comprises a token identifier, a client identifier, a user identifier, a client scope, an owner scope, and an expiration date.

ここで、実施形態1による権限の絞り込みと認可確認画面について説明する。リソースサーバー600を利用しようとしているユーザーがいるとする。ここで、リソースサーバー600の利用には、クライアントの権限としてscopeA、オーナーの権限として、scopeKが必要だとする。このとき、前述のようにクライアント230が必要以上のスコープscopeA、scopeB、scopeC、scopeK、scopeL、scopeMを要求したとする。認証/認可サーバー400は、認可リクエスト受信時に、クライアント230が要求する権限のスコープをリダイレクトURIで絞り込む。絞り込みの結果、クライアントのスコープはscopeAに絞り込まれる。一方で、オーナーのスコープは依然として、scopeK、scopeL、scopeMだとする。このように、実施形態1をそのまま適用した場合には、ユーザーの権限であるオーナースコープは絞り込まれていない。セキュリティに鑑みて、アクセストークンが漏えいしたときに攻撃者からの被害を最小限にとどめておくために発行するアクセストークンに紐付けるオーナースコープを絞り込む必要がある。また、発行するアクセストークンに紐付けるオーナースコープをscopeKに絞り込むのであれば、ユーザーに権限委譲を求める認可確認画面においても、予め権限委譲するオーナースコープを絞り込んだ結果であるscopeKを表示するべきである。   Here, the narrowing down of the authority and the authorization confirmation screen according to the first embodiment will be described. It is assumed that there is a user who is going to use the resource server 600. Here, it is assumed that use of the resource server 600 requires scopeA as the client authority and scopeK as the owner authority. At this time, it is assumed that the client 230 requests more scopes scope A, scope B, scope C, scope K, scope L, and scope M as described above. When receiving the authorization request, the authentication / authorization server 400 narrows down the scope of the authority requested by the client 230 using the redirect URI. As a result of the narrowing, the scope of the client is narrowed to scopeA. On the other hand, the owner's scope is still scopeK, scopeL, scopeM. Thus, when the first embodiment is applied as it is, the owner scope which is the authority of the user is not narrowed down. In light of security, it is necessary to narrow down the owner scope to be associated with the access token issued in order to minimize the damage from the attacker when the access token is leaked. In addition, if the owner scope linked to the access token to be issued is narrowed down to scopeK, the authorization confirmation screen for asking the user to transfer the authority should display scopeK which is the result of narrowing down the owner scope to which the authority is transferred in advance. .

次に、実施形態2にかかる、認証/認可サーバー400におけるアクセストークンを発行するまでのフローについて、図7を用いて説明する。初めに本フローの詳細を説明し、次いでユーザーの権限を絞り込む方法について説明する。本フローは、クライアントから認可リクエストを受信することで開始される。
図7のS601からS609は実施形態1にて説明済みであるため省略する。
図7のS2001にて、権限限定部440は、S601で受信した認可リクエストに含まれるクライアントが要求するユーザーの権限であるオーナースコープを取り出し、認証/認可サーバー400のローカルに保存する。その後、S2002へ進める。
図7のS2002にて、権限限定部440は、S2001で保存したユーザーの権限であるオーナースコープを表8に示す拡張リダイレクトURIスコープ紐付け管理テーブル内のリダイレクトURIに紐付けられたオーナースコープで絞り込む。その後S2003へ進める。ここでは、絞り込むと表現したが、表8に示す拡張リダイレクトURIスコープ紐付け管理テーブルのリダイレクトURIに紐付けられたオーナースコープ以外を含む場合は拒否する構成であってもよい。
図7のS2003にて、権限限定部440は、S2002で絞り込まれた結果、残ったユーザーの権限であるオーナースコープが1つ以上の場合には、S2004へ進める。一方、絞り込まれたスコープが1つもない場合には、S690へ進める。
図7のS2004にて、認可確認部460は、絞り込まれたユーザーの権限であるオーナースコープで認可確認画面を表示して、ユーザーに認可操作を促す。その後、S611へ進める。認可確認画面の詳細は後述する。
図7のS611からS613と、S690と、S691は、実施形態1にて説明済みであるため、省略する。
Next, a flow of issuing an access token in the authentication / authorization server 400 according to the second embodiment will be described with reference to FIG. The details of this flow will be described first, and then a method of narrowing down the user's authority will be described. This flow is started by receiving an authorization request from a client.
Since S601 to S609 in FIG. 7 have been described in the first embodiment, the description is omitted.
In S2001 of FIG. 7, the authority limiting unit 440 extracts the owner scope which is the authority of the user requested by the client, which is included in the authorization request received in S601, and stores it in the authentication / authorization server 400 locally. After that, it advances to S2002.
In S2002 in FIG. 7, the authority limiting unit 440 narrows down the owner scope which is the authority of the user stored in S2001 by the owner scope linked to the redirect URI in the extended redirect URI scope tying management table shown in Table 8. . After that, it advances to S2003. Here, although it is expressed as narrowing down, the configuration may be such that it rejects cases including those other than the owner scope linked to the redirect URI of the extended redirect URI scope linking management table shown in Table 8.
As a result of narrowing down in S2002 in S2003 in FIG. 7, if the authority of the remaining user is one or more owner scopes as a result of narrowing down in S2002, the process proceeds to S2004. On the other hand, if there is no scope that has been narrowed down, the process proceeds to S690.
In S2004 of FIG. 7, the authorization confirmation unit 460 displays an authorization confirmation screen with an owner scope that is the authority of the narrowed user, and urges the user to perform the authorization operation. Thereafter, the process proceeds to step S611. Details of the authorization confirmation screen will be described later.
Since S611 to S613, S690, and S691 of FIG. 7 have already been described in the first embodiment, they are omitted.

つぎに、前記処理フローに沿って、ユーザーの権限であるオーナースコープと認可確認画面について詳細を説明する。
S601からS609は、実施形態1で説明済みであるため省略するが、クライアント230が要求する権限のスコープはたとえばscopeAに絞り込まれる。
S2001にて、権限限定部440は、S601で受信した認可リクエストに含まれるクライアントが要求するユーザーの権限であるオーナースコープから取り出し、認証/認可サーバー400のローカルに保存する。本実施形態では、scopeK、scopeL、scopeMを取り出す。その後、S2002へ進める。
S2002にて、権限限定部440は、S2001で保存したユーザーの権限であるオーナースコープを表8に示す拡張リダイレクトURIスコープ紐付け管理テーブル内のリダイレクトURIに紐付けられたオーナースコープで絞り込む。クライアント230が要求するユーザーの権限であるオーナースコープは、scopeK、scopeL、scopeMであるのに対して、表8の拡張リダイレクトURIスコープ紐付け管理テーブル内のオーナースコープには、scopeKが格納されている。クライアント230が要求するユーザーの権限であるオーナースコープは、権限限定部440によってscopeKに絞りこまれる。その後S2003へ進める。
S2003にて、権限限定部440は、S2003で絞り込まれた結果、scopeKが残ったため、S2004へ進める。
S2004にて、認可確認部460は、絞り込まれたユーザーの権限であるオーナースコープであるscopeKを認可確認画面に表示して、ユーザーに認可操作を促す。本実施例における認可確認画面の一例を図8に示す。図8においては、ユーザーに対して絞り込み済みのユーザー権限のスコープを提示し、許可または拒否の入力を促す。
S611にて、トークン発行部470は、アクセストークンを発行する。表9に示すように、アクセストークン識別子がAT_000001、クライアント識別子がclient230、ユーザー識別子がuid00001、クライアントスコープがscopeA、オーナースコープがscopeK、有効期限2016/11/14/12:00.00として、レコードが追加される。
Next, the details of the owner scope and the authorization confirmation screen, which are the authority of the user, will be described along the above-mentioned processing flow.
Although S601 to S609 are omitted because they have been described in the first embodiment, the scope of the authority requested by the client 230 is narrowed down to, for example, scopeA.
In S2001, the authority limiting unit 440 takes out from the owner scope which is the authority of the user requested by the client included in the authorization request received in S601, and stores it locally in the authentication / authorization server 400. In the present embodiment, scope K, scope L, and scope M are extracted. After that, it advances to S2002.
In S2002, the authority limiting unit 440 narrows down the owner scope, which is the user's authority stored in S2001, with the owner scope linked to the redirect URI in the extended redirect URI scope tying management table shown in Table 8. The owner scope which is the authority of the user requested by the client 230 is scope K, scope L, and scope M, whereas the owner scope in the extended redirect URI scope tying management table of Table 8 stores scope K . The owner scope which is the authority of the user requested by the client 230 is narrowed down to scope K by the authority limiting unit 440. After that, it advances to S2003.
In S2003, the authority limiting unit 440 advances the process to S2004 because the scope K remains as a result of narrowing down in S2003.
In S2004, the authorization confirmation unit 460 displays the scope K, which is the owner scope that is the authority of the narrowed user, on the authorization confirmation screen, and urges the user to perform the authorization operation. An example of the authorization confirmation screen in the present embodiment is shown in FIG. In FIG. 8, the user is presented with the scope of the narrowed user authority, and the user is prompted to enter permission or denial.
In S611, the token issuing unit 470 issues an access token. As shown in Table 9, a record is added with access token identifier AT_000001, client identifier client230, user identifier uid00001, client scope scopeA, owner scope scopeK, expiration date 2016/11/14/12: 00.00 Ru.

以上が実施形態2の詳細である。以上の構成により、認証/認可サーバーは、発行するアクセストークンに紐付く権限の絞り込みをユーザーの権限に対しても実現できる。さらに、認証/認可サーバーは、実際にアクセストークンに紐付けるスコープを認可確認画面に列挙することもできるため、ユーザビリティを向上することができる。また、ユーザー権限に限らず、クライアント権限等、他の種の権限についても同様に認可者に提示してもよい。   The above is the details of the second embodiment. With the above configuration, the authentication / authorization server can realize narrowing of the authority associated with the issued access token to the authority of the user. Furthermore, the authentication / authorization server can improve usability because it can also list the scopes that are actually associated with the access token on the authorization confirmation screen. Also, not only the user authority but also other kinds of authority such as client authority may be presented to the authorizer as well.

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

100 ユーザー、230 クライアントPC、300 Webブラウザ、400 認証/認可サーバー、500 Web-Hostedクライアントリソース、600 リソースサーバー 100 Users, 230 Client PCs, 300 Web Browsers, 400 Authentication / Authorization Servers, 500 Web-Hosted Client Resources, 600 Resource Servers

Claims (7)

クライアントから、アクセストークン要求と共に前記クライアントのリダイレクトURIと要求されるクライアントの権限とを受信する受信手段と、
要求される前記権限を、前記リダイレクトURIに紐付けられた権限情報で限定する権限限定手段と、
前記権限限定手段で限定された権限のアクセストークンを発行する発行手段と
を有することを特徴とする認証認可サーバー。
Receiving means for receiving from the client an access token request together with the client's redirect URI and the requested client's authority;
Authority restriction means for restricting the requested authority by the authority information linked to the redirect URI;
And a issuing means for issuing an access token of the right limited by the right limiting means.
請求項1に記載の認証認可サーバーであって、
リダイレクトURIと権限情報とを紐づけたテーブルをさらに有し、
前記権限限定手段は、前記テーブルにおいて、前記アクセストークン要求とともに受信した前記リダイレクトURIに紐づけられた権限情報で、要求される前記権限を限定することを特徴とする認証認可サーバー。
The authentication and authorization server according to claim 1, wherein
It further has a table linking redirect URI and authority information,
The authentication and authorization server, wherein the authority limiting unit is configured to limit the requested authority with the authority information associated with the redirect URI received with the access token request in the table.
請求項1または2に記載の認証認可サーバーであって、
前記権限限定手段はさらに、前記アクセストークン要求により要求されるユーザーの権限を、前記リダイレクトURIに紐づけられた権限情報で限定することを特徴とする認証認可サーバー。
The authentication and authorization server according to claim 1 or 2,
The authentication and authorization server according to claim 1, wherein the authority limiting unit further restricts the authority of the user requested by the access token request with the authority information linked to the redirect URI.
請求項3に記載の認証認可サーバーであって、
前記権限限定手段により限定された前記権限をユーザーに提示して該ユーザーによる承認または拒否の入力を受け付ける手段をさらに有し、
前記発行手段は、前記ユーザーによる認可の入力がされた場合に、前記権限限定手段で限定された前記権限のアクセストークンを発行することを特徴とする認証認可サーバー。
The authentication and authorization server according to claim 3, wherein
It further has a means for presenting the user limited by the right limiting means to the user and receiving an input of approval or rejection by the user,
The authentication and authorization server, wherein the issuing unit issues an access token of the authority limited by the authority limiting unit when the user inputs an authorization.
クライアントと、リソースを提供するリソースサーバーと、認証認可サーバーとを含む認証認可システムであって、
前記認証認可サーバーは、
前記クライアントから、アクセストークン要求と共に前記クライアントのリダイレクトURIと要求されるクライアントの権限とを受信する受信手段と、
要求される前記権限を、前記リダイレクトURIに紐付けられた権限情報で限定する権限限定手段と、
前記権限限定手段で限定された権限のアクセストークンを発行する発行手段と
を有し、
前記リソースサーバーは、リソースの要求と共に前記クライアントから受信する前記アクセストークンを検証し、検証に成功した場合に、前記クライアントに要求されたリソースを提供することを特徴とする認証認可システム。
An authentication and authorization system comprising a client, a resource server for providing resources, and an authentication and authorization server, comprising:
The authentication and authorization server is
Receiving means for receiving, from the client, an access token request together with the client's redirect URI and the requested client's authority;
Authority restriction means for restricting the requested authority by the authority information linked to the redirect URI;
And issuing means for issuing an access token of the right limited by the right limiting means,
The authentication and authorization system, wherein the resource server verifies the access token received from the client together with a request for a resource, and provides the requested resource to the client if the verification is successful.
クライアントから、アクセストークン要求と共に前記クライアントのリダイレクトURIと要求されるクライアントの権限とを受信する受信手段と、
要求される前記権限を、前記リダイレクトURIに紐付けられた権限情報で限定する権限限定手段と、
前記権限限定手段で限定された権限のアクセストークンを発行する発行手段と
してコンピュータを機能させるためのプログラム。
Receiving means for receiving from the client an access token request together with the client's redirect URI and the requested client's authority;
Authority restriction means for restricting the requested authority by the authority information linked to the redirect URI;
A program for causing a computer to function as issuing means for issuing an access token of a right limited by the right limitation means.
クライアントと、リソースを提供するリソースサーバーと、認証認可サーバーとを含む認証認可システムによる認証方法であって、
前記認証認可サーバーが、
前記クライアントから、アクセストークン要求と共に前記クライアントのリダイレクトURIと要求されるクライアントの権限とを受信し、
要求される前記権限を、前記リダイレクトURIに紐付けられた権限情報で限定し、
限定された前記権限のアクセストークンを発行し、
前記リソースサーバーが、リソースの要求と共に前記クライアントから受信する前記アクセストークンを検証し、検証に成功した場合に、前記クライアントに要求されたリソースを提供することを特徴とする認証方法。
An authentication method by an authentication and authorization system including a client, a resource server for providing resources, and an authentication and authorization server,
The authentication and authorization server
Receiving from the client an access token request along with the client's redirect URI and the requested client's authority;
Restricting the requested authority with the authority information linked to the redirect URI,
Issue an access token of the said limited authority,
The authentication method, wherein the resource server verifies the access token received from the client together with a request for a resource, and provides the requested resource to the client if the verification is successful.
JP2017075450A 2017-04-05 2017-04-05 Authentication authorization system, authentication authorization server, authentication method and program Pending JP2018180692A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017075450A JP2018180692A (en) 2017-04-05 2017-04-05 Authentication authorization system, authentication authorization server, authentication method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017075450A JP2018180692A (en) 2017-04-05 2017-04-05 Authentication authorization system, authentication authorization server, authentication method and program

Publications (1)

Publication Number Publication Date
JP2018180692A true JP2018180692A (en) 2018-11-15

Family

ID=64276729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017075450A Pending JP2018180692A (en) 2017-04-05 2017-04-05 Authentication authorization system, authentication authorization server, authentication method and program

Country Status (1)

Country Link
JP (1) JP2018180692A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116089974A (en) * 2022-12-30 2023-05-09 浙江华云信息科技有限公司 A method and device for access control based on ownership and scope
JP2024070806A (en) * 2022-11-11 2024-05-23 ペンタ・セキュリティ株式会社 Method and apparatus for packet classification based on user authentication for differential security services in shipboard networks
JP2025091332A (en) * 2023-12-06 2025-06-18 ペンタ・セキュリティ株式会社 Method and apparatus for providing differential security services in shipboard networks using packet classification based on user authentication

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024070806A (en) * 2022-11-11 2024-05-23 ペンタ・セキュリティ株式会社 Method and apparatus for packet classification based on user authentication for differential security services in shipboard networks
JP7616580B2 (en) 2022-11-11 2025-01-17 ペンタ・セキュリティ株式会社 Method and apparatus for packet classification based on user authentication for differential security services in shipboard networks
CN116089974A (en) * 2022-12-30 2023-05-09 浙江华云信息科技有限公司 A method and device for access control based on ownership and scope
JP2025091332A (en) * 2023-12-06 2025-06-18 ペンタ・セキュリティ株式会社 Method and apparatus for providing differential security services in shipboard networks using packet classification based on user authentication
JP7703173B2 (en) 2023-12-06 2025-07-07 ペンタ・セキュリティ株式会社 Method and apparatus for providing differential security services in shipboard networks using packet classification based on user authentication

Similar Documents

Publication Publication Date Title
KR102390108B1 (en) Information processing system and control method therefor
EP2149102B1 (en) Request-specific authentication for accessing web service resources
KR102313859B1 (en) Authority transfer system, control method therefor, and client
CN102638454B (en) Plug-in type SSO (single signon) integration method oriented to HTTP (hypertext transfer protocol) identity authentication protocol
US8997196B2 (en) Flexible end-point compliance and strong authentication for distributed hybrid enterprises
JP6526181B2 (en) Smart card logon and coordinated full domain logon
US6807577B1 (en) System and method for network log-on by associating legacy profiles with user certificates
US9401918B2 (en) User to user delegation service in a federated identity management environment
US8327427B2 (en) System and method for transparent single sign-on
JP6066647B2 (en) Device apparatus, control method thereof, and program thereof
KR100920871B1 (en) Methods and systems for authentication of a user for sub-locations of a network location
JP6675163B2 (en) Authority transfer system, control method of authorization server, authorization server and program
EP4264880B1 (en) Integration of legacy authentication with cloud-based authentication
EP3462701B1 (en) Device, control method of the same, and program
JP6061633B2 (en) Device apparatus, control method, and program thereof.
CN111316267A (en) Authentication using delegated identities
CN107172054A (en) A CAS-based authority authentication method, device and system
JP2014157480A (en) Information processor, program, and control method
Rountree Federated identity primer
CN116707849A (en) Method for setting cloud service access rights and cloud management platform for enclave instances
CN118118227A (en) Unified identity authentication method and device
JP2018180692A (en) Authentication authorization system, authentication authorization server, authentication method and program
JP5036500B2 (en) Attribute certificate management method and apparatus
Baker OAuth2
CN118381626B (en) Inter-application authentication method, device and readable storage medium