Enhancing Security and Accountability in HCX Gateway API Access #120
maheshkumargangula
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The HCX Protocol defines multi-level mechanisms to ensure security and privacy of claims data being exchanged – transport level, message level and API level. For API security, an API-key based security for authentication and authorization of the API calls between the participating systems and the HCX Gateway. HCX instances have to generate the API keys in the form of JWT tokens (RFC7519) and shall mandatorily set an expiry time for all the generated tokens.
Securing HCX Gateway APIs & Challenges
To secure the HCX APIs, the current version of the protocol (v0.8) requires participant’s username and password to be used in the token generation API to obtain the API key.
However, as observed in on ground implementations, there could be multiple people responsible for managing participant’s registry configuration in HCX on behalf of a participant (payer or provider). This could be because of the following key reasons:
In such cases, generating the API key solely through the participant's credentials raises security concerns for the participant organization, as in the current scheme of things, it entails sharing the participant’s credentials with multiple users. Furthermore, it also affects accountability as there is no way to trace which user has handled the HCX Protocol requests.
The diagram below depicts the current API token generation workflow:
Proposed approach
To effectively deal with this practical reality, wherein a participating system may need to involve multiple users to manage its HCX integration. The participating system will onboard the users to the HCX User registry. The verification of the users will be done as below.
Considering this, we propose following an AWS like approach in creating and managing the API tokens:
Per participant, per user API key
We propose that instead of using a single client key and secret per participant to generate the API tokens, the protocol recommends using the username and password of each eligible user for the participant in generating the API token. To achieve this, while onboarding a new user to a participant, the HCX Gateway would be required to generate a secret for each user of a participant. This secret, along with username and participant code, is then used to generate the API key for the users to access Protocol APIs. Following would be the key elements for generating the API token:
The diagram below depicts the process of user Onboarding to a Participant:
The diagram below depicts the process of generating and using the API token:
The participant system can call
/participant/auth/token/generate
along with username, participant code and secret to obtain the API key.Request-Body:
HCX instance would respond with the API token upon successful validation of the participant code, username and secret values:
Response-Body:
Beta Was this translation helpful? Give feedback.
All reactions