Specifikation av validering, felhantering och kvittens

Leverantör av meddelandetjänst
Sida: B1.3.2
Version: 1.5

Beskrivning av SDK:s principer för validering, felhantering och kvittens.

1. Inledning

Dokumentet är en del av SDK:s tekniska specifikationer som i sin tur ingår i regelverk för Säker digital kommunikation. Det innebär att innehållet i dokumentet är styrande för de organisationer som ansluter till Säker digital kommunikation (SDK).

2. Principer för validering och kvittens

En central del i SDK är att skapa en robust meddelandeöverföring, där validering av meddelanden, kvittenser för överförda meddelanden och felhantering är vitala delar.

Figur illustrerar SDKs referensmodell för säker meddelandeöverföring och dess gränsytor. Se en större variant av bilden.

Observera att accesspunkt ska etableras enligt Diggs anslutningsresa för AP-operatör, se Accesspunktsoperatör - Vägledning - Anslutningsresa för AP-operatör Länk till annan webbplats..

Följande avsnitt beskriver principer för validering, kvittens och felhantering i meddelandeöverföringen via SDK.

2.1 Principer för validering

  • Lägg primärt validering och kontroll så tidigt som möjligt i kedjan, där det finns störst möjlighet att åtgärda eventuella fel.
  • Gör det lätt för användaren i verksamhetssystemet (meddelandeklienten) att göra rätt från början, t.ex. genom att kontrollera att bifogade filer har rätt typ, att kontrollera format på inmatade värden i meddelandefält osv.
  • Det ska finnas skydd mot skadlig kod i nyttolast. Skyddet kan implementeras i Meddelandeklient (MK), Meddelandetjänst (MT) eller motsvarande. Om skadlig kod upptäcks ska, om möjligt, ett felmeddelande skickas åter till avsändaren. Skalskydd i form av antivirussystem bör förhindra vidare hantering genom att t.ex. sätta meddelandet i "karantän".
  • Både avsändare och mottagare har ansvar för validering mot gemensamma regler, t.ex. kontroll av meddelandeformatet, adressering, skanning av skadlig kod, etc.
  • Separera ansvar för transportvalidering till transportlagret (eDelivery) och innehållsvalidering till meddelandelagret (SDK), undantaget kontroll av adressering för att säkerställa säker mottagare och säker avsändare.

    Motiv: Detta gör transportlagret återanvändbart för flera typer av meddelandeöverföringar. Transportlagret ska inte behöva ha mer än nödvändig kunskap om den aktuella nyttolasten. Detta medger också att lägga in tillämpningsspecifik validering anpassad för olika meddelandetyper utan att påverka tekniken i transportlagret. T.ex. kan vissa meddelanden kräva tyngre validering, vilket då inte påverkar transportlagrets förmåga att sända och ta emot. Det ger även större möjlighet att testa och verifiera nya valideringsregler i meddelandelagret innan dessa sätts i produktion.

2.2 Principer för kvittens av mottagen leverans

  • Transportkvittenser skickas som signalmeddelanden efter att validering utförts av mottagarens accesspunkt. Detta är en del av eDelivery AS4-specifikationen, se Transportprofil AS4 Länk till annan webbplats., och sker per automatik av en godkänd accesspunkt.
  • Transportkvittens på "överfört meddelande" sker synkront i transportlagret, d.v.s. sändande accesspunkt får direkt en kvittens från mottagande accesspunkt att överföringen lyckats på transportnivå.
  • Meddelandekvittensen för ”meddelande mottaget” sker asynkront i meddelandelagret (MT), vilket medger att hantera meddelandelasten via ett kösystem för bättre skalbarhet i systemet.
  • Meddelandekvittenser ska följa Meddelandespecifikation: Meddelandekvittens, se Meddelandespecifikation – Meddelandekvittens Länk till annan webbplats..
  • Kvittenser innehåller alltid ett korrelations-id som sätts till meddelande-id för meddelandet som kvittensen, alternativt felmeddelandet, avser. Därmed är varje kvittens unikt spårbar till vilket meddelande som har kvitterats.
  • Ett meddelande anses levererat när avsändaren erhåller Meddelandekvittens för ”meddelande mottaget” (ACCEPTED) i meddelandelagret.

3. Ansvar för validering, felhantering och kvittens

Robust meddelandeöverföring via SDK bygger på följande ansvarsfördelning mellan meddelande- respektive transportlager:

