Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootIdentitetssløring af ansatte i sundhedsvæsnet (IDSAS) - Leverancebeskrivelse
includeroottrue


Indhold

Table of Contents

Overblik

Formål

Identitetssløring af Ansatte i Sundhedsvæsenet (IDSAS) er et sløringsregister, så ansatte i sundhedsvæsenet kan optræde under pseudonym på tværs af borgervendte løsninger.

Læsevejledning

Dette dokument er rettet mod udviklere, der skal udvikle eller teste services, der har grænseflader mod IDSAS.

Læseren forudsættes at være bekendt med SOAP og WSDL'er.

Snitflader

IDSAS understøtter følgende adgange:

  • Sundhedsfaglige og systembrugere har mulighed for at oprette en slørring over for en borger.
  • Systembrugere (kun STS'en) har mulighed for at hente alle sløringer for en bestemt borger.
  • Systembrugere har mulighed for at hente det aktuelle salt.

IDSAS er opdelt i to services som beskrives i disse to wsdl-filer. Bemærk, lookup-delen kun benyttes af STS'en. Som anvender har man typisk kun brug for "idsas-registration.wsdl".

BrugertypeWSDLEndpoint
Sundhedsfaglig og systemidsas-registration.wsdl<server>/idsas/20230601/registration?wsdl
Systemidsas-lookup.wsdl<server>/idsas-lookup/20230601/lookup?wsdl

Datoen "2023060"' angiver versionen af snitfladen. Pt. findes kun denne ene version.

WSDL'erne er også udstillet med sikkerheds-headers:

BrugertypeWSDLEndpoint
Sundhedsfaglig og systemidsas-registration.wsdl<server>/service-contract/secure-wsdl/20230601/idsas-registration.wsdl
Systemidsas-lookup.wsdl<server>/service-contract/secure-wsdl/20230601/idsas-lookup.wsdl

Følgende zip folder indeholder foreløbige wsdl-filer og tilhørende xsd-filer for snitfladerne (med og uden security headers).

NB: Som anvender benyttes kun idsas-registration.wsdl

View file
nameidsas.zip
height250

WSDL for sløring (idsas-registration.wsdl)

OperationBeskrivelse

CreateBlurring

Et system eller en sundhedsfaglig, kan oprette en slørring for en borger, som vil gælde alle i den sundhedsfagliges organisation.
GetCurrentSaltEt system kan hente det aktuelle salt til brug ved pseudoanonymisering. Se eksempel på hvordan det skal anvendes længere nede i dokumentet.

WSDL'er for lookup (idsas-lookup.wsdl)

OperationBeskrivelse

GetBlurredOrganisations

Et system (i praksis kun STS'en) kan hente alle aktive slørringer for en bestemt borger.

Operationer

CreateBlurring

Oprettelse af en sløring for en borger. Organisationen, der slørres for, er den der kaldes fra (dvs. den læses fra sikkerhedsbilletten). Findes der allerede en sløring på en borger for en bestemt organisation, vil kun den seneste sløring være aktiv.

Element

Beskrivelse

Type

Obligatorisk

patientId

Angiver borgerens CPR-nummer (uden bindestreg).

CPR

Ja

endDateTime

Sluttidspunktet for slørringen. Må max ligge 2 år fremme i tiden.

datetime

Ja

Eksempler på request og response:

Code Block
languagexml
titleCreateBlurring request
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sosi="http://www.sosi.dk/sosi/2006/04/sosi-1.0.xsd"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Envelope">
    <soapenv:Header>
        <wsse:Security>
            <wsu:Timestamp>
                <wsu:Created>2023-06-26T08:11:22Z</wsu:Created>
            </wsu:Timestamp>
            <saml:Assertion IssueInstant="2023-06-26T08:06:21Z" Version="2.0" id="IDCard">
                <saml:Issuer>TEST1-NSP-STS</saml:Issuer>
                <saml:Subject>
                    <saml:NameID Format="medcom:other">SubjectDN={C=DK, OID.2.5.4.97=NTRDK-98021838,
                        O=Testorganisation nr. 98021838,
                        SERIALNUMBER=UI:DK-O:G:62dda762-82f3-4048-ae60-5e6f681a67ab, CN=NSP Test
                        Service Consumer Certifikat},IssuerDN={C=DK, O=Den Danske Stat, OU=Test -
                        cti, CN=Den Danske Stat OCES udstedende-CA
                        1},CertSerial={146245284873245556887894707042857692882317566182}</saml:NameID>
                    <saml:SubjectConfirmation>
                        <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:2.0:cm:holder-of-key</saml:ConfirmationMethod>
                        <saml:SubjectConfirmationData>
                            <ds:KeyInfo>
                                <ds:KeyName>OCESSignature</ds:KeyName>
                            </ds:KeyInfo>
                        </saml:SubjectConfirmationData>
                    </saml:SubjectConfirmation>
                </saml:Subject>
                <saml:Conditions NotBefore="2023-06-26T08:06:21Z"
                    NotOnOrAfter="2023-06-27T08:06:21Z" />
                <saml:AttributeStatement id="IDCardData">
                    <saml:Attribute Name="sosi:IDCardID">
                        <saml:AttributeValue>W0zDTbDYVt1t1+/LJP0pXw==</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:IDCardVersion">
                        <saml:AttributeValue>1.0.1</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:IDCardType">
                        <saml:AttributeValue>system</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:AuthenticationLevel">
                        <saml:AttributeValue>3</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:OCESCertHash">
                        <saml:AttributeValue>dEjVOMcCEP9weRMSpVGBbGv/cRk=</saml:AttributeValue>
                    </saml:Attribute>
                </saml:AttributeStatement>
                <saml:AttributeStatement id="SystemLog">
                    <saml:Attribute Name="medcom:ITSystemName">
                        <saml:AttributeValue>Service Consumer Test</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="medcom:CareProviderID" NameFormat="medcom:cvrnumber">
                        <saml:AttributeValue>98021838</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="medcom:CareProviderName">
                        <saml:AttributeValue>Test organisation 98021838</saml:AttributeValue>
                    </saml:Attribute>
                </saml:AttributeStatement>
                <ds:Signature id="OCESSignature">
                    <ds:SignedInfo>
                        <ds:CanonicalizationMethod
                            Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                        <ds:Reference URI="#IDCard">
                            <ds:Transforms>
                                <ds:Transform
                                    Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                            </ds:Transforms>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                            <ds:DigestValue>Gs6N2rMJKq4hIgd7tQS0abnKO4o=</ds:DigestValue>
                        </ds:Reference>
                    </ds:SignedInfo>
                    <ds:SignatureValue>
                        OXR5oNhCPxGKPcLU/cpNKPSRbK7AtF4V1sec5PBJUmTaMyQdKaWC1izl7OikEpggx4qj4C3rYTZcwStDPiXF7U12e7YMq+ja9v7B3Ov1ELqHmNYAQCtKyEJA1nb27pX8XOv0Ph/efQUll73JuvwaeWMgXFA75ojNwmqLmiG38HVa19h9Qp2bKuBz0ZT7LievCmeNI4mAtyltU7BGHOmm6w7nIWmI98bokBIUbbgbBhCjFhXzV4SFvCvm47W80Dn8JP1g723JAdad7hSD3pL1DEKD1urVIphOzP/Fgdnq2bdJOhPozqqqKKs1HCaZTlCjVZPU2+hC2a26k2wHbbk/jK5o7l7p/KfDc+ggw2r479/8UqpbR57PxPvu6+2doN8s624zzEM/BTfqTZTT9P1rEfTjVW8M3pzQDCv5D+/KoBUwH6QphNqYOtt1s8hYQ8KLkk2E5H7UKkd8d+xBtKDUOZeHdBijYydMVL3XkeH9t7uMIZ1I7ohJumpDd9LW2Dme</ds:SignatureValue>
                    <ds:KeyInfo>
                        <ds:X509Data>
                            <ds:X509Certificate>
                                MIIGiDCCBLygAwIBAgIUR5IfpZdXnxp/UHxA0KWAcKzWcm4wQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgMGsxLTArBgNVBAMMJERlbiBEYW5za2UgU3RhdCBPQ0VTIHVkc3RlZGVuZGUtQ0EgMTETMBEGA1UECwwKVGVzdCAtIGN0aTEYMBYGA1UECgwPRGVuIERhbnNrZSBTdGF0MQswCQYDVQQGEwJESzAeFw0yMzA1MTIxMTIzMDFaFw0yNjA1MTExMTIzMDBaMIGeMR0wGwYDVQQDDBRTT1NJIFRlc3QgRmVkZXJhdGlvbjE3MDUGA1UEBRMuVUk6REstTzpHOjU4ZjEwNDNkLTNkMmYtNGRlZC1hYjUwLTk0MGRiNDc3NmExODEeMBwGA1UECgwVU3VuZGhlZHNkYXRhc3R5cmVsc2VuMRcwFQYDVQRhDA5OVFJESy0zMzI1Nzg3MjELMAkGA1UEBhMCREswggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCDqOcDXr2tsBXp3QqYpoZCyJAJQ4+rEtmOLJL/Qyol+5e2NyBOqIGdpXdcSI6hCTYEQu/67EDFRcO9yU6yD/u7xOcy+t3eCqx1ydOy20AZCdcKwRmxBzyQN5er+mBErG2+iprTWJdpwCw0mwjNt5edusm7Nwufk0AkN5nxvEEynwesTdTqgLzL99Jk1zdg0uokROg1s13CCvpenYks8+yXwgddO/36WmUn9V8N+1MIu+UpwsULB9zsNCU8qlDzlgg1u6nr8nnKTBBwT2mXl4xCOF2EEJF5lGUaJ+NOu/ljI2WN2pEUsiqpZPvsI14teJKucH4zCV2y7PhyCBacuti7rEZjuZ6ELeTiUvgs+TqqTFGn3dxCq6FOgz5z5N2ypPTPzg/ntBH0CqkjFn+loh5GIBcA8ff5AHNjqM3Ygu/u1p+BwszeGJLAwk0AUtp67aB4QBGuh73vWsaeERwg4Hc1HeNldv/I4iyMQFlp1qsZoAC6cApeoM6umihYcTfi7rMCAwEAAaOCAYYwggGCMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUfyif2XGZQuJ159c1di5NCCVtdl4wewYIKwYBBQUHAQEEbzBtMEMGCCsGAQUFBzAChjdodHRwOi8vY2ExLmN0aS1nb3YuZGsvb2Nlcy9pc3N1aW5nLzEvY2FjZXJ0L2lzc3VpbmcuY2VyMCYGCCsGAQUFBzABhhpodHRwOi8vY2ExLmN0aS1nb3YuZGsvb2NzcDAhBgNVHSAEGjAYMAgGBgQAj3oBATAMBgoqgVCBKQEBAQMHMDsGCCsGAQUFBwEDBC8wLTArBggrBgEFBQcLAjAfBgcEAIvsSQECMBSGEmh0dHBzOi8vdWlkLmdvdi5kazBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vY2ExLmN0aS1nb3YuZGsvb2Nlcy9pc3N1aW5nLzEvY3JsL2lzc3VpbmcuY3JsMB0GA1UdDgQWBBQoPAINYQR2GfgN1KAQMauutePL6jAOBgNVHQ8BAf8EBAMCBaAwQQYJKoZIhvcNAQEKMDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEFAKIDAgEgA4IBgQC31Dtgc8+hxB0v+/RL1N3SsyfIxKNVJBhkl2Rfihn700Or5E+0ETyP8mV8MadraDBDYbwMkd3TNOzuF6Ct8c4X5mv+XKr8m0eDPlh7I7mMZ5zzpVw5Co4Wiwwiv9Hb59P/c182FaSPAA1bpmko9AH+duPcquiQELoSRfqW23B2cejACd95XbyXQVFdbCdhyCGAexbJ4egChJsXPU2zAOXq1/pa5bNSmJMsJgqP36bTbA6r+mjv0FArkrL76W1kmchpj6F4tSuDaaJlUmKvmzzBomwhlQRr/vxZc0FOamnJ8is9wC49tOaEMUx2l2iSWZKXMh4C6LQC8hQsjiXnYsERAWgeqwzqtVE3iKaGhOv+W7ECKFndGjYM95bdVK8x9BymTrPun63BCiVGqhMzsEc2RkvbKgBpb7L+Ont0EAahwcTshBzfe0jhA2thWHNGFxXpNqI0ZaAo/NKJpHK3I0EACAB0/VjiQZ/inSKtPnof1/nQZ32QWX3ij0VkX2mE2Pw=</ds:X509Certificate>
                        </ds:X509Data>
                    </ds:KeyInfo>
                </ds:Signature>
            </saml:Assertion>
        </wsse:Security>
        <medcom:Header>
            <medcom:SecurityLevel>3</medcom:SecurityLevel>
            <medcom:Linking>
                <medcom:FlowID>bc43229e-54b2-4c55-b0e9-f93778272368</medcom:FlowID>
                <medcom:MessageID>c8bcfa7c-7f34-4aab-8732-e556f68e95d3</medcom:MessageID>
            </medcom:Linking>
            <medcom:RequireNonRepudiationReceipt>no</medcom:RequireNonRepudiationReceipt>
        </medcom:Header>
    </soapenv:Header>
    <soapenv:Body>
        <CreateBlurringRequest
            xmlns="http://sundhedsdatastyrelsen.dk/identitetssloering/2023/06/01/">
            <patientId>
                <id>0102031234</id>
                <classification>CPR</classification>
            </patientId>
            <endDateTime>2023-06-27T12:11:17.674+02:00</endDateTime>
        </CreateBlurringRequest>
    </soapenv:Body>
</soapenv:Envelope>
Code Block
languagexml
titleCreateBlurring response
collapsetrue
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <BlurResponse xmlns="http://sundhedsdatastyrelsen.dk/identitetssloering/2023/06/01/">OK</BlurResponse>
    </soap:Body>
</soap:Envelope>

GetCurrentSalt

Der er ingen eksplicitte parametre til denne operation. Den aktuelle salt er universel for alle med adgang til operationen.

Eksempler på request og response:

Code Block
languagexml
titleGetCurrentSalt request
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sosi="http://www.sosi.dk/sosi/2006/04/sosi-1.0.xsd"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Envelope">
    <soapenv:Header>
        <wsse:Security>
            <wsu:Timestamp>
                <wsu:Created>2023-06-30T11:54:11Z</wsu:Created>
            </wsu:Timestamp>
            <saml:Assertion IssueInstant="2023-06-30T11:47:39Z" Version="2.0" id="IDCard">
                <saml:Issuer>TEST1-NSP-STS</saml:Issuer>
                <saml:Subject>
                    <saml:NameID Format="medcom:other">SubjectDN={C=DK, OID.2.5.4.97=NTRDK-33257872,
                        O=Sundhedsdatastyrelsen,
                        SERIALNUMBER=UI:DK-O:G:8d3fa047-c77e-47e4-bdd2-e91488610ce6, CN=NSP Test
                        Service Consumer},IssuerDN={C=DK, O=Den Danske Stat, OU=Test - cti, CN=Den
                        Danske Stat OCES udstedende-CA
                        1},CertSerial={132335570455020580755596658041035235745819139305}</saml:NameID>
                    <saml:SubjectConfirmation>
                        <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:2.0:cm:holder-of-key</saml:ConfirmationMethod>
                        <saml:SubjectConfirmationData>
                            <ds:KeyInfo>
                                <ds:KeyName>OCESSignature</ds:KeyName>
                            </ds:KeyInfo>
                        </saml:SubjectConfirmationData>
                    </saml:SubjectConfirmation>
                </saml:Subject>
                <saml:Conditions NotBefore="2023-06-30T11:47:39Z"
                    NotOnOrAfter="2023-07-01T11:47:39Z" />
                <saml:AttributeStatement id="IDCardData">
                    <saml:Attribute Name="sosi:IDCardID">
                        <saml:AttributeValue>4Sf96Uf3VEbmLtQDx5Wcwg==</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:IDCardVersion">
                        <saml:AttributeValue>1.0.1</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:IDCardType">
                        <saml:AttributeValue>system</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:AuthenticationLevel">
                        <saml:AttributeValue>3</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:OCESCertHash">
                        <saml:AttributeValue>f6ZdJ0CPmwpKVPZQ1NnkpDlB0KE=</saml:AttributeValue>
                    </saml:Attribute>
                </saml:AttributeStatement>
                <saml:AttributeStatement id="SystemLog">
                    <saml:Attribute Name="medcom:ITSystemName">
                        <saml:AttributeValue>Service Consumer Test</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="medcom:CareProviderID" NameFormat="medcom:cvrnumber">
                        <saml:AttributeValue>33257872</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="medcom:CareProviderName">
                        <saml:AttributeValue>Sundhedsdatastyrelsen</saml:AttributeValue>
                    </saml:Attribute>
                </saml:AttributeStatement>
                <ds:Signature id="OCESSignature">
                    <ds:SignedInfo>
                        <ds:CanonicalizationMethod
                            Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                        <ds:Reference URI="#IDCard">
                            <ds:Transforms>
                                <ds:Transform
                                    Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                            </ds:Transforms>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                            <ds:DigestValue>Sk3wxBwaHc2zRp9Leal2ERVLjIc=</ds:DigestValue>
                        </ds:Reference>
                    </ds:SignedInfo>
                    <ds:SignatureValue>
                        QZuBCxHjB7NSuDKUm5HPWN7qIa9T6utvsnTFl0ZyPZFK7oc7TV41VU2ZAzSZVJhS7cmBVyFgeMBmCCJgrzSc+6b5uIiYvKDnFdZmq3qev/bc5MVxchPJASQuddl5nRVYK2iDe0zSk+bGqbcwBF3Vd6MmR8eKUeB0ld5ouNkCpBwjUx9VHPnWgutu79EqE9RS9F/+RALMF+fuOC6pvni8VeF71IDXC2Fe6tPi1f3uBNoWrs9HNyOJlktY6jSwu0F/nTB6vFexv93Sq6rgVUZ9knovA79WxCCJkTh9jtgzfN01N+mSEpInrGddNa84hZ6323sS9Jpa5vyU7wfVq953DGWWeilZsULVZh1gMDNHxmAb30ow6Xb7HwVYsKCZYxX6wwBoakAHsIBa6TRLzHxykdX+GtMAiHn8ZqVaPmyKLTd+L8ac1VfAnIICN36Vf8Q/NIH21+nmlKbCI3QI/ZvCBLYsU1I6CDdUCSrsgjL5y8K5jvMJ0eVd94ymjZ2RHP8t</ds:SignatureValue>
                    <ds:KeyInfo>
                        <ds:X509Data>
                            <ds:X509Certificate>
                                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</ds:X509Certificate>
                        </ds:X509Data>
                    </ds:KeyInfo>
                </ds:Signature>
            </saml:Assertion>
        </wsse:Security>
        <medcom:Header>
            <medcom:SecurityLevel>3</medcom:SecurityLevel>
            <medcom:Linking>
                <medcom:FlowID>f586a245-5d50-4c59-bfc1-e95517d921d0</medcom:FlowID>
                <medcom:MessageID>8a8a9858-4945-4db5-a9a4-8cedde265f04</medcom:MessageID>
            </medcom:Linking>
            <medcom:RequireNonRepudiationReceipt>no</medcom:RequireNonRepudiationReceipt>
        </medcom:Header>
    </soapenv:Header>
    <soapenv:Body>
        <GetCurrentSaltRequest
            xmlns="http://sundhedsdatastyrelsen.dk/identitetssloering/2023/06/01/" />
    </soapenv:Body>
</soapenv:Envelope>
Code Block
languagexml
titleGetCurrentSalt response
collapsetrue
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <SaltResponse xmlns="http://sundhedsdatastyrelsen.dk/identitetssloering/2023/06/01/">5kZZLNQMNIkz1Y7tCDj3GQ==
        </SaltResponse>
    </soap:Body>
</soap:Envelope>

GetBlurredOrganisations

Følgende operation kan kun anvendes af STS'en. For en given patient, returnerer den en liste af alle organisationer, der skal sløres for.

Element

Beskrivelse

Type

Obligatorisk

patientId

Angiver borgerens CPR-nummer (uden bindestreg).

CPR

Ja

Code Block
languagexml
titleGetBlurredOrganisations request
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sosi="http://www.sosi.dk/sosi/2006/04/sosi-1.0.xsd"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Envelope">
    <soapenv:Header>
        <wsse:Security>
            <wsu:Timestamp>
                <wsu:Created>2023-06-26T08:38:13Z</wsu:Created>
            </wsu:Timestamp>
            <saml:Assertion IssueInstant="2023-06-26T08:33:09Z" Version="2.0" id="IDCard">
                <saml:Issuer>TEST1-NSP-STS</saml:Issuer>
                <saml:Subject>
                    <saml:NameID Format="medcom:other">SubjectDN={C=DK, OID.2.5.4.97=NTRDK-98021838,
                        O=Testorganisation nr. 98021838,
                        SERIALNUMBER=UI:DK-O:G:62dda762-82f3-4048-ae60-5e6f681a67ab, CN=NSP Test
                        Service Consumer Certifikat},IssuerDN={C=DK, O=Den Danske Stat, OU=Test -
                        cti, CN=Den Danske Stat OCES udstedende-CA
                        1},CertSerial={146245284873245556887894707042857692882317566182}</saml:NameID>
                    <saml:SubjectConfirmation>
                        <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:2.0:cm:holder-of-key</saml:ConfirmationMethod>
                        <saml:SubjectConfirmationData>
                            <ds:KeyInfo>
                                <ds:KeyName>OCESSignature</ds:KeyName>
                            </ds:KeyInfo>
                        </saml:SubjectConfirmationData>
                    </saml:SubjectConfirmation>
                </saml:Subject>
                <saml:Conditions NotBefore="2023-06-26T08:33:09Z"
                    NotOnOrAfter="2023-06-27T08:33:09Z" />
                <saml:AttributeStatement id="IDCardData">
                    <saml:Attribute Name="sosi:IDCardID">
                        <saml:AttributeValue>dCktYYv/K4uKt0ycEcO7Eg==</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:IDCardVersion">
                        <saml:AttributeValue>1.0.1</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:IDCardType">
                        <saml:AttributeValue>system</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:AuthenticationLevel">
                        <saml:AttributeValue>3</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="sosi:OCESCertHash">
                        <saml:AttributeValue>dEjVOMcCEP9weRMSpVGBbGv/cRk=</saml:AttributeValue>
                    </saml:Attribute>
                </saml:AttributeStatement>
                <saml:AttributeStatement id="SystemLog">
                    <saml:Attribute Name="medcom:ITSystemName">
                        <saml:AttributeValue>http://system.nspop.dk/sts</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="medcom:CareProviderID" NameFormat="medcom:cvrnumber">
                        <saml:AttributeValue>98021838</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="medcom:CareProviderName">
                        <saml:AttributeValue>Test organisation 98021838</saml:AttributeValue>
                    </saml:Attribute>
                </saml:AttributeStatement>
                <ds:Signature id="OCESSignature">
                    <ds:SignedInfo>
                        <ds:CanonicalizationMethod
                            Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                        <ds:Reference URI="#IDCard">
                            <ds:Transforms>
                                <ds:Transform
                                    Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                            </ds:Transforms>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                            <ds:DigestValue>7QM5bINSgn6Kkai/wV4ldZCgCFg=</ds:DigestValue>
                        </ds:Reference>
                    </ds:SignedInfo>
                    <ds:SignatureValue>
                        KigPzrkWlgbiFG/PsKby4/FNKpHK2khX/fv1E1aMZzRnUVJsdIVzsh8QEYJP2VN2AhI92ozjJGu0M0pM0/0N6Krk2y91MzE4LMCUKxfvWadeEzmJh5NyEfC3gqwqebEu4+ElH5onglr5YR6zIlAzDbzbQNRv+ZuEE734B7Hv1Xz4nKFkBegs5awiizYvb9Pca//5hi0t+gvNMa3eaHiMtdCtpqdfXlqXAiy7pdaqsJehjYs+5pHi5p8TWUlcP38WsyR1mjWOsjultqLzq+qml6BP6zdL5t5/wqPZ5wcmwWtFJ3Ek/VbNQiFsjlXA5SX2rGzBHrO0TjUCDThzwNL+GgXaf/ZjRz4GNfraiOaCDTVW5Guywg1oEbAfNVKs8FvsJ7pK9slpZuYgj4CGEra0w93/OzTfE8E84OFPpF4hbx/+VDlcrs9npBMGaKRoLXztBYncckERbSRhGupA+ywk9G3IsZWmNTyfVX1EQIt7XxFpuwUkXKZo94whwl4VyC75</ds:SignatureValue>
                    <ds:KeyInfo>
                        <ds:X509Data>
                            <ds:X509Certificate>
                                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</ds:X509Certificate>
                        </ds:X509Data>
                    </ds:KeyInfo>
                </ds:Signature>
            </saml:Assertion>
        </wsse:Security>
        <medcom:Header>
            <medcom:SecurityLevel>3</medcom:SecurityLevel>
            <medcom:Linking>
                <medcom:FlowID>e7ef735d-1b2e-45c3-83cc-aa03e763aa42</medcom:FlowID>
                <medcom:MessageID>88f1a19c-be8f-43f0-b177-853014555d00</medcom:MessageID>
            </medcom:Linking>
            <medcom:RequireNonRepudiationReceipt>no</medcom:RequireNonRepudiationReceipt>
        </medcom:Header>
    </soapenv:Header>
    <soapenv:Body>
        <GetBlurredOrganisationsRequest
            xmlns="http://sundhedsdatastyrelsen.dk/identitetssloering/2023/06/01/">
            <patientId>
                <id>0102031234</id>
                <classification>CPR</classification>
            </patientId>
        </GetBlurredOrganisationsRequest>
    </soapenv:Body>
</soapenv:Envelope>
Code Block
languagexml
titleGetBlurredOrganisations response
collapsetrue
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <BlurredOrganisationsResponse
            xmlns="http://sundhedsdatastyrelsen.dk/identitetssloering/2023/06/01/">
            <organisationIds>
                <id>33257872</id>
                <classification>CVR</classification>
            </organisationIds>
        </BlurredOrganisationsResponse>
    </soap:Body>
</soap:Envelope>

Understøttelse af brugerhistorier

BrugerhistorieUdførsel
Oprette slørringUdføres ved at kalde CreateBlurring.
Slette sløringI praksis kan en sløring ikke slettes, men man kan i stedet oprette en ny sløring, hvor udløbsdato er sat til før dags dato. På den måde vil der ikke længere være en aktiv sløring på den pågældende borger for den aktuelle organisation.
Forlænge sløringUdføres ved at kalde CreateBlurring med en ny udløbsdato sat længere ude i fremtiden.
Forkorte sløringUdføres ved at kalde CreateBlurring med en ny udløbsdato, der er kortere.
Hente aktuelt saltUdføres ved at kalde GetCurrentSalt.
Hente CVR-numre, der skal sløresUdføres ved at kalde GetBlurredOrganisations.

Fejlbeskeder

FejlbeskedNoter

CVR '%s' er ikke whitelisted for type %s

Hvis et givent CVR ikke er whitelisted for en af operationerne BLURRING eller SALT, gives denne fejlbesked. Kun CreateBlurring og GetCurrentSalt kan give denne fejl.

CVR '%s' mapper ikke til en SOR kode

CVR skal mappe til en SOR-kode for at en sløring kan oprettes.

CPR '%s' er ikke tilknyttet en borger

CVR skal være tilknyttet en borger for at sløring kan oprettes.

Brugertypen kan ikke bestemmes ud fra den medsendte sikkerhedsbillet

Denne fejl gives, hvis indholdet i sikkerhedsbilletten hverken matcher "sundhedsfaglig"- eller "system"-brugertypen.

Brugertypen kan ikke entydigt bestemmes ud fra den medsendte sikkerhedsbillet

Denne fejl gives, hvis man ikke ud fra sikkerhedsbilletten entydigt kan afgøre, om brugeren er en "sundhedsfaglig"- eller "system"-bruger.

Brugertypen '%s' er ikke understøttet

Fejlen gives lige nu kun hvis man forsøger at kalde GetBlurredOrganisations uden at være "system"-bruger.

Systembruger med clientName \"%s\" matcher ikke det forventede navn \"%s\"


Det clientName som STS'en er konfigureret med skal matche det navn som IDSAS er konfigureret med i property "idsas.allowed.client.system.name". Default value er "http://system.nspop.dk/sts".

Ingen salt var fundet.

Skal indsættes i databasen af driften.

Slutdatoen for en sløring må ikke liggere mere end to år fremme i tiden.


CVR-nummeret kunne ikke valideres, fordi kaldet til SORES gik galt.


Svaret fra SORES havde et uventet format.


Sikkerhedsbilletten er udløbet


Sikkerhedsbilletten er ikke gyldig endnu


Sikkerhedsbilletten er ikke valid

Generisk fejl hvis årsagen ikke kunne bestemmes nærmere

Sikkerhedsbilletten mangler


Algoritme for pseudoanonymisering

Følgende oplysninger skal med i hash-funktionen SHA256:

  • Fornavn + efternavn på den ansatte
  • PatientId, dvs. CPR-nummeret
  • Salt

Et eksempel på inputtet kunne være: Jens+Hansen+2101691234+saltFraIdsas

Ud af SHA256 kommer der en værdi på 256-bit, typisk i et byte-array. Byte-arrayet konverteres til hexadecimal, og af dette benyttes et prefix bestående af 10 tegn som pseudonymet på den ansatte.

Til hashing kan fx anvendes Java's "MessageDigest":

    MessageDigest md = MessageDigest.getInstance("SHA-256");

De relevante værdier konverteres til bytes og sendes ind i "md", og tilbage får man et byte-array.

Kald af IDSAS

Mange programmeringssprog har understøttelse for at danne kode ud fra en snitfladebeskrivelse (WSDL). Det er op til anvenderen at finde en passende udviklingsstak og passende biblioteker, der kan hjælpe med denne proces.

Udover behovet for at kunne generere klientkode ud fra en WSDL, så vil succesfuld anvendelse af IDSAS kræve, at der medsendes gyldige identifikation (gyldigt SOSI Idkort) i kaldet.

Yderligere dokumentation: