JP7271147B2 - SERVICE AUTHORIZATION PROCESSING APPARATUS, SYSTEM, METHOD AND PROGRAM - Google Patents

SERVICE AUTHORIZATION PROCESSING APPARATUS, SYSTEM, METHOD AND PROGRAM Download PDF

Info

Publication number
JP7271147B2
JP7271147B2 JP2018224487A JP2018224487A JP7271147B2 JP 7271147 B2 JP7271147 B2 JP 7271147B2 JP 2018224487 A JP2018224487 A JP 2018224487A JP 2018224487 A JP2018224487 A JP 2018224487A JP 7271147 B2 JP7271147 B2 JP 7271147B2
Authority
JP
Japan
Prior art keywords
authorization
service
information
services
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018224487A
Other languages
Japanese (ja)
Other versions
JP2020087235A (en
Inventor
真由美 保坂
裕一郎 江崎
稔 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions Corp
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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2018224487A priority Critical patent/JP7271147B2/en
Publication of JP2020087235A publication Critical patent/JP2020087235A/en
Application granted granted Critical
Publication of JP7271147B2 publication Critical patent/JP7271147B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明の実施形態は、サービス認可処理装置、システム、方法及びプログラムに関する。 TECHNICAL FIELD Embodiments of the present invention relate to a service authorization processing device, system, method and program.

近年、例えばWebサービスを提供するためのシステムやソフトウェアの開発において、サービスの全機能を、いわゆるモノリス(monolith)構成ではなく、マイクロサービスを利用して構成する方式が注目されている。マイクロサービスアーキテクチャは、複数のサービスを組み合わせて連携させることにより、所定の全機能を実現する仕組みである。マイクロサービスを利用する方式であれば、外部のサービスを利用できるために、開発コストの削減を実現できる。また、組み合わせる各サービスは独立性があるため、サービス(機能)ごとの変更や追加が容易となる。 In recent years, for example, in the development of systems and software for providing Web services, attention has been paid to methods of configuring all functions of services using microservices instead of so-called monolith configurations. A microservices architecture is a mechanism that realizes all predetermined functions by combining and linking multiple services. If you use a method that uses microservices, you can use external services, so you can reduce development costs. In addition, since each service to be combined is independent, it becomes easy to change or add each service (function).

ところで、マイクロサービスを利用して、連携元のサービスが連携先のサービスを呼び出して利用する場合に、例えばOAuth2というプロトコルを利用した認可が必要となることがある。この場合、例えばアクセストークン(access token)のような、認可に必要な認可情報を取得するための認可処理が必要となる。 By the way, when using microservices, when a linking service calls and uses a linking service, authorization using a protocol called OAuth2, for example, may be required. In this case, an authorization process is required to acquire authorization information required for authorization, such as an access token.

特開2015-228067号公報JP 2015-228067 A WO2013145517号公報WO2013145517 特開2009-99131号公報JP 2009-99131 A 特開2013-145506号公報JP 2013-145506 A

マイクロサービスを利用する方式では、認可を必要としない連携元のサービスが、認可が必要である連携先のサービスを呼び出して利用する場合、当該連携元サービスは認可処理を実行する機能を実装することが要求されることになる。このため、マイクロサービスの利点に含まれる各サービスの独立性を確保できなくなる。 In the method that uses microservices, when a linking service that does not require authorization calls and uses a linking service that requires authorization, the linking service must implement a function to perform authorization processing. will be required. This makes it impossible to ensure the independence of each service included in the benefits of microservices.

そこで、目的は、認可を必要とするサービスを含む複数のサービスを連携して、所定の機能を実現する方式に適用できると共に、各サービスの独立性を確保できるサービス認可処理装置を提供することにある。 Accordingly, it is an object of the present invention to provide a service authorization processing device which can be applied to a method of realizing a predetermined function by coordinating a plurality of services, including services requiring authorization, and which can ensure the independence of each service. be.

本実施形態のサービス認可処理装置は、複数のサービスを連携して、所定の機能を実現するシステムに適用するサービス認可処理装置であって、認可判定手段と、認可情報管理手段と、認可処理情報作成手段と、第2の記憶装置とを有する。前記認可判定手段は、連携する各サービスを実行する際に、認可が必要であるか否かを判定する。前記認可情報管理手段は、認可が必要であるサービスに対して認可に利用する認可情報を提供するために、前記認可情報を取得して管理する。認可処理情報作成手段は、前記連携する各サービスの起動時に、前記システムに含まれるサーバから取得する情報に基づいて、前記連携する各サービス毎に、呼び出し関係を示す第1の情報と、認可の必要性が有るか又は無いかを特定する第2の情報とを含む認可処理情報を作成する。前記第2の記憶装置は、前記認可処理情報作成手段によって作成された前記認可処理情報を格納する。前記認可判定手段はさらに、前記認可処理情報において、前記第2の情報に、許可の必要性が無いと特定されているサービスが認可を必要としないと判定する。 The service authorization processing device of this embodiment is a service authorization processing device that is applied to a system that implements a predetermined function by coordinating a plurality of services, and comprises authorization determination means, authorization information management means, and authorization processing information . It has a creating means and a second storage device. The authorization determination means determines whether or not authorization is required when executing each linked service. The authorization information management means acquires and manages the authorization information in order to provide the authorization information used for authorization to a service that requires authorization. The authorization processing information creating means generates, for each of the cooperating services, first information indicating a calling relationship and authorization information for each of the cooperating services based on information obtained from a server included in the system when each of the cooperating services is activated. and second information specifying whether or not there is a need. The second storage device stores the authorization processing information created by the authorization processing information creating means . The authorization determining means further determines that the service specified as not requiring authorization in the second information in the authorization processing information does not require authorization.

実施形態に関するシステムの構成を説明するためのブロック図。1 is a block diagram for explaining the configuration of a system according to an embodiment; FIG. 実施形態に関するサービス関連テーブルの一例を示す図。The figure which shows an example of the service related table regarding embodiment. 実施形態に関する認可情報テーブルの一例を示す図。The figure which shows an example of the authorization information table regarding embodiment. 実施形態に関するユーザ情報テーブルの一例を示す図。The figure which shows an example of the user information table regarding embodiment. 実施形態に関する各サービスの呼び出し関係の一例を示す図。The figure which shows an example of the calling relationship of each service regarding embodiment. 実施形態に関する認可処理の概要を説明するための図。FIG. 4 is a diagram for explaining an overview of authorization processing related to the embodiment; 実施形態に関する認可処理を説明するためのフローチャート。4 is a flowchart for explaining authorization processing according to the embodiment; 実施形態に関する認可判定部の処理を説明するためのフローチャート。4 is a flowchart for explaining processing of an authorization determination unit according to the embodiment; 実施形態に関するアクセストークン管理部の処理を説明するためのフローチャート。4 is a flowchart for explaining processing of an access token management unit according to the embodiment; 実施形態に関するサービス関連作成部の処理を説明するためのフローチャート。4 is a flowchart for explaining processing of a service-related creation unit according to the embodiment;

以下図面を参照して、実施形態を説明する。
[システムの構成]
図1は、本実施形態に関するシステム1の構成を示す図である。図1に示すように、本実施形態のシステム1は、認可処理装置10、認可サーバ13、リソースサーバ14、及び各種のサービス(機能)A~Eを実現するサービス提供サーバ15を有する。サービス提供サーバ15は、各サービスA~Eをそれぞれ独立して実現する複数のサーバ群であり、後述するように、各サービスA~Eを連携させるマイクロサービスを実現する。マイクロサービスは、複数のサービスを連携して所定のサービス(機能)を実現する方式である。
Embodiments will be described below with reference to the drawings.
[System configuration]
FIG. 1 is a diagram showing the configuration of a system 1 related to this embodiment. As shown in FIG. 1, the system 1 of this embodiment has an authorization processing device 10, an authorization server 13, a resource server 14, and a service providing server 15 that implements various services (functions) A to E. The service providing server 15 is a group of servers that implement each of the services A to E independently, and implements microservices that link the services A to E, as will be described later. A microservice is a method of realizing a predetermined service (function) by linking a plurality of services.

認可処理装置10は、主としてコンピュータ及び記憶装置により実現する、APIゲートウエイ(Application Programming Interface Gateway)11及びサービスレジストリ12を含む。本実施形態のAPIゲートウエイ11は、クライアント2とサービス(A~E)との間で各種の情報を交換する中継機能を実現すると共に、後述する認可判定機能を有する。APIゲートウエイ11は、通信の制御を実行する通信部101及び認可判定部102を含む。認可判定部102は、後述する認可情報取得部103により取得されたデータに基づいて、サービスを利用する上での認可が必要であるか否かを判定する認可判定処理を実行する。 The authorization processing device 10 includes an API gateway (Application Programming Interface Gateway) 11 and a service registry 12, which are mainly implemented by computers and storage devices. The API gateway 11 of this embodiment implements a relay function for exchanging various information between the client 2 and the services (A to E), and also has an authorization determination function, which will be described later. The API gateway 11 includes a communication unit 101 and an authorization determination unit 102 that control communication. The authorization judgment unit 102 executes authorization judgment processing for judging whether or not authorization is required for using the service, based on data acquired by the authorization information acquisition unit 103, which will be described later.

サービスレジストリ12は情報管理用のサーバに相当し、認可情報取得部103、アクセストークン(Access Token)管理部104、認可情報記憶部105、及びサービス関連作成部106を含む。認可情報取得部103は、認可情報記憶部105から、後述するサービス関連テーブル20、認可情報テーブル21、及びユーザ情報テーブル22を取得する。これらの各テーブル20、21、22は、認可処理装置10において使用される認可処理情報である。 The service registry 12 corresponds to an information management server, and includes an authorization information acquisition unit 103 , an access token management unit 104 , an authorization information storage unit 105 and a service relation creation unit 106 . The authorization information acquisition unit 103 acquires a service related table 20, an authorization information table 21, and a user information table 22, which will be described later, from the authorization information storage unit 105. FIG. Each of these tables 20 , 21 , 22 is authorization processing information used in the authorization processing device 10 .

アクセストークン管理部104は、認可サーバ13により発行されるアクセストークンを認可情報記憶部105に登録する処理や、認可情報記憶部105からアクセストークンを取得する処理を実行する。認可情報記憶部105は、サービス関連テーブル20、認可情報テーブル21、及びユーザ情報テーブル22を格納すると共に、登録対象のアクセストークンを格納する。サービス関連作成部106は、後述するように、サービス関連テーブル20及び認可情報テーブル21を作成して、認可情報記憶部105に格納する。 The access token management unit 104 executes processing for registering an access token issued by the authorization server 13 in the authorization information storage unit 105 and processing for acquiring the access token from the authorization information storage unit 105 . The authorization information storage unit 105 stores a service related table 20, an authorization information table 21, and a user information table 22, as well as access tokens to be registered. The service relation creation unit 106 creates a service relation table 20 and an authorization information table 21 and stores them in the authorization information storage unit 105, as will be described later.

認可サーバ13は、APIゲートウエイ11の通信部101と接続し、ユーザが操作するクライアント2からのリクエストに基づいて、リソースサーバ14にアクセスするか否かの判定処理や、アクセストークンを発行する処理を実行する。本実施形態では、リソースサーバ14は、例えばサービスEと連携する外部のサービス(F)を提供する。ここで、サービスEが当該サービス(F)にアクセスするためには、例えばOAuth2のプロトコルを利用した認可が必要であるとする。なお、本実施形態では、当該OAuth2のプロトコルを利用した認可を、単に認可と表記する。 The authorization server 13 is connected to the communication unit 101 of the API gateway 11, and based on a request from the client 2 operated by the user, determines whether or not to access the resource server 14, and issues an access token. Execute. In this embodiment, the resource server 14 provides an external service (F) that cooperates with the service E, for example. Here, in order for service E to access the service (F), authorization using, for example, the OAuth2 protocol is required. In this embodiment, authorization using the OAuth2 protocol is simply referred to as authorization.

図2は、サービス関連テーブル20の一例を示す図である。サービス関連テーブル20は、マイクロサービスを実現するために、連携する各サービスの呼び出し関係を表す情報である。図5は、当該各サービスの呼び出し関係の一例を示す図である。図5に示すように、クライアント2からのリクエストにより、サービスA(パス:/service a-1)が呼び出されると、サービスAはサービスB(パス:/service b-1)とサービスD(パス:/service d-1)を呼び出す。さらに、サービスBは、サービスC(パス:/service c-1)とサービスE(パス:/service e-1)を呼び出す関係になっている。 FIG. 2 is a diagram showing an example of the service related table 20. As shown in FIG. The service relation table 20 is information representing the calling relation of each linked service in order to realize the microservice. FIG. 5 is a diagram showing an example of the calling relationship of each service. As shown in FIG. 5, when service A (path: /service a-1) is called by a request from client 2, service A is service B (path: /service b-1) and service D (path: /service d-1). Further, service B has a relationship of calling service C (path: /service c-1) and service E (path: /service e-1).

図2に示すように、サービス関連テーブル20は、図5で示すような各サービスの呼び出し関係を、サービス名とパスにより一意に特定できる情報である。即ち、サービス関連テーブル20は、行単位のデータにより、どのサービスがどのサービスを呼び出しているかを定義している。例えば、1行目のデータは、サービスA(パス:/service a-1)が、サービスB(パス:/service b-1)を呼び出すことを定義している。ここで、パスとは、サービス名のサービスにアクセスするためのルートを示し、例えばURL(Uniform Resource Locator)のパス名に相当する情報である。 As shown in FIG. 2, the service relation table 20 is information that can uniquely identify the calling relationship of each service as shown in FIG. 5 by the service name and path. That is, the service relation table 20 defines which service calls which service by row-by-row data. For example, the data in the first row defines that service A (path: /service a-1) calls service B (path: /service b-1). Here, the path indicates a route for accessing the service of the service name, and is information corresponding to the path name of URL (Uniform Resource Locator), for example.

図3は、認可情報テーブル21の一例を示す図である。図3に示すように、認可情報テーブル21は、各サービスA~Eにアクセスする(呼び出す)ために、認可を必要とするか否かを示す情報である。認可情報テーブル21は、例えば、サービスAからサービスDについては認可を必要とせず、サービスEについては認可を必要とすることを示している。 FIG. 3 is a diagram showing an example of the authorization information table 21. As shown in FIG. As shown in FIG. 3, the authorization information table 21 is information indicating whether or not authorization is required to access (call) each service A to E. FIG. The authorization information table 21 indicates that, for example, service A to service D do not require authorization, and service E requires authorization.

図4は、ユーザ情報テーブル22の一例を示す図である。図4に示すように、ユーザ情報テーブル22は、ユーザ毎に、サービスにアクセスする際の認可に必要なアクセストークン(Access Token)を設定している情報である。即ち、アクセストークンは、認可に使用する認可情報である。ユーザ情報テーブル22は、例えば、ユーザIDとして「User C」が設定されたユーザが、クライアント2からサービスEにアクセスするためのアクセストークン「accVkjcJyb4BWCx」、及び、その有効期限が「2020/11/30 00:00:00」であることを示している。
[システムの動作]
図6は、本実施形態の認可処理装置10及び認可サーバ13による認可処理の概要を説明するための図である。ここでは、ユーザIDとして「User A」が設定されたユーザがクライアント2から、サービスA(パス:/service a-1)にアクセスする例として説明する。
FIG. 4 is a diagram showing an example of the user information table 22. As shown in FIG. As shown in FIG. 4, the user information table 22 is information that sets an access token required for authorization when accessing a service for each user. That is, the access token is authorization information used for authorization. The user information table 22 includes, for example, an access token "accVkjcJyb4BWCx" for a user whose user ID is set to "User C" to access service E from the client 2, and an expiration date of "2020/11/30." 00:00:00”.
[System operation]
FIG. 6 is a diagram for explaining an outline of authorization processing by the authorization processing device 10 and the authorization server 13 of this embodiment. Here, an example will be described in which a user whose user ID is set to "User A" accesses service A (path: /service a-1) from the client 2. FIG.

APIゲートウエイ11は、クライアント2からサービスAに対してアクセスがあると(60)、認可判定部102がアクセス先のサービスが認可を必要とするか否かを判定する。認可判定部102は、サービスレジストリ12にアクセスし(61)、認可情報記憶部105に格納されたサービス関連テーブル20及び認可情報テーブル21を参照して、認可の有無を判定する。なお、クライアント2は、例えば、パーソナルコンピュータのディスプレイ200及びPC本体201からなる。 When the API gateway 11 accesses the service A from the client 2 (60), the authorization determination unit 102 determines whether or not the accessed service requires authorization. The authorization determination unit 102 accesses the service registry 12 (61), refers to the service-related table 20 and the authorization information table 21 stored in the authorization information storage unit 105, and judges the presence or absence of authorization. The client 2 is composed of, for example, a personal computer display 200 and a PC body 201 .

ここで、APIゲートウエイ11は、例えばサービスAと連携してアクセス先となるサービス(E)が認可を必要とする場合には、クライアント2のPC本体201に対して認可を行うためにリダイレクトする(62)。クライアント2は、認可サーバ13にリダイレクトすることで(63)、認可サーバ13からログイン画面情報を受信する(64)。クライアント2は、ディスプレイ200上の表示されたログイン画面上にユーザIDやパスワードを入力して、認可サーバ13に送信する(65)。認可サーバ13は、ユーザIDやパスワードが正しい場合には、認可コードをクライアント2及びAPIゲートウエイ11に返信する(66)。 Here, for example, when the service (E) to be accessed in cooperation with the service A requires authorization, the API gateway 11 redirects the PC body 201 of the client 2 for authorization ( 62). The client 2 receives login screen information from the authorization server 13 by redirecting to the authorization server 13 (63) (64). The client 2 inputs the user ID and password on the login screen displayed on the display 200 and transmits them to the authorization server 13 (65). If the user ID and password are correct, the authorization server 13 returns an authorization code to the client 2 and API gateway 11 (66).

APIゲートウエイ11は、認可サーバ13から取得する認可コードを利用して、認可サーバ13により発行される認可情報であるアクセストークンを取得する(67)。本実施形態では、APIゲートウエイ11は、認可サーバ13から取得したアクセストークンを、サービスレジストリ12の認可情報記憶部105に格納する(61)。 The API gateway 11 uses the authorization code obtained from the authorization server 13 to obtain an access token, which is authorization information issued by the authorization server 13 (67). In this embodiment, the API gateway 11 stores the access token acquired from the authorization server 13 in the authorization information storage unit 105 of the service registry 12 (61).

このような認可処理の実行後に、APIゲートウエイ11は、サービスAに対してアクセスする(68)。図5に示すような呼び出し関係により、各サービスAからEは連携して、所定のサービスの全機能を実現する。即ち、サービスAは、連携先であるサービスB及びサービスDを呼び出す。さらに、サービスBは、連携先であるサービスC及びサービスEを呼び出す。 After executing such authorization processing, the API gateway 11 accesses service A (68). Due to the calling relationship shown in FIG. 5, each service A to E cooperates to implement all the functions of a given service. That is, service A calls service B and service D, which are cooperation destinations. Further, service B calls service C and service E, which are cooperation destinations.

ここで、サービスEは、リソースサーバ14にアクセスするために、サービスレジストリ12の認可情報記憶部105に格納されたアクセストークンを取得する(69)。サービスEは、リソースサーバ14に当該アクセストークンを送信する(70)。即ち、サービスEは、アクセストークンを使用してサービスFを呼び出し、必要なリソースを取得できる(71)。 Here, in order to access the resource server 14, the service E acquires the access token stored in the authorization information storage unit 105 of the service registry 12 (69). Service E sends the access token to resource server 14 (70). That is, service E can use the access token to call service F to obtain the required resource (71).

図7から図10は、本実施形態の認可処理装置10及び認可サーバ13による認可処理を、さらに詳細に説明するためのフローチャートである。 7 to 10 are flow charts for explaining in more detail the authorization processing by the authorization processing device 10 and the authorization server 13 of this embodiment.

図7に示すように、APIゲートウエイ11は、通信部101がクライアント2から、サービスAに対してアクセスするためのリクエストを受け付けると(S1)、認可判定部102により認可が必要であるか否かを判定する(S2)。 As shown in FIG. 7, when the communication unit 101 receives a request for accessing service A from the client 2 (S1), the API gateway 11 determines whether authorization is required by the authorization determination unit 102. is determined (S2).

図8は、認可判定部102の判定処理を説明するためのフローチャートである。認可判定部102は、サービスレジストリ12の認可情報取得部103にアクセスする。図8に示すように、認可情報取得部103は、認可情報記憶部105からサービス関連テーブル20及び認可情報テーブル21を取得する(S20)。認可判定部102は、サービス関連テーブル20を参照して、パスとサービス名が一致する項目のデータを取得する(S21)。ここでは、サービスA(パス:/service a-1)にアクセスしているので、サービス関連テーブル20の1行目と2行目の各データを取得する。 FIG. 8 is a flowchart for explaining the determination processing of the authorization determination unit 102. As shown in FIG. The authorization determination unit 102 accesses the authorization information acquisition unit 103 of the service registry 12 . As shown in FIG. 8, the authorization information acquisition unit 103 acquires the service related table 20 and the authorization information table 21 from the authorization information storage unit 105 (S20). The authorization determination unit 102 refers to the service-related table 20 and acquires the data of the item whose path matches the service name (S21). Here, since service A (path: /service a-1) is being accessed, each data in the first and second rows of the service related table 20 is acquired.

次に、認可判定部102は、認可情報テーブル21を参照して、パスとサービス名が一致する項目のデータを取得する(S22)。認可判定部102は、認可情報テーブル21のデータから、認可の有無を判定する(S23)。具体的には、認可情報テーブル21の1行目のデータは、認可の値が無しなっているため、認可判定部102は、サービスAが認可を行わない(認可を必要としない)と判定する。 Next, the authorization determination unit 102 refers to the authorization information table 21 and acquires the data of the item whose path matches the service name (S22). The authorization judgment unit 102 judges the presence or absence of authorization based on the data in the authorization information table 21 (S23). Specifically, since the data in the first row of the authorization information table 21 has no authorization value, the authorization determination unit 102 determines that service A does not perform authorization (does not require authorization). .

次に、認可判定部102は、サービス関連テーブル20を参照して、パスを含むサービス名(A)に対応する、利用サービスパスを含む利用サービス名(B,D)を取得する(S24)。利用サービスパスと利用サービス名が無しの場合は、対応するサービスから呼び出されるサービスが無いことを示す。 Next, the authorization determination unit 102 refers to the service relation table 20 and acquires the used service name (B, D) including the used service path corresponding to the service name (A) including the path (S24). If there is no used service path and no used service name, it indicates that there is no service called from the corresponding service.

具体的には、サービス関連テーブル20の1行目のデータから、サービスAがする利用サービスが利用サービス名B(利用サービスパス:/service b-1)であるため、認可判定部102は、サービス関連テーブル20の3及び4行目のデータ(いずれもサービス名B)を取得する。同様に、サービス関連テーブル20の2行目のデータ(利用サービス名D)から、サービス関連テーブル20の6行目のデータ(サービス名D)を取得する。 Specifically, from the data in the first row of the service relation table 20, the service used by service A is the service used name B (used service path: /service b-1). The data on the 3rd and 4th rows of the relation table 20 (both are service name B) are acquired. Similarly, the data (service name D) in the sixth line of the service relation table 20 is obtained from the data in the second line (service name D) of the service relation table 20 .

認可判定部102は、サービス関連テーブル20からデータを取得できなくなるまで、S21からの処理を繰り返す(S25のYES)。認可判定部102は、データを取得できなかった場合に処理を終了する(S25のNO)。このような認可判定部102の処理により、サービスA(パス:/service a-1)にアクセスするためには、提携先のサービスE(パス:/service e-1)において認可が必要であることが判定できる。 The authorization determination unit 102 repeats the processing from S21 until data cannot be acquired from the service-related table 20 (YES in S25). The authorization determination unit 102 terminates the process if the data could not be obtained (NO in S25). Through such processing of the authorization determination unit 102, in order to access service A (path: /service a-1), authorization is required for partner service E (path: /service e-1). can be determined.

図7に戻って、APIゲートウエイ11は、サービスAにアクセスするために、認可判定部102により認可が必要でないと判定された場合(S3のNO)、通信部101を経由してサービスAを実行して処理を終了する(S17)。即ち、クライアント2は、APIゲートウエイ11を介して、サービスAからEが連携して実現される、所定のサービスの全機能が提供される。 Returning to FIG. 7, when the authorization determination unit 102 determines that authorization is not required to access service A (NO in S3), API gateway 11 executes service A via communication unit 101. and terminate the process (S17). That is, the client 2 is provided with all the functions of a predetermined service realized through the cooperation of the services A to E via the API gateway 11 .

一方、認可判定部102は認可が必要と判定した場合、アクセストークン管理部104にアクセスする(S3のYES)。アクセストークン管理部104は、認可情報記憶部105にアクセストークンが登録(格納)されている否かを確認する(S4)。 On the other hand, when the authorization determination unit 102 determines that authorization is required, it accesses the access token management unit 104 (YES in S3). The access token management unit 104 checks whether an access token is registered (stored) in the authorization information storage unit 105 (S4).

図9は、アクセストークン管理部104の処理を説明するためのフローチャートである。図9に示すように、アクセストークン管理部104は、認可情報記憶部105からユーザ情報テーブルを取得する(S30)。アクセストークン管理部104は、ユーザ情報テーブル(図4を参照)から、ユーザID、パス、サービス名(E)が一致するデータを取得する(S31)。具体的には、ユーザ情報テーブル22から、例えば、ユーザIDとして「User C」、パスが「/service e-1」、及びサービス名Eのデータを取得する。即ち、サービスA(パス:/service a-1)にアクセスするためには、提携先のサービスE(パス:/service e-1)において認可が必要であるという、認可判定部102の判定結果に基づいている。 FIG. 9 is a flowchart for explaining the processing of the access token management unit 104. As shown in FIG. As shown in FIG. 9, the access token management unit 104 acquires the user information table from the authorization information storage unit 105 (S30). The access token management unit 104 acquires data matching the user ID, pass, and service name (E) from the user information table (see FIG. 4) (S31). Specifically, for example, the data of "User C" as the user ID, "/service e-1" as the path, and service name E are obtained from the user information table 22 . That is, in order to access service A (path: /service a-1), authorization is required for affiliated service E (path: /service e-1). Based on

アクセストークン管理部104は、ユーザ情報テーブル22から、アクセストークンが登録済みであるか否かを確認する(S32)。ここで、アクセストークン管理部104は、ユーザ情報テーブル22の1行目のデータにはアクセストークンの値がないため、この場合には、アクセストークンが登録済みでないと判定し(S32のNO)、その旨を認可判定部102に返信する(S34)。 The access token management unit 104 checks whether or not the access token has been registered from the user information table 22 (S32). Here, the access token management unit 104 determines that the access token is not registered in this case because the data in the first row of the user information table 22 does not have an access token value (NO in S32). A reply to that effect is sent to the authorization determination unit 102 (S34).

アクセストークン管理部104は、ユーザ情報テーブル22の3行目のデータにはアクセストークンの値があるため、アクセストークンが登録済みであると判定し(S32のYES)、その旨を認可判定部102に返信する(S33)。但し、アクセストークン管理部104は、有効期限の値が現在より前であれば、アクセストークンが登録済みでないと判定し、有効期限の値が現在より後であれば、アクセストークンが登録済みであると判定する。 The access token management unit 104 determines that the access token has been registered because the data in the third row of the user information table 22 has the value of the access token (YES in S32), and notifies the authorization determination unit 104 to that effect. (S33). However, the access token management unit 104 determines that the access token has not been registered if the expiration date is before the current value, and that the access token has been registered if the expiration date is after the current value. I judge.

図7に戻って、APIゲートウエイ11は、認可判定部102がアクセストークン管理部104からアクセストークンが登録済みであるとの返信を受けると(S5のYES)、通信部101を経由してサービスAを実行する(S14)。即ち、図5に示すような呼び出し関係により、各サービスAからEは連携して、所定のサービスの全機能を実現する。 Returning to FIG. 7, when the authorization determination unit 102 receives a reply from the access token management unit 104 that the access token has been registered (YES in S5), the API gateway 11 accesses the service A via the communication unit 101. (S14). That is, the services A to E cooperate with each other according to the calling relationship as shown in FIG. 5 to realize all the functions of the predetermined service.

この場合、サービスEは、サービスBからの呼び出しに応じて、アクセストークン管理部104から、認可情報記憶部105に登録(格納)されているアクセストークンを取得する(S15)。サービスEは、APIゲートウエイ11から送信される、ユーザ情報テーブル22のユーザID、パス、サービス名を含む情報を利用して、アクセストークン管理部104から所定のアクセストークンを取得する。サービスEは、当該アクセストークンを利用してリソースサーバ14にアクセスし、サービスFを呼び出して必要なリソースを取得する(S16)。これにより、クライアント2は、APIゲートウエイ11を介して、サービスAからEが連携して実現される、所定のサービスの全機能が提供される。 In this case, service E acquires an access token registered (stored) in authorization information storage unit 105 from access token management unit 104 in response to a call from service B (S15). The service E acquires a predetermined access token from the access token management unit 104 using information including the user ID, path, and service name of the user information table 22 transmitted from the API gateway 11 . The service E uses the access token to access the resource server 14, calls the service F, and acquires the necessary resource (S16). As a result, the client 2 is provided with all the functions of a predetermined service realized through the cooperation of the services A to E via the API gateway 11 .

一方、APIゲートウエイ11は、認可判定部102がアクセストークン管理部104からアクセストークンが登録済みでないとの返信を受けると(S5のNO)、通信部101を経由して認可サーバ13にリダイレクトする(S6)。以下、図6を参照して前述したように、アクセストークン管理部104は、認可サーバ13が発行するアクセストークンを、認可情報記憶部105に登録(格納)する処理を実行する。 On the other hand, when the authorization determination unit 102 receives a reply from the access token management unit 104 that the access token has not been registered (NO in S5), the API gateway 11 redirects to the authorization server 13 via the communication unit 101 ( S6). As described above with reference to FIG. 6, the access token management unit 104 executes processing for registering (storing) the access token issued by the authorization server 13 in the authorization information storage unit 105 .

即ち、認可サーバ13は、クライアント2にログイン画面を表示する(S7)。クライアント2は、ユーザがログイン画面に入力した、ユーザIDとパスワードを、認可サーバ13に送信する(S8)。認可サーバ13は、送信されたユーザIDとパスワードが正しくない場合には、クライアント2にログイン画面を再度表示する(S9のNO)。 That is, the authorization server 13 displays a login screen on the client 2 (S7). The client 2 transmits the user ID and password that the user has entered on the login screen to the authorization server 13 (S8). If the transmitted user ID and password are not correct, the authorization server 13 displays the login screen again on the client 2 (NO in S9).

一方、認可サーバ13は、送信されたユーザIDとパスワードが正しい場合には(S9のYES)、通信部101に認可コードを返信する(S10)。APIゲートウエイ11は、通信部101を経由し、認可コードを利用して認可サーバ13からアクセストークンを取得する(S11)。通信部101は、取得したアクセストークンを、アクセストークン管理部104に渡す(S12)。アクセストークン管理部104は、アクセストークンを認可情報記憶部105に登録する(S13)。具体的には、アクセストークン管理部104は、認可情報記憶部105に格納されているユーザ情報テーブル22に対して、ユーザID、パス、サービス名(E)、アクセストークン、アクセストークンの有効期限を登録する(図4を参照)。 On the other hand, when the transmitted user ID and password are correct (YES in S9), the authorization server 13 returns an authorization code to the communication unit 101 (S10). The API gateway 11 uses the authorization code to acquire an access token from the authorization server 13 via the communication unit 101 (S11). The communication unit 101 passes the acquired access token to the access token management unit 104 (S12). The access token management unit 104 registers the access token in the authorization information storage unit 105 (S13). Specifically, the access token management unit 104 stores the user ID, the pass, the service name (E), the access token, and the expiration date of the access token in the user information table 22 stored in the authorization information storage unit 105. Register (see Figure 4).

ここで、サービス関連作成部106は、APIゲートウエイ11からの通知に応じたサービス起動時に、サービス関連テーブル20及び認可情報テーブル21を作成して認可情報記憶部105に格納する。図10は、サービス関連作成部106の処理を示すフローチャートである。 Here, the service relation creation unit 106 creates the service relation table 20 and the authorization information table 21 and stores them in the authorization information storage unit 105 when the service is activated in response to the notification from the API gateway 11 . FIG. 10 is a flow chart showing the processing of the service relation creation unit 106. As shown in FIG.

図10に示すように、サービス起動時に、サービス関連作成部106は、APIゲートウエイ11を経由して、サービス提供サーバ15により呼び出される。サービス関連作成部106は、サービス提供サーバ15からAPIゲートウエイ11を経由して提供される情報に基づいて、サービス関連テーブル20を作成して認可情報記憶部105に格納(登録)する(S40)。この場合、サービス関連作成部106は、サービスのソースコードや設定ファイルなどに基づいて各サービスの呼び出し関係を取得し、サービス関連テーブル20を作成する。 As shown in FIG. 10 , the service-related creation unit 106 is called by the service providing server 15 via the API gateway 11 when the service is activated. The service relation creation unit 106 creates the service relation table 20 based on the information provided from the service providing server 15 via the API gateway 11, and stores (registers) it in the authorization information storage unit 105 (S40). In this case, the service relation creation unit 106 acquires the call relation of each service based on the service source code, setting file, etc., and creates the service relation table 20 .

次に、サービス関連作成部106は、サービス提供サーバ15からAPIゲートウエイ11を経由して提供される情報に基づいて、認可情報テーブル21を作成して認可情報記憶部105に格納(登録)する(S41)。この場合、サービス関連作成部106は、サービスのソースコードや設定ファイルなどに基づいて、該当するサービスが認可を必要とするか否かの情報を取得し、認可情報テーブル21を作成する。 Next, the service relation creation unit 106 creates the authorization information table 21 based on the information provided from the service providing server 15 via the API gateway 11 and stores (registers) it in the authorization information storage unit 105 ( S41). In this case, the service-related creating unit 106 acquires information as to whether or not the corresponding service requires authorization based on the service source code, setting file, etc., and creates the authorization information table 21 .

以上のように本実施形態によれば、クライアントからのリクエストに応じて、複数のサービスが連携して所定のサービスの全機能を実現する、マイクロサービスを提供することが可能となる。このようなマイクロサービスにおける各サービスの呼び出し関係において、呼び出し先のサービスで認可が必要となる場合に、当該サービスが認可に必要なアクセストークンを利用することができる。これにより、連携する複数のサービスの中で、認可を必要としない呼び出し元のサービスは、呼び出し先の認可に必要な認可処理機能の実装が不要となる。従って、各サービスが連携してマイクロサービスを実現する場合に、各サービスの独立性を確保することができる。 As described above, according to this embodiment, it is possible to provide microservices in which a plurality of services cooperate to realize all the functions of a predetermined service in response to a request from a client. In such a relationship of calling each service in a microservice, if the called service requires authorization, the service can use the access token required for authorization. As a result, the caller service that does not require authorization among the multiple linked services does not need to implement the authorization processing function required for authorization of the callee. Therefore, the independence of each service can be ensured when each service cooperates and realizes a microservice.

なお、本実施形態では、OAuth2というプロトコルを利用する認可について説明したが、これに限ることなく、別の方式による認可にも適用できる。また、本実施形態の各サービスの呼び出し関係は一例であり、別の呼び出し関係にも適用できる。 In this embodiment, authorization using a protocol called OAuth2 has been described, but the present invention is not limited to this, and can be applied to authorization using another method. Also, the calling relationship of each service in this embodiment is an example, and can be applied to other calling relationships.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 While several embodiments of the invention have been described, these embodiments have been presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and modifications can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the scope of the invention described in the claims and equivalents thereof.

1…システム、2…クライアント、10…認可処理装置、11…APIゲートウエイ、
12…サービスレジストリ、13…認可サーバ、14…リソースサーバ、
15…サービス提供サーバ、101…通信部、102…認可判定部、
103…認可情報取得部、104…アクセストークン管理部、
105…認可情報記憶部、106…サービス関連作成部。
1... system, 2... client, 10... authorization processing device, 11... API gateway,
12... service registry, 13... authorization server, 14... resource server,
15... Service providing server, 101... Communication unit, 102... Authorization determination unit,
103... authorization information acquisition unit, 104... access token management unit,
105... Authorization information storage unit, 106... Service related creation unit.

Claims (7)

複数のサービスを連携して、所定の機能を実現するシステムに適用するサービス認可処理装置であって、
連携する各サービスを実行する際に、認可が必要であるか否かを判定する認可判定手段と、
認可が必要であるサービスに対して認可に利用する認可情報を提供するために、前記認可情報を取得して管理する認可情報管理手段と、
前記連携する各サービスの起動時に、前記システムに含まれるサーバから取得する情報に基づいて、前記連携する各サービス毎に、呼び出し関係を示す第1の情報と、認可の必要性が有るか又は無いかを特定する第2の情報とを含む認可処理情報を作成する認可処理情報作成手段と、
前記認可処理情報作成手段によって作成された前記認可処理情報を格納する第2の記憶装置とを具備し
記認可判定手段は、前記認可処理情報において、前記第2の情報に、許可の必要性が無いと特定されているサービスが認可を必要としないと判定する、
サービス認可処理装置。
A service authorization processing device applied to a system that realizes a predetermined function by linking a plurality of services,
authorization determination means for determining whether or not authorization is required when executing each linked service;
authorization information management means for acquiring and managing the authorization information in order to provide authorization information used for authorization to a service that requires authorization;
When each of the services to be linked is activated, based on information acquired from a server included in the system, first information indicating a calling relationship and whether or not authorization is required for each of the services to be linked authorization processing information creating means for creating authorization processing information including second information specifying whether
a second storage device for storing the authorization processing information created by the authorization processing information creating means ;
The authorization determination means determines that a service specified as not requiring authorization in the second information in the authorization processing information does not require authorization.
Service Authorization Processor.
前記認可情報管理手段は、
前記システムに含まれるサーバから、前記認可判定手段により認可が必要であると判定されるサービスに対応する認可情報を取得し、
前記認可情報を第1の記憶装置に格納し、
前記認可情報を利用するサービスからの要求に基づいて、前記第1の記憶装置から前記認可情報を取り出して前記サービスに提供する、請求項1に記載のサービス認可処理装置。
The authorization information management means
Acquiring authorization information corresponding to a service judged to require authorization by the authorization judgment means from a server included in the system;
storing the authorization information in a first storage device;
2. The service authorization processing device according to claim 1, which retrieves said authorization information from said first storage device and provides said authorization information to said service based on a request from said service using said authorization information.
請求項1又は2に記載のサービス認可処理装置と、
前記サービス認可処理装置と通信して、複数のサービスを連携して実行する第1のサーバと、
前記サービス認可処理装置と通信して、前記認可情報を生成して前記サービス認可処理装置に提供する第2のサーバと
を具備する、システム。
a service authorization processing device according to claim 1 or 2 ;
a first server that communicates with the service authorization processing device and executes a plurality of services in cooperation;
and a second server in communication with the service authorization processing device to generate and provide the authorization information to the service authorization processing device.
前記サービス認可処理装置は、
前記第1のサーバ及び前記第2のサーバと通信し、各種の情報を交換する中継手段を含む、請求項に記載のシステム。
The service authorization processing device,
4. The system according to claim 3 , comprising relay means for communicating with said first server and said second server and exchanging various information.
複数のサービスを連携して、所定の機能を実現するシステムに適用するサービス認可処理の方法であって、
連携する各サービスを実行する際に、認可が必要であるか否かを判定する処理と、
認可が必要であるサービスに対して認可に利用する認可情報を提供するために、前記認可情報を取得して管理する処理と、
前記連携する各サービスの起動時に、前記システムに含まれるサーバから取得する情報に基づいて、前記連携する各サービス毎に、呼び出し関係を示す第1の情報と、認可の必要性が有るか又は無いかを特定する第2の情報とを含む認可処理情報を作成して、第2の記憶装置に格納する処理と、
前記認可処理情報において、前記第2の情報に、許可の必要性が無いと特定されているサービスが認可を必要としないと判定する処理とを実行する、方法。
A service authorization processing method applied to a system realizing a predetermined function by linking a plurality of services,
a process of determining whether or not authorization is required when executing each linked service;
a process of acquiring and managing the authorization information in order to provide the authorization information used for authorization to a service that requires authorization;
When each of the services to be linked is activated, based on information acquired from a server included in the system, first information indicating a calling relationship and whether or not authorization is required for each of the services to be linked a process of creating authorization process information including second information specifying whether the
and determining, in the authorization processing information, that the service identified as not requiring authorization in the second information does not require authorization.
前記システムに含まれるサーバから、認可が必要であると判定されるサービスに対応する前記認可情報を取得する処理と、
前記認可情報を第1の記憶装置に格納する処理と、
前記認可情報を利用するサービスからの要求に基づいて、前記第1の記憶装置から前記認可情報を取り出して前記サービスに提供する処理と
を実行する、請求項に記載の方法。
a process of acquiring the authorization information corresponding to a service determined to require authorization from a server included in the system;
a process of storing the authorization information in a first storage device;
6. The method according to claim 5 , further comprising retrieving said authorization information from said first storage device and providing said authorization information to said service based on a request from said service using said authorization information.
請求項又はに記載の方法による各処理を、コンピュータに実行させるプログラム。 A program that causes a computer to execute each process according to the method according to claim 5 or 6 .
JP2018224487A 2018-11-30 2018-11-30 SERVICE AUTHORIZATION PROCESSING APPARATUS, SYSTEM, METHOD AND PROGRAM Active JP7271147B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018224487A JP7271147B2 (en) 2018-11-30 2018-11-30 SERVICE AUTHORIZATION PROCESSING APPARATUS, SYSTEM, METHOD AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018224487A JP7271147B2 (en) 2018-11-30 2018-11-30 SERVICE AUTHORIZATION PROCESSING APPARATUS, SYSTEM, METHOD AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2020087235A JP2020087235A (en) 2020-06-04
JP7271147B2 true JP7271147B2 (en) 2023-05-11

Family

ID=70908432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018224487A Active JP7271147B2 (en) 2018-11-30 2018-11-30 SERVICE AUTHORIZATION PROCESSING APPARATUS, SYSTEM, METHOD AND PROGRAM

Country Status (1)

Country Link
JP (1) JP7271147B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013105442A (en) 2011-11-16 2013-05-30 Canon Inc System and control method
JP2017059219A (en) 2015-09-18 2017-03-23 株式会社リコー Information processing system, information processing apparatus, and information processing method
US20170083697A1 (en) 2015-09-18 2017-03-23 Ricoh Company, Ltd. Information processing system, information processing apparatus, and method for processing information
JP2017204073A (en) 2016-05-10 2017-11-16 株式会社リコー Information processing apparatus, approval method and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013105442A (en) 2011-11-16 2013-05-30 Canon Inc System and control method
JP2017059219A (en) 2015-09-18 2017-03-23 株式会社リコー Information processing system, information processing apparatus, and information processing method
US20170083697A1 (en) 2015-09-18 2017-03-23 Ricoh Company, Ltd. Information processing system, information processing apparatus, and method for processing information
JP2017204073A (en) 2016-05-10 2017-11-16 株式会社リコー Information processing apparatus, approval method and program

Also Published As

Publication number Publication date
JP2020087235A (en) 2020-06-04

Similar Documents

Publication Publication Date Title
JP5270697B2 (en) publish / subscribe message broker
CN102202078B (en) The method and system of a kind of multiple foreign peoples roles for configuration server field
US9652206B2 (en) Rule engine system controlling devices of disparate types and protocols
US20140149194A1 (en) Granting of benefits
CA2843284C (en) Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application
EP3355183A1 (en) System and method to distribute firmware updates in a hierarchical network structure using a publish/subscribe message broker
US20220172196A1 (en) Electronic money exchanging apparatus, electronic money exchanging method, and electronic money exchanging system
JP2009099131A (en) Access authorization system, access control server, and business process execution system
JP7271147B2 (en) SERVICE AUTHORIZATION PROCESSING APPARATUS, SYSTEM, METHOD AND PROGRAM
JP2017068295A (en) Settlement processing device mail order ordering and order receiving system, settlement processing method, and program
JP6316999B1 (en) Reservation management call system, reservation management call program, and reservation management call method
JP6163170B2 (en) Service cooperation system, service cooperation apparatus, terminal device, service cooperation method, and service cooperation program
KR20170035574A (en) Method and apparatus for providing digital goods using synchronization of user account
JP7556311B2 (en) Information management server, information management method, and program
KR20070061067A (en) Method and system for handling the network events in application server using open api based web services
JP2020009274A (en) Application information providing system and application information providing method
JP4737537B2 (en) Content information transmitting apparatus, content information transmitting method, and program
JP6522490B2 (en) Network system, control device, and program
JP2018181012A (en) Business cooperation system and business cooperation method
JP6649527B2 (en) Message management device and message management method
JP5324276B2 (en) Information acquisition system, connection destination information acquisition server, and program
US20230135722A1 (en) Distributed system, method, computer program, and computer-readable medium directed to user interaction with media content
JP2009157676A (en) Information providing system
JP2007265311A (en) Customer management system
JP2004145499A (en) Authentication support system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221122

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20230111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230222

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230222

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230303

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20230307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230426

R150 Certificate of patent or registration of utility model

Ref document number: 7271147

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150