IP Library Granted Patent US 10,511,574
Granted Patent B2
US 10,511,574 · App. 15/476,125 · Granted Dec 17, 2019

Methods and apparatuses for utilizing a gateway integration server to enhance application security

Inventors: Yana Poliashenko (Alpharetta, GA); Latonia M Howard (Stone Mountain, GA)
Assignee: HYLAND SOFTWARE, INC.
H04L63/0281H04L63/0807H04L63/101H04L63/205
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,511,574
App. No.
15/476,125
Granted
Dec 17, 2019
Kind
B2
Abstract

Embodiments are disclosed for managing interactions between a server application and an external environment while limiting an attack surface of the server application. An example method includes receiving, by communications circuitry of a gateway integration server (GIS) and from a source device in the external environment, a message including an application programming interface (API) call. The example method further includes evaluating, by authentication circuitry of the GIS, whether the API call is authorized. If so, the example method further includes generating, by response circuitry of the GIS, a response to the API call, and transmitting, by the communications circuitry of the GIS and to the source device, the response to the API call. However, if not, the example method includes transmitting, by the communications circuitry of the GIS, an error message to the source device. Corresponding apparatuses and computer program products are also provided.

Claims (58)

1. A method for managing interactions between a server application and an external environment while limiting an attack surface of the server application, the method comprising:

storing, by a memory of a gateway integration server (GIS) and during a GIS provisioning procedure, a set of security settings that govern authorization to access application programming interfaces (APIs) made available by the server application, wherein the set of security settings authorize access to only a proper subset of the APIs made available by the server application;

receiving, by communications circuitry of the GIS and from a source device in the external environment, a message including an API call, the API call requesting access to a particular API made available by the server application,

evaluating by the authentication circuitry of the GIS and based on the set of security settings, whether access to the particular API is authorized;

in an instance in which the authentication circuitry of the GIS determines that access to the particular API is authorized,

generating, by response circuitry of the GIS, a response to the API call, and

transmitting, by the communications circuitry of the GIS and to the source device, the response to the API call; and

in an instance in which the authentication circuitry of the GIS determines that access to the particular API is not authorized,

generating, by response circuitry of the GIS, an error message, and

transmitting, by the communications circuitry of the GIS, the error message to the source device;

wherein the server application is hosted by a server system, and the GIS is hosted in a demilitarized zone external to the server system.

2. The method of claim 1 , wherein the error message is indistinguishable from an error message generated in response to an API call requesting access to an API that does not exist.

3. The method of claim 1 , wherein the set of security settings (1) indicates which of the APIs made available by the server application are enabled APIs and (2) includes a set of security models that specifies security options for administering access to the enabled APIs from devices in the external environment.

4. The method of claim 1 , wherein evaluating whether access to the particular API is authorized includes:

determining, by the authentication circuitry of the GIS, whether the set of security settings define the particular API as enabled,

wherein the API call is not authorized in an instance in which the set of security settings do not define the particular API as enabled.

5. The method of claim 1 ,

wherein the message from the source device includes a source device credential, and

wherein evaluating whether access to the particular API is authorized includes determining, by the authentication circuitry of the GIS and based on the source device credential and the set of security settings, whether the source device is authorized to make the API call,

wherein the API call is not authorized in an instance in which the source device is not authorized to make the API call.

6. The method of claim 5 , wherein the set of security settings identifies a particular security model applicable to the particular API, wherein the particular security model defines whether the source device is authorized to make the API call.

7. The method of claim 1 , wherein generating the response to the API call includes:

generating, by the response circuitry of the GIS, a secure message by creating a message including the API call and a secure token created using a key selected from a key store provided to a memory of the gateway integration server during a GIS provisioning procedure;

transmitting, by communications circuitry of the GIS, the secure message to the server application;

receiving, by the communications circuitry of the GIS and in response to transmission of the secure message, a responsive transmission from the server application, wherein the responsive transmission includes the response to the API call; and

generating the response to the API call based on the responsive transmission.

8. The method of claim 7 , further comprising:

encrypting the secure message to enhance security.

9. A gateway integration server for managing interactions between a server application and an external environment while limiting an attack surface of the server application, the gateway integration server comprising:

a memory storing a set of security settings that govern authorization to access application programming interfaces (APIs) made available by the server application, wherein the set of security settings authorize access to only a proper subset of the APIs made available by the server application;

communications circuitry configured to receive, from a source device in the external environment, a message including an API call, the API call requesting access to a particular API made available by the server application; and

authentication circuitry configured to evaluate, based on the set of security settings, whether access to the particular API is authorized; and

response circuitry configured to

in an instance in which the authentication circuitry determines that access to the particular API is authorized, generate a response to the API call, wherein the communications circuitry is further configured to transmit the response to the API call to the source device, and

in an instance in which the authentication circuitry determines that access to the particular API is not authorized, generate an error message, wherein the communications circuitry is further configured to transmit the error message to the source device;

