The SAML proxy is between the KOMBIT Context Handler and the eHealth Keycloak authorization server.
The service is an eHealth service and is responsible for:
Map SAML Attributes from the municipal KOMBIT Context Handler
Consolidate privileges
Enrich SAML Attributes with e.g., the employee's CPR number based on a lookup to the KOMBIT FK Organisation system.
Dokumentation fra Digital Identity
Digital Identity har udviklet den oprindelige udgave af SAML Proxy. Deres dokumentation er vedhæftet her:
Udvidelser til SAML Proxy
De følgende beskrivelser udgør udvidelser til den oprindelige SAML Proxy-funktionalitet.
Mapning af privilegier og constraints
SAML Proxy mapper følgende constraints fra KOMBIT format til det format, der benyttes i eHealth-infrastrukturens OIO BPP SAML-attributter.
KOMBIT format | eHealth-infrastrukturens OIO BPP SAML-attributnavn |
---|---|
|
|
|
|
|
|
|
|
|
|
SAML Proxy mapper KOMBIT-udgaverne af brugersystemroller for eHealth-infrastrukturen nævnt i https://ehealth-dk.atlassian.net/wiki/spaces/EDTW/pages/2211577858/Federated+Authentication+and+Authorization+for+Municipal+Users#KOMBIT-flavored-user-system-roles-for-the-eHealth-Infrastructure , så en Constraint med navn:
<namespace> appended med <KOMBIT brugersystemrolle for eHealth-infrastrukturen mappes til en tilsvarende https://ehealth-dk.atlassian.net/wiki/spaces/EDTW/pages/291176482/Tokens+Roles+and+RBAC+ABAC#Privilege-Roles .
Mapningen understøtter følgende namespaces:
eHealth-infrastrukturmiljø INTTEST:
saml-proxy.inttest.ehealth.sundhed.dk
eHealth-infrastrukturmiljø EXTTEST:
saml-proxy.exttest.ehealth.sundhed.dk
eHealth-infrastrukturmiljø PPREPROD:
saml-proxy.preprod.ehealth.sundhed.dk
eHealth-infrastrukturmiljø TEST002:
saml-proxy.test002.ehealth.sundhed.dk
eHealth-infrastrukturmiljø PROD:
ehealth.sundhed.dk
For orgenhed/orgUnit understøttes yderligere:
sts.kombit.dk
- TBD: Hvad er dette?
Konsolidering af rettigheder
Privilegier med identisk scope og constraints grupperes.
Eksempel:
Input:
<PrivilegeGroup Scope="urn:dk:gov:saml:cvrNumberIdentifier:29189714"> <Privilege>http://ehealth.sundhed.dk/roles/usersystemrole/citizen_enroller/1</Privilege> <Constraint Name="http://ehealth.sundhed.dk/constraints/orgUnit/1">c3e836da-403a-4a44-99f9-d4c85a15b861</Constraint> <Constraint Name="http://ehealth.sundhed.dk/constraints/sorIdentifier/1">b91314d5-3954-45c2-8f24-b984d6d9fdb9</Constraint> </PrivilegeGroup> <PrivilegeGroup Scope="urn:dk:gov:saml:cvrNumberIdentifier:29189714"> <Privilege>http://ehealth.sundhed.dk/roles/usersystemrole/careteam_administrator/1</Privilege> <Constraint Name="http://ehealth.sundhed.dk/constraints/orgUnit/1">c3e836da-403a-4a44-99f9-d4c85a15b861</Constraint> <Constraint Name="http://ehealth.sundhed.dk/constraints/sorIdentifier/1">b91314d5-3954-45c2-8f24-b984d6d9fdb9</Constraint> </PrivilegeGroup>
Output:
<PrivilegeGroup xmlns="" Scope="urn:dk:gov:saml:cvrNumberIdentifier:29189714"> <Constraint Name="urn:dk:gov:saml:sorIdentifier">b91314d5-3954-45c2-8f24-b984d6d9fdb9</Constraint> <Constraint Name="urn:dk:kombit:orgUnit">c3e836da-403a-4a44-99f9-d4c85a15b861</Constraint> <Privilege>urn:dk:sundhed:ehealth:role:citizen_enroller</Privilege> <Privilege>urn:dk:sundhed:ehealth:role:careteam_administrator</Privilege> </PrivilegeGroup>
Som det ses er privilegier og constraint navne mappet fra Kombit til Ehealth format. Derudover er de to privilegier samlet i én PrivilegeGroup da Scope og Constraints er identisk.