Dette dokument er rettet mod udviklere, der skal udvikle eller teste services, der har brug for at hente den aktuelle salt fra IDSAS. Det vil til en start kun være MinLog2, men vil blive udvidet med tiden.
Til denne type anvender findes en snitflader, udstillet som en WSDL med og uden sikkerheds-headers.
| Snitflade | Endpoint | |
|---|---|---|
| Uden sikkerheds-header | idsas-salt | <server>/idsas-salt/20230601/salt?wsdl |
| Med sikkerheds-header | idsas-salt | <server>/idsas-salt/service-contract/secure-wsdl/20230601/idsas-salt.wsdl |
Datoen "2023060"' angiver versionen af snitfladen. Pt. findes kun denne ene version.
Denne operation ligger i idsas-salt snitfladen, og benyttes til at hente det aktuelle salt til brug ved pseudoanonymisering. Se eksempel på hvordan det skal anvendes længere nede i dokumentet.
Der er ingen eksplicitte parametre til denne operation. Den aktuelle salt er universel for alle med adgang til operationen.
<?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> |
<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> |
| Brugerhistorie | Udførsel |
|---|---|
| Hente aktuelt salt | Udføres ved at kalde GetCurrentSalt. |
| Fejlbesked | Noter |
|---|---|
Client persistent unique key '%s' er ikke whitelisted for type SALT | Hvis en given client persistent unique key ikke er whitelisted for GetCurrentSalt operationen, gives denne fejlbesked. |
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. |
Ingen salt var fundet. | Skal indsættes i databasen af driften. |
Sikkerhedsbilletten er udløbet | |
Sikkerhedsbilletten er ikke gyldig endnu | |
Sikkerhedsbilletten er ikke valid | Generisk fejl hvis årsagen ikke kunne bestemmes nærmere |
Sikkerhedsbilletten mangler |
Følgende oplysninger skal med i hash-funktionen SHA256:
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.
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 gyldig identifikation (gyldigt SOSI Idkort) i kaldet.
Yderligere dokumentation:
For at kunne benytte GetCurrentSalt operationen, skal klientens persistent unique key også være whitelistet til at anvende servicen.
Der er whitelistning til både Test og Produktion