wherein the response circuitry is configured to generate the response to the API call by:

generating, by the response circuitry, a secure message by creating a message including the API call and a secure token created using a key selected from a key store provided to a memory of the gateway integration server during a GIS provisioning procedure;

causing transmitting, by the communications circuitry, of the secure message to the server application; and

generating the response to the API call based on receipt of a responsive transmission from the server application.

10. The gateway integration server of claim 9 , wherein the error message is indistinguishable from an error message generated in response to an API call requesting access to an API that does not exist.

11. The gateway integration server of claim 9 , wherein the set of security settings (1) indicates which of the APIs made available by the server application are enabled APIs and (2) includes a set of security models that specifies security options for administering access to the enabled APIs from devices in the external environment.

12. The gateway integration server of claim 9 , wherein the authentication circuitry is configured to evaluate whether access to the particular API is authorized by:

determining whether the set of security settings define the particular API as enabled,

wherein the API call is not authorized in an instance in which the set of security settings do not define the particular API as enabled.

13. The gateway integration server of claim 9 ,

wherein the message from the source device includes a source device credential, and

wherein the authentication circuitry is configured to evaluate whether access to the particular API is authorized by determining, based on the source device credential and the set of security settings, whether the source device is authorized to make the API call,

wherein the API call is not authorized in an instance in which the source device is not authorized to make the API call.

14. The gateway integration server of claim 13 , wherein the set of security settings identifies a particular security model applicable to the particular API, wherein the particular security model defines whether the source device is authorized to make the API call.

15. The gateway integration server of claim 11 , wherein the response circuitry is further configured to enhance security of the secure message by encrypting the secure message.

16. A method for provisioning a gateway integration server (GIS) to facilitate secure interaction between a server device that makes available a set of application programming interfaces (APIs) and at least one device in an external environment, the method comprising:

receiving, by provisioning circuitry of a server system, system integration requirements;

identifying, by the provisioning circuitry of the server system, available security settings facilitating secure interaction between the server device and the at least one device in the external environment given the received system integration requirements;

receiving, by communications circuitry of the server system, selection of a set of security settings for the GIS from the available security settings, the selected set of security settings identifying a subset of the set of APIs as enabled APIs; and

initiating, by the provisioning circuitry of the server system, distribution of the selected set of security settings to the GIS;

wherein the GIS is hosted in a demilitarized zone external to the server system.

17. The method of claim 16 , wherein initiating distribution of the set of security settings to the GIS includes:

causing transmitting, by the communications circuitry of the server system, the selected set of security settings to the GIS.

Assignments (14)
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 045870/0395 Recorded Sep 24, 2023
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: HYLAND SOFTWARE, INC.
Reel/Frame 065018/0046 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 045870/0389 Recorded Sep 24, 2023
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: HYLAND SOFTWARE, INC.
Reel/Frame 065019/0704 →
SECURITY INTEREST Recorded Sep 19, 2023
From: HYLAND SOFTWARE, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 064952/0333 →
RELEASE AND REASSIGNMENT OF CERTAIN PATENTS RECORDED AT R/F 044096/0852 Recorded Aug 30, 2023
From: JPMORGAN CHASE BANK, N.A.
To: ALLSCRIPTS SOFTWARE, LLC
Reel/Frame 064761/0037 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT (SECOND LIEN) Recorded Apr 9, 2018
From: HYLAND SOFTWARE, INC.
To: CREDIT SUISSE
Reel/Frame 045870/0389 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT (FIRST LIEN) Recorded Apr 9, 2018
From: HYLAND SOFTWARE, INC.
To: CREDIT SUISSE
Reel/Frame 045870/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2018
From: ALLSCRIPTS SOFTWARE, LLC
To: HYLAND SOFTWARE, INC.
Reel/Frame 045480/0747 →
SECURITY INTEREST Recorded Nov 10, 2017
From: ALLSCRIPTS SOFTWARE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044096/0852 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2017
From: MCKESSON CORPORATION
To: PF2 MCKESSON TECHNOLOGIES INC.
Reel/Frame 043904/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2017
From: PF2 MCKESSON TECHNOLOGIES INC.
To: PF2 EIS LLC
Reel/Frame 043904/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2017
From: PF2 EIS LLC
To: ALLSCRIPTS HEALTHCARE, LLC
Reel/Frame 043815/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2017
From: ALLSCRIPTS HEALTHCARE, LLC
To: ALLSCRIPTS HEALTHCARE US, LP
Reel/Frame 043815/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2017
From: ALLSCRIPTS HEALTHCARE US, LP
To: ALLSCRIPTS SOFTWARE, LLC
Reel/Frame 043815/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: POLIASHENKO, YANA; HOWARD, LATONIA M
To: MCKESSON CORPORATION
Reel/Frame 041813/0384 →
Continuity (1)
Related Publication 20180288025A1 · Oct 4, 2018