/
Gateway Api

Gateway Api

The gateway service should not be exposed to the public internet.

The gateway service includes an API which allows you to programmatically provision remote agents (and channels, packages, etc.).

To enable the gateway api service, run the Gateway configuration wizard and enable the 'Enable API' checkbox. Optionally change the API port (cannot be the same port as other gateway services):

In order to provide authentication (and TLS traffic encryption), each client which will access this API must provide a certificate. This certificate must be installed within the “Trusted People” folder of the gateway host machine.

The recommended approach is to create a unique self-signed certificate for each distinct API client. See https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate for information on creating self-signed certificates in Windows. We recommend setting the subject name of the certificate to a value which can identify the consumer (user name, machine name, etc.).

Some users have had issues using the above method (specifically the inability to export the certificate). The image below shows an alternate method for generating and exporting both certificates (one with a PK (pfx) and one without (cer)).

 

Once you have run the Powershell command, you will find the new certificate in your Personal folder of the Local machine store.

Export this certificate to a file using the default export settings. You will need to export this file twice, once without the private key, and once with the private key (supply a password when exporting with the private key). Copy the non-private-key file over to the gateway host and install it into the “Trusted People” store of the Local Computer. This can be achieved by right clicking the certificate file (on the gateway host) and choosing the “install certificate” option.

Choose the Local Machine store. Then select the ‘Trusted People’ store as the target.

You have now completed the requirements for the client API to create a tunnel with the API service. Verify that the certificate installed correctly on the Gateway host by looking in the ‘Trusted People’ store.

Deleting an API client certificate from this store will revoke access to the gateway API.

Next, reference the C# client library (Connexion.Gateway.Api.dll, both framework and core assemblies are available) and create a proxy to the gateway. You will need the System.ServiceModel.Primitives and System.ServiceModel.Http packages if you’re targeting .NET core. You will supply the exported certificate with the private key in this method.

class Program { static async Task Main(string[] args) { // load the certificate to pass to the gateway api var certificate = new X509Certificate2(@"c:\test\apicert.pfx", "foobar"); // create a proxy to the GW using (var proxy = GatewayApiProxyFactory.CreateProxy("127.0.0.1", 8086, certificate)) { // test the connection Console.WriteLine("Calling Query Groups..."); var response = await proxy.ServiceMethods.QueryGroups(new QueryGroupsRequest()); foreach (var group in response.Groups) { Console.WriteLine(group.GroupName); } } Console.ReadLine(); } }

At this point, you can now make API calls to create and modify non-authorized remote agents. In the future, we may enable specific updates to authorized remote agents.

Sample client projects:

 

Related content

New Features & Updates in v16
New Features & Updates in v16
More like this
Message Tracing
Message Tracing
Read with this
Connexion Api
Connexion Api
More like this
v16 Developer Release
v16 Developer Release
Read with this
Configure SSL on Inbound HL7 Device
Configure SSL on Inbound HL7 Device
More like this
v15 Releases
v15 Releases
Read with this