1.3 FHIR Authentication and Authorisation

FHIR Authentication

The objective is to manage User authentication directly from the FHIR module. The JWT authentication mechanism is used. FHIR module is using the authentication services so the token can be used in both FHIR REST API and GraphQL queries.

FHIR REST API Login endpoint

The /login endpoint has been added to the FHIR R4 module to allow the generation of the JWT token through the FHIR R4 module’s REST API.

POST /api_fhir_r4/login Request body: { "username": [username], "password": [password] } HTTP 200 Response body: { "token": [token] "exp": [expire_date] } HTTP 401 Response if credentials are not valid

FHIR REST API Authorization header

All other FHIR R4 requests should contain the Authorization header with the Bearer token.

Authorization: Bearer [token] HTTP 200 Response when token validated (the actual resource payload is returned) HTTP 401 Response when: if Authorization header is missing if Bearer prefix is missing if error on decoding Authorization header if token is expired

FHIR Authorisation

In openIMIS, authorisation is based on User’s role and location. A role is a group of authorities or permissions which are well defined and constant (see https://openimis.atlassian.net/wiki/spaces/OP/pages/1775173658 for an up-to-date list of authorities). During the migrations, some of authorities were not added in the new created modules. Moreover, the query set used to obtain the data related to a resource was fetching all the objects from the DB.

Based on the https://openimis.atlassian.net/wiki/spaces/OP/pages/1775173658, used in the legacy openIMIS, we have added the missing permission to the modular openIMIS. Also, we have updated the query sets and retrieved them from the business module (e.g. Claim module) which limits the access based on the Users The following modules have been updated:

Did you encounter a problem or do you have a suggestion?

Please contact our Service Desk



This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/