Anropsinformation - versionspaket 16.1

Web Services Security Header och SAML v 2.0 Assertions

Bilaga till handboken för apoteks- och vårdaktörer

Dokumentet specificerar säkerhetsheaderns struktur och innehåll och är normerande för att kunna nyttja tjänsterna. Samtliga av E-hälsomyndighetens egendefinierade attribut redovisas.

1. Inledning

Detta dokument specificerar den struktur och innehåll som säkerhetsheadern måste ha för att ett anrop ska kunna accepteras av de tjänster som tillhandahålls av                            E-hälsomyndigheten.

Med struktur och innehåll avses i första hand de av E-hälsomyndigheten definierade SAML v2.0 attribut.

2. Definitioner

Term

Förklaring

SAML

Security Assertion Markup Language

SOAP

Simple Object Access Protocol

 

3. Referenser

Här ges referenser till andra dokument. Generellt gäller att senaste version av dokumenten avses.

Nr

Dokument

Beskrivning

1

Extern kravspecifikation E002 Behörighetsstyrning

Beskriver roller, deras attribut och behörigheter.

4. Säkerhetsheader

För att ett anrop ska kunna genomföras krävs att tre olika intyg bifogas i säkerhetsheadern.

De intyg som ska skickas med är: 1) Autentiseringsintyg (SAML-Assertion), 2) Auktorisationsintyg och 3) Infodataintyg. Se bild 1.

Intygen beskrivs i detalj under respektive kapitel. Det som är gemensamt för alla intyg är att de ska vara enligt SAML v2.0 och signerade med en XML-signatur. 

säkerhetsheader bild1.png

De tre intygen hålls ihop med ett egendefinierat attribut, connectedAssertionId.

Attributet sätts för auktorisationsintyget och informationsintyget och ska ha samma värde som autentiseringsintygets assertionId.

Attributet är en del av den informationen som signeras och på så vis hålls intygen ihop på ett säkerhetsmässigt tillfredsställande sätt.

Exempel på SOAP-meddelande med säkerhetsheader och tre intyg :

<soapenv:Envelope

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"

xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">

<soapenv:Header>

<wsse:Security >

<saml2:Assertion …> ... </saml2:Assertion>

<saml2:Assertion …> ... </saml2:Assertion>

<saml2:Assertion …> ... </saml2:Assertion>

</wsse:security>

</soapenv:Header>

...

5. Autentiseringsintyg

Identifierar den anropande användaren. Validering sker att AuthnContextClassRef har angivits. Detta är en del av det AuthnStatement som ingår i ett SAML v2.0 intyg.

Attributen anges som en del av det AttributeStatement som ingår i intyget enligt SAML v2.0 standarden. Attribut ska namnges enligt urn:apotekensservice:names:federation:<attributnamn> där <attributnamn> byts ut enligt följande tabell.[1] Intyget ska signeras.

A ttributnamn

Max längd

Beskrivning

DirectoryID

255

Obligatorisk .

Beskriver biljettinnehavarens unika ID i den katalog som aktören i fråga är ansluten till och som anges vid etablering av federation mot/med denna aktör.

OrganizationID

25

Obligatorisk .

Globalt unikt ID för aktören för vars räkning biljetten är utställd för. Ska vara antingen ett svenskt organisationsnummer eller OID (Object Identifier).

OID ska vara registrerat hos en av IETF(Internet Engineering Task Force) accepterad utfärdare som t ex ANSI (American National Standards Institute ) eller SIS (Swedish Standards Institute)

 

Ett avkortat exempel på ett autentiseringsintyg där DirectoryID har värdet SUGO56 och OrganizationID har värdet 2321000040.

<Assertion . . .>

. . .

<AttributeStatement>

<Attribute Name="urn:apotekensservice:names:federation:attributeName:DirectoryID"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">

<AttributeValue>SUGO56</AttributeValue>

</Attribute>

<Attribute Name="urn:apotekensservice:names:federation:attributeName:OrganizationID"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">

<AttributeValue>2321000040</AttributeValue>

</Attribute>

</AttributeStatement>

</Assertion>


6. Auktorisationsintyg

De attribut som ingår i auktorisationsintyget används dels för att avgöra vilken roll som den autentiserade användaren agerar som, och dels ytterligare rättighetskontroller utöver den grundbehörighet som rollen medför.

Exempel: En användare i rollen "förskrivare" har rätt att anropa tjänster som är relaterade till förskrivning av läkemedel. Ytterligare kontroller sker inne i tjänsten så att kombination av det tilltänkta läkemedlet och användarens förskrivningsrätt inte är i konflikt.

Attributen anges som en del av det AttributeStatement som ingår i intyget enligt SAML v2.0.
Intyget ska signeras av utställaren.

Attribut ska namnges enligt urn:apotekensservice:names:federation:<attributnamn> där <attributnamn> byts ut enligt följande tabell.[2]

Notera att en del attribut gäller för samtliga roller, medan andra bara hör till en viss roll. För detaljer, se dokumentet "Extern kravspecifikation E002 Behörighetsstyrning" [1]. Där framgår det vilka attribut som är obligatoriska beroende på vilken roll som anges. Vilka attribut som alltid är obligatoriska anges i nedanstående tabell.

 
 

