SAML Proxy

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.

Content

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

KOMBIT format

eHealth-infrastrukturens OIO BPP SAML-attributnavn

/constraints/careteam/1

urn:dk:sundhed:ehealth:careteam

/constraints/orgUnit/1

urn:dk:kombit:orgUnit

/constraints/orgenhed/1

urn:dk:kombit:orgUnit

/constraints/sorIdentifier/1

urn:dk:gov:saml:sorIdentifier

/constraints/sslOrg/1

urn:dk:kombit:sslOrg

SAML Proxy mapper KOMBIT-udgaverne af brugersystemroller for eHealth-infrastrukturen nævnt i Federated Authentication and Authorization for Municipal Users | KOMBIT flavored user system roles for the eHealth Infrastructure , så en Constraint med navn:

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.