Validering av meddelande

  • Meddelandets(nyttolast) adressering valideras mot transportlagrets (AS4) adressering. Detta för att kontrollera meddelandets ursprung.
  • Meddelandekuvertets struktur och i förekommande fall innehåll (kodverksregler etc.) valideras.
  • Validering görs både före sändning och efter mottagning i meddelandelagret hos avsändare respektive mottagare. I normalfallet stoppas därmed ev. fel tidigt, och vid ev. felkonfiguration hos en avsändande part, kan fel fångas upp hos mottagaren innan det går vidare in till meddelandeklient (verksamhetssystem).

Meddelandekvittens/felhantering

Skickas asynkront efter validering i mottagande meddelandelager och påvisar att överföringen har accepterats av mottagarens meddelandetjänst (mottaget meddelande - ACCEPTED), alternativt att något fel inträffat hos mottagaren (ej mottaget meddelande - REJECTED).

Följande principiella fall finns:

  • Om meddelandet mottagits utan avvikelser, ska meddelandekvittens med status ACCEPTED skickas tillbaka till avsändaren (mottaget meddelande).
  • Om meddelandet mottagits med stoppande avvikelser, ska meddelandekvittens med status REJECTED skickas tillbaka till avsändaren. Felmeddelandet ska även innehålla kodad information om felets art.

Svarstidsbevakning på avsändarens meddelandelager

  • Fångar upp uteblivna svar (meddelandekvittens) pga. tekniskt fel, nätverksproblem el. dyl.
  • Gemensamma regler för svarstider tillämpas enligt fastslagen SLA inom federationen, se bilaga för tillgänglighet inom SDK.

Spåra och övervaka på meddelandenivå
I meddelandelagret realiseras funktioner för att se status för meddelandeöverföringen, t.ex.

  • Meddelande klart för att skickas till Accesspunkt (SCHEDULED)
  • Meddelande skickat till Accesspunkt (SUBMITTED)
  • Meddelandet har transportkvitterats av mottagande Accesspunkt (ACKNOWLEDGED)
  • Meddelandet har inte kunnat levereras till mottagande Accesspunkt, ett problem har uppstått (MESSAGE_EXCHANGE_ERROR)
  • Meddelande kvitterat (ACCEPTED)
  • Meddelande kvitterat med stoppande fel. Meddelandet har ej levererats till avsedd mottagare (REJECTED)

3.2 Transportlagret – Accesspunkt

Accesspunkterna i transportlagret utför validering enligt Diggs krav på AP-operatörer, se Accesspunktsoperatör – gemensamma regler och rutiner. Länk till annan webbplats.

Omsändning definieras genom en total omsändningsperiod och antal försök som genomförs under den perioden.

Omsändning:

4. Detaljering av validering, felhantering och kvittens

Bilden visar modell för robust meddelandeöverföring, validering, felhantering och kvittens. Se en större variant av denna bild här.

Sändare (C1)

Steg: Initiera meddelande-överföring

Aktör

Verksamhetslager - Meddelandeklient/Verksamhetssystem

Aktivitet

Observera regelverk:

SKA hantera meddelandestatus

  • Transportkvittens (från mottagande accesspunkt)
  • Meddelandekvittens (från mottagande meddelandetjänst)

Skydd mot skadlig kod kan finnas i Meddelandeklient/verksamhetssystem, Meddelandetjänst eller motsvarande.

Steg: 1. Skapa meddelande

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Meddelande SKA skapas enligt specifikation SDK Innehållsspecifikation Meddelande, se bilaga SDK Innehållsspecifikation MeddelandeLänk till annan webbplats. Länk till annan webbplats.

Meddelandet paketeras (kuverteras) enligt specifikation eDelivery - Kuverteringsprofil XHE, se bilaga Kuverteringsprofil XHE.Länk till annan webbplats. Länk till annan webbplats.

Observera regelverk:

  • SKA använda tillförlitlig källa för adressering. Mottagande användarorganisation och dess funktionsadress SKA hämtas från
  • SDK Adressbok (direktintegration via Sök-API)
    Kvalitetssäkrad läskopia

Hantering av meddelande-id och konversations-id, se även specifikation:

Steg: 2. Schemavalidering

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Meddelandepaketering (kuvert) SKA valideras enligt eDelivery - Kuverteringsprofil XHE Länk till annan webbplats..

