Federated Authentication and Authorization for Municipal Users
Description of federated authentication and authorization for Municipal Users using SEB and KOMBIT ConcextHandler.
- 1 Authorization Flow
- 2 Registrations Required in Municipal KOMBIT Systems
- 2.1 eHealth Infrastructure as User-systems
- 2.2 Data constraints (Danish: “data afgrænsninger”)
- 2.3 KOMBIT User system roles for the eHealth Infrastructure
- 2.3.1 Mapping between KOMBIT user system role, the corresponding OIO BPP roles
- 2.3.2 eHealth Infrastructure User system roles for FUT Proxy (exttest)
- 2.3.3 eHealth Infrastructure User system roles for FUT Proxy (prod)
- 2.3.4 eHealth Infrastructure User system roles for T-SEB (consolidated)
- 2.3.5 Getting municipal employee CPR
Authorization Flow
When a client starts an OIDC Authorization Code Flow for a municipal user, it uses SEB and KOMBIT Context Handler and goes through the following federation process.
The sequence diagram for clinicians' logins, explained in Client Application Login and Logout to eHealth Infrastructure | Clinical logins, shows how the OIDC Authorization Code Flow is redirected through a series of steps involving OIOSAML-based AuthNRequest and AuthNResponse.
Here's a summary of the responsibilities of the services involved:
The KOMBIT Context Handler created a SAML AuthnResponse based on registrations stored in the KOMBIT user administration system KOMBIT STS Administration (STS Admin or DK Admin for short).
The eHealth Infrastructure-hosted SAML Proxy - This service does tasks like substituting and translating KOMBIT-flavor SAML Attributes to ensure uniform OIOSAML OIO-BPP Attributes are provided to SEB. It also enhances OIOSAML Attributes by adding the employee's CPR number, obtained from the KOMBIT FK Organisation system.
Sundhedsvæsenets Elektroniske Brugerstyring (SEB) - This is the shared user administration platform for the Danish healthcare sector.
The eHealth Authorization Service (KeyCloak) - When the KOMBIT NSIS Context Handler can connect directly with SEB, the SAML-proxy is removed from the flow. The KeyCloak service shall then modify and adapt KOMBIT-style SAML Attributes to ensure they match the uniform OIOSAML OIO-BPP Attributes used.
KOMBIT Terms and Concepts
The English terms used in the following do not constitute official, KOMBIT translations of the Danish terms used throughout KOMBIT documentation and systems. The Danish terms stem from section 3 in Brugervejledning til Administrationsmodulerne for leverandører.
The following terms are used in registrations in “Fælleskommunalt Administrationsmodul” (KOMBIT STS Admin):
Term | Description |
---|---|
User system (Danish: Brugervendt system) | An IT system that provides an access-controlled user interface, A user system registered in the KOMBIT STS admin enables it to use KOMBIT systems for access control of end-users. |
User system role (Danish: Brugersystemrolle) | Grouping of rights or permissions that define access and access restrictions to a specific user-facing system
|
Data constraint (Danish: Dataafgrænsning) | Restriction of a “user system role”, which narrows the system role's field of action |
Job function role (Danish: Jobfunktionsrolle) | Grouping of user system roles for an authority (e.g. municipality) used by the authority to assign access to the user. Each municipality shall maintain a set in KOMBIT STS Admin. Concerning eHealth Infrastructure, the job function role should comprise:
|
Registrations Required in Municipal KOMBIT Systems
eHealth Infrastructure as User-systems
The eHealth test environments use KOMBIT Context Handler for access control and therefore are registered as user-facing systems in the FK Administration system
The following eHealth environments are registered as user-facing systems in the KOMBIT external test:
Usersystem in FK Administration | System | |
---|---|---|
1 | FUT - SAML Proxy (devtest) | FUT saml-proxy for the internal Systematic Test Environment. |
2 | FUT - SAML Proxy (inttest) | FUT saml-proxy for the eHealth Internal Test Environment |
3 | FUT - SAML Proxy (exttest) | FUT saml-proxy for the eHealth External Test environment (exttest) and external development environment (devenvcgi). |
4 | FUT - SAML Proxy (test002) | FUT saml-proxy for the eHealth Education environment (TEST002) |
5 | FUT - SAML Proxy (preprod) | FUT saml-proxy for the eHealth pre-production environment |
6 | “T-SEB” They are being used in the future when SEB and ContextHandler are directly connected. The name is not known by Systematic. | T-SEB for all eHealth test (incl. pre-prod) environments. |
FUT-S has created similar registrations in the KOMBIT FK Admininistratino in the KOMBIT production environment. This only has the SAML Proxy for the eHealth Infrastructure production environment (PROD).
Data constraints (Danish: “data afgrænsninger”)
The data constraints narrow the user system role. In eHealth Infrastructure, there are two data constraints in use:
CareTeam - a system-specific data constraint identifying a CareTeam. The optional for some user system roles, required for others (see below)
Organisation—This is a cross-cutting (data constraint) identifying Organisation from KOMBIT FK Organisation. This data constraint is defined and maintained outside eHealth.
The following screenshot shows the “Fælleskommunalt Administrationsmodul” user interface for creating data constraints and mandatory fields.
User-facing system | Data Constraint Name | EntityId (domain + “/constraint/”+ filter + version) | Syntax validation | |
---|---|---|---|---|
1 | DEVTEST | Careteam |
| ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})+(,\s*[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})* |
2 | INTTEST | Careteam |
| ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})+(,\s*[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})* |
3 | EXTTEST, DEVENVCGI | Careteam |
| ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})+(,\s*[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})* |
4 | TEST002 | Careteam |
| ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})+(,\s*[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})* |
5 | PREPROD | Careteam |
| ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})+(,\s*[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})* |
6 | “T-SEB”
Name not known by Systematic.
| Careteam
|
| ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})+(,\s*[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})* |
KOMBIT User system roles for the eHealth Infrastructure
The following screenshot shows the “Fælleskommunalt Administrationsmodul” user interface for creating user system roles and mandatory fields.
User system roles for the eHealth Infrastructure registered in KOMBIT STS Admin:
shall have an EntityId on the form:
<Domain>
appended with<KOMBIT role name for the eHealth Infrastructure>
and<version>
(see below).can have (and should have) a Danish name, the Danish designationhttps://ehealth.sundhed.dk/fhir/CodeSystem-ehealth-oio-bpp-roles.html for the corresponding eHealth Infrastructure OIO BPP system role.
<Domain>
shall reflect the eHealth Infrastructure environment for registration in the KOMBIT STS Admin. The<Domain>
shall be one of the following:
eHealth Infrastructure Environment | Domain | |
---|---|---|
1 | INTTEST |
|
2 | EXTTEST, DEVENVCGI |
|
3 | TEST002 |
|
4 | PREPROD |
|
5 | PROD |
|
6 | “T-SEB” |
|
Mapping between KOMBIT user system role, the corresponding OIO BPP roles
The KOMBIT user system role has a different format than the eHealth Infrastructure OIO BPP system roles. The following table shows the KOMBIT user system role and the corresponding OIO BPP roles.
KOMBIT user system roles for the eHealth Infrastructure | |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eHealth Infrastructure User system roles for FUT Proxy (exttest)
<KOMBIT role name for the eHealth Infrastructure
> shall be one from the list below:
The table shows the KOMBIT user system role and the possible data constraints, which are mandatory for “FUT Proxy (exttest)”.
KOMBIT user system roles for the eHealth Infrastructure | Data constraints (EXTTEST) | |
---|---|---|
STS Organisationsenhed | Careteam | |
| Mandatory |
|
| Mandatory | Mandatory |
| Mandatory |
|
| Mandatory | Mandatory |
| Mandatory | Mandatory |
| Mandatory | Mandatory |
| Mandatory | Mandatory |
| Mandatory | Mandatory |
| Mandatory |
|
| Mandatory |
|
| Mandatory | Mandatory |
| Mandatory |
|
| Mandatory | Mandatory |
| Mandatory |
|
| Mandatory |
|
| Mandatory |
|
| Mandatory |
|
eHealth Infrastructure User system roles for FUT Proxy (prod)
The table shows the KOMBIT user system role and the possible data constraints which are mandatory for “FUT Proxy (prod)”.
KOMBIT user system roles for the eHealth Infrastructure | Data constraints | |||
---|---|---|---|---|
Organisation | SOR Organisationsenhed | SSL Organisationsenhed | Careteam | |
| Mandatory | Optional |
|
|
| Mandatory | Optional |
| Optional |
| Mandatory | Optional |
|
|
| Mandatory | Optional |
| Optional |
| Mandatory | Optional |
|
|
| Mandatory | Optional |
|
|
| Mandatory | Optional |
| Optional |
| Mandatory | Optional |
| Optional |
| Mandatory | Optional |
| Optional |
| Mandatory | Optional |
|
|
|
|
| Optional | Optional |
| Mandatory | Optional |
|
|
|
|
| Optional | Optional |
|
|
|
|
|
|
|
| Optional | Optional |
|
|
| Optional | Optional |
|
|
| Optional | Optional |
eHealth Infrastructure User system roles for T-SEB (consolidated)
The table shows the KOMBIT user system role, the corresponding OIO BPP roles, and what data constraints are possible and which are mandatory for “T-SEB”.
KOMBIT user system roles for the eHealth Infrastructure | Data constraints | |
---|---|---|
Organisation
| Careteam | |
| Mandatory | Mandatory |
| Mandatory | Mandatory |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Mandatory |
| Mandatory | Optional |
| Mandatory | Mandatory |
| Mandatory | Mandatory |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Optional |
| Mandatory | Optional |
Getting municipal employee CPR
To allow regional and municipal employees to access national healthcare solutions from the FUT Infrastructure their CPR information is required. The Infrastructure receive CPR for regional employees directly from SEB, however, for municipal employees, CPR must be obtained from Kombit FK Org. This is done through the internal OS2Sync service* running on the Infrastructure. OS2Sync uses BrugerService and PersonService version 6 of Kombit FK Org Version 3.2.
*The image used on the FUT Infrastructure can be found on dockerhub and the source code on GitHub OS2Sync.