Patent application EP17190869A (EP), filed 2017-09-13
Publication number: EP3376386A1
Title: EXTENSIBLE KEY MANAGEMENT SYSTEM FOR APPLICATION PROGRAM INTERFACES
Abstract: An extensible key management system includes a developer services portal for accessing an application. The system may identify initiation via the developer services portal of an association of the application with an external API of a third party provider service and automatically obtain a sub-key for the external API from the third party provider service on behalf of a developer of the application. The sub-key may be obtained in accordance with authorization provided by a master key previously provided from the third party provider service. The system may map an association between the sub-key, the application and the external API and store the association. Upon receipt of a service call message resulting from a request from a user device executing the application, the system may identify and replace a developer API key included in the service call message with the sub-key based on the stored association.
IPC codes: H04L  29/    08            A I
G06F   9/    54            A I
H04L  67/    53            A I
H04L   9/    08            A I
H04L   9/    32            A I
Claims: number: 1
text: A method of performing extensible key management for application program interfaces (APIs), the method comprising:
number: 2
text: The method of claim 1, wherein obtaining and storing, by the processor, the first sub-key for the first external API and the second sub-key for the second external API comprises transmitting, by the processor, a first request to the first third party provider service for the first sub-key that includes a first master key, and a second request to the second third party provider service for the second sub-key that includes a second master key, the first and second master keys previously provided from the first and second third party provider services, respectively, as pre-authorization to obtain the first sub-key and the second sub-key on behalf of a developer of the application.
number: 3
text: The method of claim 1 or claim 2, wherein obtaining and storing, by the processor, the first sub-key for the first external API and the second sub-key for the second external API comprises mapping and storing a first association between the first sub-key, the application and the first external API of the first third party provider service and mapping and storing a second association between the second sub-key, the application and the second external API of the second third party provider service.
number: 4
text: The method of any one of claims 1 - 3, further comprising proxying, by the processor, the first service call message which includes the first sub-key to the first external API of the first third party provider service, and proxying, by the processor, the second service call message which includes the second sub-key to the second external API of the second third party provider service.
number: 5
text: The method of any one of claims 1 - 4, wherein associating, via the developer services portal, the application with the first API proxy for the first external API of the first third party provider service and with the second API proxy for the second external API of the second third party provider service comprises identifying initiation of an association of the application with the first API proxy and with the second API proxy, and automatically, with the processor, transmitting a first request to the first third party provider service for the first sub-key and a second request to the second third party provider service for the second sub-key.
number: 6
text: The method of any one of claims 1 - 5, wherein transmitting the first request to the first third party provider service for the first sub-key and the second request to the second third party provider service for the second sub-key comprises the steps of retrieving and including, by the processor, in the first request a first master key previously obtained from the first third party provider service, and retrieving and including, by the processor, in the second request a second master key previously obtained from the second third party provider service, wherein the first sub-key is associated with the first master key and the second sub-key is associated with the second master key.
number: 7
text: The method of any one of claims 1 - 6, wherein receiving the first service call message from the application for the first external API that includes the developer API key and receiving the second service call message from the application for the second external API that includes said developer API key comprises the steps of parsing, by the processor, the first and second service call messages to identify the developer API key and a service type as key management services; and retrieving, by the processor with a first core capability service included in the key management services, the first sub-key based on a stored association of the developer API key with the application and the first external API, and retrieving, by the processor with a second core capability service included in the key management services, the second sub-key based on a stored association of the developer API key with the application and the second external API.
number: 8
text: The method of any one of claims 1 - 7, wherein replacing, by the processor, the developer API key with the first sub-key in the first service call message or replacing, by the processor, the developer API key with the second sub-key in the second service call message comprises:
number: 9
text: An extensible key management system comprising:
number: 10
text: The extensible key management system of claim 9, further comprising an API key storage in which a plurality of sub-keys are stored in association with respective applications and external APIs, wherein the context service is executable by the processor to identify a service type of the service call message as a key management type, and to identify a storage location of the sub-key in the API key storage to the key management service.
number: 11
text: The extensible key management system of claim 9 or claim 10, further comprising a developer services portal configured to enable association of the application with the external API, the developer services portal executable by the processor to automatically obtain the sub-key for the external API of the third party provider service in response to inputs received in the developer services portal to initiate association of the API proxy with the application.
number: 12
text: The extensible key management system of claim 11, wherein the developer services portal is executable by the processor to automatically link the API proxy to the context service such that the context service is selected in response to receipt of the service call message at the API proxy.
number: 13
text: The extensible key management system of any one of claims 9 - 12, wherein the context service is a plurality of context services and wherein the API proxy is executable by the processor to select the context service from among the plurality of context services based on an association between the API proxy and the context service.
number: 14
text: The extensible key management system of any one of claims 9 - 13, wherein the key management service is invoked by a developer services portal to automatically add the sub-key of the external API via an API gateway platform, and the key management service is invoked by the processor via the API gateway platform in response to the service call message from the application.
number: 15
text: A computer program comprising instructions that, when executed by a processor, cause the processor to carry out the method of any one of claims 1 - 8.
Office action: search_report, dated 2018-09-19
Prior art cited: ref_id: - WSO2 INC: "WSO2 API Manager", 6 February 2017 (2017-02-06), pages 1 - 825, XP055457316, Retrieved from the Internet <URL:https://docs.wso2.com/download/attachments/50518188/AM200-150218-0149-488.pdf?api=v2> [retrieved on 20180307]
ref_type: npl
severity: background
ref_id: - ERICH GAMMA ET AL: "Design Patterns: elements of reusable object-oriented software passage", DESIGN PATTERNS. ELEMENTS OF REUSABLE OBJECT-ORIENTED SOFTWARE, XX, XX, 1 January 1995 (1995-01-01), pages 1 - 9,207, XP002200550
ref_type: npl
severity: background
ref_id: - ANONYMOUS: "Release Matrix - WSO2 releases - dates", 7 March 2018 (2018-03-07), XP055457297, Retrieved from the Internet <URL:https://wso2.com/products/carbon/release-matrix/> [retrieved on 20180307]
ref_type: npl
severity: background
ref_id: - Wso2 Inc, "WSO2 API Manager", (20170206), pages 1 - 825, URL: https://docs.wso2.com/download/attachments/50518188/AM200-150218-0149-488.pdf?api=v2, (20180307), XP055457316 [I] 1-15 * page  20  - page  54 * * page  228  - page  239 *
ref_type: npl
severity: background
ref_id: - ERICH GAMMA ET AL, "Design Patterns: elements of reusable object-oriented software passage", DESIGN PATTERNS. ELEMENTS OF REUSABLE OBJECT-ORIENTED SOFTWARE, XX, XX, (19950101), pages 1 - 9,207, XP002200550 [A] 1-15 * the whole document *
ref_type: npl
severity: background
ref_id: - Anonymous, "Release Matrix - WSO2 releases - dates", (20180307), URL: https://wso2.com/products/carbon/release-matrix/, (20180307), XP055457297 [L] * Shows the launch dates for the different WSO2 API Manager versions. Establishes the availability date of D1.; page  1 *
ref_type: npl
severity: background
Final disposition: pending (2018-09-19)