onaio / fhir-gateway-extension

This repo holds the OpenSRP permissions checker and data access checker
Other
0 stars 1 forks source link

OpenSRP Web FHIR Info Gateway Plugin #46

Closed ageryck closed 3 months ago

ageryck commented 5 months ago

Make additional changes to the gateway plugins to facilitate web login, currently, the web authenticates via keycloak and queries HAPI directly. The proposed changes should allow all requests coming from web clients to be channeled via the gateway. The changes include;

ageryck commented 4 months ago

Implementing Data Access Checker The following resources are expected to be requested by web clients;

Data filter for web clients will be based on three factors;

  1. User Role
  2. Assigned Permissions for Role
  3. User Assignment - this is new, we intend to assign users to locations/jurisdictions to manage on the web whenever such users belong to an Admin/SuperAdmin roles

The goal is to only allow data back to the web for resources the users have permission to act on (CRUD), the granular regulation on how the user will act on this data is implemented in web RBAC

ageryck commented 4 months ago

The first part of this ticket is to test web client login via gateway without the Data Access Filter Implementation, this will mimic the current authentication via keycloak that all requests return all data in HAPI without any additional filters.

dubdabasoduba commented 4 months ago

@ageryck @lincmba @ndegwamartin Here is my general idea of how we can approach this

Core functionalities

Plugin Development Specifications:

Extension of the Plugin to Implement Data Filtering for OpenSRP web:


Deliverable 1

  1. Test out point OpenSRP web to the gateway and see what happens.
  2. Update the Access and Permission checker where necessary.
  3. Complete this ticket https://github.com/opensrp/fhircore/issues/2850

Deliverable 2

  1. Adding the Data filtering functionality
ageryck commented 3 months ago

Data filtering for web clients has been shelved for the current scope to be implemented later.