Also in previous versions you could define your FHIR Server to accept requests via OAuth 2.0 (e.g. for a SMART on FHIR client) but nowadays with v2024.3, which was released a while ago, there is a new feature, that enables doing this more easily - the OAuth FHIR Client QuickStart.
.png)
.png)
This "QuickStart" is a Wizard-like "helper" that allows you to connect your FHIR server to an OAuth server and enable OAuth authentication and authorization for FHIR requests, within 5 simple steps (really just 3...).
- Step 1 - Create or Choose FHIR Server
.png)
You might have already a FHIR Server (Endpoint) you defined, or you might have not defined one yet, and want to define one now, as part of this QuickStart.
- Step 2 - Select FHIR Server
If you chose to 'Use an Existing' you will be shown available endpoints, per Namespace. For example:
.png)
If you chose to 'Create New' you'll be shown a small form to create a new endpoint:
This is similar to what you would see if you create the endpoint before hand by yourself:
.png)
- Step 3 - Select OAuth Server Type
.png)
You can chose to use an external OAuth server (e.g. auth0 by Okta), or use the built-in OAuth Server within InterSystems IRIS.
If you want to use IRIS as your OAuth Server, you'll need to setup IRIS as an OAuth server, supporting FHIR, you have a "shortcut" for that as well, a method you can call that will set this up for you.
Note Secure Communication needs to be setup for this to work.
- Step 4 - Configure OAuth Server
If you chose to use an external OAuth server, you will be prompted for it's Issuer Endpoint:
.png)
If you happened to have defined one already you can choose it from the dropdown, if not you can type (or paste) it in.
In any case you can test this OAuth server endpoint, for example:
.png)
- Step 5 (or 4 if you chose the internal IRIS OAuth server) - Confirm
You'll see a short confirmation info and a 'Confirm' button.
For example (choosing to create a new FHIR Server, and using the IRIS internal OAuth server):
.png)
Or for example (choosing an existing FHIR endpoint, and an external OAuth server):
.png)
If all goes well you'll see a message this was created successfully.
If not, you'll get an appropriate message.
Behind the scenes you should be able to observe a few things -
- You'll see the client defined under the OAuth clients (with it's details):
.png)
- You'll see the client defined in your FHIR Endpoint:
.png)
- In the general Security section of the Management Portal, under OAuth 2.0, you will also be able to find a Client Definition with a Client Configuration.
Assuming all the above is working you can start using OAuth (and specifically SMART on FHIR) to communicate with your FHIR Server.
More on that... in a future Article...
.png)