Meddelandet(nyttolast) SKA valideras enligt specifikation SDK Innehållsspecifikation – Meddelande, se SDK Innehållsspecifikation Meddelande Länk till annan webbplats..

  • Meddelandet schemavalideras programmatiskt (xsd)
  • Meddelandets regelverk valideras programmatiskt med fastslagna valideringsskript (schematronvalidering).

Observera regelverk:

  • SKA endast skicka meddelanden som passerat validering

Steg: 3. Innehållsvalidering

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Meddelandet kontrolleras:

  • Skydd mot skadlig kod kan finnas i Meddelandeklient/verksamhets-system, Meddelandetjänst eller motsvarande.

Observera regelverk:

  • SKA kontrollera meddelandets storlek

Se specifikation:

Steg: Kryptera och signera meddelande

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Meddelandelager - Meddelandetjänst

Meddelandet SKA krypteras och signeras.

Mottagande deltagarorganisations publika nyckel SKA hämtas från Certifikatspublicering, se Certifikatspublicering REST bindning till SMP. Länk till annan webbplats.

  • Kontrollera att metadata där publik nyckel ingår är signerad av betrodd part.
  • Spärrkontroll av mottagarens publika nyckel.

Se specifikation:

Steg: Sänd meddelande

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Meddelandet överför meddelandet till accesspunkt för distribution till mottagaren.

Meddelandetjänst:

SKA hantera meddelandestatus

  • Transportkvittens (från mottagande accesspunkt) dvs meddelandet är levererat till mottagarens accesspunkt.
  • Svarstidsbevakning (enligt definierad SLA, se Bilaga för tillgänglighet inom SDK) sker till dess meddelandekvittens mottagits.
  • Vid uteblivna kvittenser skall felmeddelande returneras till meddelandeklient.

AP-operatör (C2)

Aktör

Accesspunkt

Aktivitet

AP-operatör SKA validera meddelandet enligt Diggs specifikationer för AP-operatörer.

Observera:

  • Regelverk för omsändning, se kapitel 3.

Se specifikation:

AP-operatör (C3)

Aktör

Accesspunkt

Aktivitet

AP-operatör SKA validera meddelandet enligt Diggs specifikationer för AP-operatörer.

Se specifikation:

Mottagaren (C4)

Schemavalidering

Steg: Validera signatur och dekryptera meddelande

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Meddelandetjänst:

Meddelandets signatur SKA valideras. Sändande (C1) deltagarorganisations publika nyckel hämtas från Certifikatspublicering. Länk till annan webbplats.

  • Kontrollera att metadata där publik nyckel ingår är signerad av betrodd part.
  • Spärrkontroll av sändarens (C1) publika nyckel.
  • Validering av signatur är också en del av SDK:s ursprungskontroll, se Innehållsvalidering enligt punkt 5 nedan.

Se specifikation:

Steg: Schemavalidering

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Tillämpar validering enligt Schemavalicering, se punkt 2 ovan.

Steg: 5.Innehålls-validering

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Tillämpar validering enligt Innehållsvalidering, se punkt 3 ovan.

Ursprungskontroll

  • Sändarens(C1) organisations-id verifieras genom kontroll av meddelandets signatur.
  • Signatur kontrolleras mot publik nyckel registrerad i Certifikatspubliceringstjänst.
  • Verifiera att sändande organisations-id är korrekt i kuvert och nyttolast (AS4, XHE och SDK Meddelande).

Ett filformat (bifogad fil) som ej stöds ska kvitteras (REJECTED).

Se specifikation:

Steg: Sänd meddelande-kvittens

Aktör

Meddelandelager - Meddelandetjänst

Aktivitet

Efter genomför validering och kontroller SKA meddelandetjänst skicka meddelandekvittens alternativt felmeddelande.

  • Om meddelandet mottagits utan avvikelser, ska meddelandekvittens med status ACCEPTED skickas tillbaka till avsändaren (mottaget meddelande).
  • Om meddelandet mottagits med stoppande avvikelser, ska meddelandekvittens med status REJECTED skickas tillbaka till avsändaren. Felmeddelandet ska även innehålla kodad information om felets art.

Se specifikation:

Steg: Initiera intern behandling av meddelande

Aktör

Verksamhetslager - Meddelandeklient/Verksamhetssystem

Aktivitet

Meddelandeklient/Verksamhetssystem

  • SKA hantera meddelande enligt specifikation SDK Meddelande.

Se specifikation:

Hjälpte denna information dig?

Ditt svar hjälper oss att förbättra sidan

Senast uppdaterad: