Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »


Setting the available context

In order to set the available context, the AS can be requested with a base64 encoded PrivilegeList xml document. This is enabled on a special test client with id "oio_mock".

Mocking context supports acces token requests using either refresh token or username/password.


Pararmeter nameDescriptionSince vesion
client_idRequired. The OAuth2 client id
grant_typeRequired. Value ‘refresh_token’ or 'password'
refresh_token (grant_type = refresh_token )Required. The refresh token of the current session
username (grant_type = password)Required. The username of a keycloak user.
password (grant_type = password)Required. The password of the keycloak user.
oio_bpp (available context)Optional. Base 64 encode PrivilegeList xml document
practitioner_upn (available context)Optional. An unique identifier of a Practitioner. Maps to a FHIR Practitioner resource. 
practitioner_name (available context)Optianal. The name of the pratitioner. Sets the name of the FHIR Practitioner.
practitioner_email (available context)Optional. The email of the practitioner.
practitioner_authcodeOptional. The authorization code of the practitioner, e. g. "FUT01"1.8.8
practitioner_cprOptional. The CPR of the practitioner.1.8.8
user_typeOptional. The user type. "SSL"  or "PRACTITIONER" (default)1.7.8
care_team_id (context)Optional. A valid absolute FHIR URI pointing to a Careteam resource. This adds implicit organization context given the organization constraint in the OIO BPP structure
organization_id (context)Optional. A valid absolute FHIR URI pointing to an Organization resource
episode_of_care_id (context)Optional. This adds implicit patient context. A valid absolute FHIR URI pointing to an Episode of Care resource
patient_id (context)

Optional. A valid absolute FHIR URI pointing to a Patient resource




Examples of PrivilegeList:


<?xml version="1.0"?>
<PrivilegeList xmlns="http://itst.dk/oiosaml/basic_privilege_profile">
  <PrivilegeGroup Scope="urn:dk:gov:saml:cvrNumberIdentifier:20921897">
    <Constraint Name="urn:dk:gov:saml:sorIdentifier">eeeeeeee-b760-11e9-a2a3-2a2ae2dbcce4</Constraint>
    <Constraint Name="urn:dk:sundhed:ehealth:careteam">cccccccc-b760-11e9-a2a3-2a2ae2dbcce4</Constraint>
    <Privilege>urn:dk:healthcare:futTreatmentResponsible_0_3</Privilege>
    <Privilege>urn:dk:healthcare:futMonitoringResponsible_0_3</Privilege>
  </PrivilegeGroup>
  <PrivilegeGroup Scope="urn:dk:gov:saml:cvrNumberIdentifier:20921897">
    ...
  </PrivilegeGroup>
</PrivilegeList>


Contents of a PrivilegeList

A PrivilegeList must contain at least one PrivilegeGroup with Scope = "urn:dk:gov:saml:cvrNumberIdentifier:<some number>".

A PrivilegeGroup has the following elements:

  • Exactly one Constraint specifying an organization identifier (see Organization Constraints)
  • At most one Constraint specifying a care team identifier (see Care Team Constraints)
  • At least one Privilege element

Organization Constraints

An organization constraint identifies an Organization resource by an external identifier and type.

There are three types of organizations:

  1. SOR organizations: 
    • Identified by Constraints with Name attribute = "urn:dk:gov:saml:sorIdentifier" and value = {sor-id}
    • Refers to Fhir Organization with Identifier.system = "urn:oid:1.2.208.176.1.1" and Identifier.value = {sor-id}
    • Example:
      • Constraint:
        • <Constraint Name="urn:dk:gov:saml:sorIdentifier">950531000016003</Constraint>
      • Refers to Organization with: 
        • "Identifier": [{"system": "urn:oid:1.2.208.176.1.1", "value": "950531000016003"}]
  2. STS organizations
    • Identified by Constraints with Name attribute = "urn:dk:kombit:orgUnit" and value = {sts-id}
    • Refers to Fhir Organization with Identifier.system = "https://www.kombit.dk/sts/organisation" and Identifier.value = {sts-id}
    • Example:
      • Contraint:
        • <Constraint Name="urn:dk:kombit:orgUnit">eeeeeeee-b760-11e9-a2a3-2a2ae2dbcce4</Constraint>
      • Refers to Organization with: 
        • "Identifier": [{"system": "https://www.kombit.dk/sts/organisation", "value": "eeeeeeee-b760-11e9-a2a3-2a2ae2dbcce4"}]
  3. SSL organizations
    • Identified by Constraints with Name attribute =  "urn:dk:sundhed:ehealth:sslOrg"
    • Refers to Fhir Organization with Identifier.system = "http://ehealth.sundhed.dk/organization/ssl" and Identifier.value = {ssl-id}
    • Example:
      • Constraint:
        • <Constraint Name="urn:dk:sundhed:ehealth:sslOrg">aaaaaaaa-b760-11e9-a2a3-2a2ae2dbcce4</Constraint>
      • Refers to Organization with: 
        • "Identifier": [{"system": "http://ehealth.sundhed.dk/organization/ssl", "value": "aaaaaaaa-b760-11e9-a2a3-2a2ae2dbcce4"}]

Care Team Constraints

A care team constraint identifies a CareTeam resource by an external identifier.

Care team constraints always have Name attribute = "urn:dk:sundhed:ehealth:careteam".

A care team constraint with value = {careteam-id} refers to Fhir CareTeam with Identifier.system =  "urn:ietf:rfc:3986" and Identifier.value = {careteam-id}

Example:

  • Constraint: 
    • <Constraint Name="urn:dk:sundhed:ehealth:careteam">cccccccc-b760-11e9-a2a3-2a2ae2dbcce4</Constraint>
  • Refers to CareTeam with: 
    • "Identifier": [{"system": "urn:ietf:rfc:3986", "value": "cccccccc-b760-11e9-a2a3-2a2ae2dbcce4"}]

Privileges:

Allowed privileges, see Tokens, Roles and RBAC/ABAC#Privilege-Roles.

  • No labels