Attributnamn

Max längd

Beskrivning

apoteksId

13

Unik identitet (GLN-kod) för apotek som den autentiserade användaren arbetar för. Ifall det är en supportfunktion som står bakom anropet, ska man ange den GLN-kod som tillhör det apotek man agerar på uppdrag av.

arbetsplats

35

Lokalitet i klartext (adress 1).

Exempelvis Vårdcentralen Humlan eller Privat, kirurgi/ortopedi.

arbetsplatskod

13

Arbetsplatskod eller grupparbetsplatskod

assertionType

-

Obligatorisk .

Ska sättas till: AuthorizationData

befattningskod

6

Befattningskod.

connectedAssertionId

64

Obligatorisk .

Länk till autentiseringsinformationen. Ska ha samma värde som det id som unikt identifierar autentiseringsin­tyget.

efternamn

35

Efternamn.

fornamn

35

Förnamn.

forskrivarkod

7

Förskrivarens individuella 7-ställiga förskrivarkod eller förskrivarens gruppförskrivarkod då individuell kod saknas.

legitimationskod

6

Legitimationskod i Socialstyrelsens register över personer med legitimation för yrke på hälso- och sjukvårdens område.

personnummer

12

Personnummer för privatperson som anropar tjänst.

postadress

35

Arbetsplatsens gatuadress (Adress 2).

postnummer

5

Arbetsplatsens postnummer.

postort

35

Arbetsplatsens postort.

roll

-

Obligatorisk .

Den roll som den autentiserade användaren agerar som. Sluten värdemängd, en av följande:

FORSKRIVARE

LEG_VARDPERSONAL

EJ_LEG_VARDPERSONAL

FARMACEUT_APOTEK

PERSONAL_APOTEK

PRIVATPERSON

BATCH_ANVANDARE

telefonnummer

15

Telefonnummer till användaren eller arbetsplatsen.

telefonnummerDirekt

15

Telefonnummer direkt till användaren.

yrkeskod

2

Yrkeskod

 

Ett exempel på ett auktorisationsintyg där autentiseringsintyget har ett assertionId med värdet 123456789 och attributet yrkeskod angivits till värdet LK (läkare) kan se ut enligt följande.

<Assertion . . .>

. . .

<AttributeStatement>

<Attribute Name="urn:apotekensservice:names:federation:attributeName:connectedAssertionId"

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri ">

<AttributeValue>123456789</AttributeValue>

<Attribute Name="urn:apotekensservice:names:federation:attributeName:assertionType"

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri ">

<AttributeValue>AuthorizationData</AttributeValue>

<Attribute Name="urn:apotekensservice:names:federation:attributeName:yrkeskod"

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri ">

<AttributeValue>LK</AttributeValue>

</Attribute>

</AttributeStatement>

</Assertion>


7. Informationsintyg

De attribut som ingår i informationsintyget används i första hand för spårbarhet och innehåller information om anropande system eller applikation.

Attributen anges som en del av det AttributeStatement som ingår i intyget enligt SAML v2.0.

Attribut ska namnges enligt urn:apotekensservice:names:federation:<attributnamn> där <attributnamn> byts ut enligt följande tabell. [3]

Attributnamn

Max längd

Beskrivning

connectedAssertionId

64

Obligatorisk.

Länk till autentiseringsinformationen. Ska ha samma värde som det id som unikt identifierar autentiserings­intyget.

assertionType

--

Obligatorisk.

Ska sättas till: InfoData

requestId

20

Unikt id för anropet hos anropande system.

systemnamn

30

Namn på anropande system.

systemversion

25

Version på anropande system.

systemIp

53

IP adress för anropande system. Anges som IPv4 eller IPv6.






Versionshistorik

Version

Datum

Kommentar

2.0

2014-04-25

Inlagd i ny mall.

Apotekens Service har ersatts med eHälsomyndigheten.

3.0

2014-10-13

3, Lagt till referens till E002 Behörighetsstyrning.

5, Uppdaterat fältet DirctoryID och exempel

6, Uppdaterat fälten befattningskod, forskrivarkod, legitimationskod och roll. Förtydligat inledande text för auktorisationsintyget.

6, Tagit bort fältet organisationsnummer, eftersom detta inte ska användas av någon av de externa rollerna. Istället ska de ange OrganizationId i autentiseringsintyget.

6, Lagt till rollen BATCH_ANVANDARE. Förtydligat vilken information som ska anges i apoteksId när anrop kommer från supportpersonal.

​4.0 ​Förtydligat att denna sida gäller versionspaket 16.1
​5.0 ​Grammatiska rättningar
​6.0 ​Bytt namn på sida från Säkerhetsheader till Anropsinformation
​7.0 ​2019-07-09 ​Ändrat ansvarig


[1] Observera att detta gäller under en övergångsperiod tills etablerad identitetsfederation finns på plats

[2] Observera att detta gäller under en övergångsperiod tills etablerad identitetsfederation finns på plats

[3] Observera att detta gäller under en övergångsperiod tills etablerad identitetsfederation finns på plats