Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduktion

Denne note er rettet mod personer der skal forstå hvorledes forespørgsler mod STS behandles i relation til diagnosticering af support henvendelser. Noten forventes at skulle udvides eller suppleres af andet dokument, som adresserer behov for både indkommende support henvendelser samt support ved tilslutning af eksempelvis lægepraksissystemer.

Behandling af forespørgsel

Ved behandling af en forespørgsel om udstedelse af ID-kort hos en STS

...

gennemgås en række skridt.

...

Forløbet er skitseret forsimplet

...

nedenfor, med de skridt der har primær relevans i forhold til diagnosticering af udstedelse. Hvert skridt kan føre til en afvisning af forespørgslen, mens succesfuld verifikation leder til signering og dermed udstedelse af et ID-kort.

Image Added

Verificeret forespørgsel

Ved succesfuld udstedelse af et STS signeret ID-kort returneres et SOAP svar fra STS indeholdende relevante ID-kort attributter (SAML assertions), dvs. både verificerede (f.eks CVR) og berigede (f.eks. CPR), samt øvrig information jævnfør DGWS.

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope ...>
	<soapenv:Header>
		<wsse:Security id="AAABL0ncNMXd26QUzOR4JlNPU0k=">
			<wsu:Timestamp>
				<wsu:Created>2011-04-12T15:17:41</wsu:Created>
			</wsu:Timestamp>
		</wsse:Security>
	</soapenv:Header>
	<soapenv:Body>
		<wst:RequestSecurityTokenResponse Context="www.sosi.dk">
			<wst:TokenType>urn:oasis:names:tc:SAML:2.0:assertion:</wst:TokenType>
			<wst:RequestedSecurityToken>
				...
			</wst:RequestedSecurityToken>
			<wst:Status>
				<wst:Code>http://schemas.xmlsoap.org/ws/2005/02/trust/status/valid</wst:Code>
			</wst:Status>
			<wst:Issuer>
				<wsa:Address>TESTSTS</wsa:Address>
			</wst:Issuer>
		</wst:RequestSecurityTokenResponse>
	</soapenv:Body>
</soapenv:Envelope>

Ovenstående eksempel viser en del af et svar indeholdende et STS signeret ID-kort. I eksemplet er namespace erklæringer samt alle ID-kort attributter fjernet af hensyn til overskuelighed.

...

Vigtige elementer ved diagnosticering er:

  • wsu:Timestamp: Tidspunkt for udstedelse
  • wst:RequestSecurityTokenResponse: Findes altid for succesfuldt udstedte ID-kort
  • wst:RequestedSecurityToken: Indeholder ID-kortets attributter
  • wst:Status: Indeholder status for ID-kortet (WS-Trust)
  • wst:Issuer: Viser hvilken STS (føderation) ID-kortet er udstedt af

Afvist forespørgsel

På tilsvarende vis leverer en STS ved afvist forespørgsel et SOAP svar (Fault) indeholdende yderligere information om fejlen.

Nedenstående eksempel viser (igen uden namespace erklæringer) elementerne i svaret der bruges i forbindelse med diagnosticering:

  • wsu:Timestamp: Tidspunkt for behandling
  • faultcode: Kategorisering af årsag til afvisning
  • faultactor: Information om afvisningens oprindelse
  • faultstring: Kort beskrivelse af årsagen til afvisningen

Det er kombinationen af faultcode, faultactor og faultstring som identificerer fejlen, hvor faultstring typisk indeholder den nødvendige information for nærmere fejlsøgning.

Faultcode værdier skal ikke betragtes som entydige fejlkoder, men skal ses i sammenhæng og bør betragtes som en gruppering af de fejltyper der kan opstå ved behandling af kald til tjenester på en STS:

  • wst:InvalidRequest
  • wst:FailedAuthentication
  • wst:RequestFailed
  • wst:AuthenticationBadElements
  • wst:BadRequest
  • wst:InvalidTimeRange

Faultactor værdier

  • dk:sosi:sts: Fejl ved behandling af ID-kort udstedelse
  • dk:sosi:sts:its: Fejl ved veksling af SAML token identity token
  • dk:sosi:sts:nbo: Fejl ved billetomveksling
  • dk:sosi:sts:seal: Fejl ved håndtering af ID-kort, f.eks. verifikation af signatur og serialisering/deserialisering
  • dk:sosi:sts:cvrridcpr: Fejl ved opslag i RID-CPR tjeneste eller brug af resultatet fra opslaget
  • dk:sosi:sts:autorisation: Fejl ved opslag i autorisationsregister eller brug af resultatet fra opslaget

Eksempel på afvist forespørgsel

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope ...>
	<soapenv:Header>
		<wsse:Security id="">
			<wsu:Timestamp>
				<wsu:Created>2011-04-12T15:17:39</wsu:Created>
			</wsu:Timestamp>
		</wsse:Security>
	</soapenv:Header>
	<soapenv:Body>
		<soapenv:Fault>
			<faultcode>wst:InvalidRequest</faultcode>
			<faultstring>The request was invalid or malformed</faultstring>
			<faultactor>dk:sosi:sts</faultactor>
		</soapenv:Fault>
	</soapenv:Body>
</soapenv:Envelope>


Detaljer i fejltekster

Ved nogle fejl kan faultstring indeholde dynamiske informationer som f.eks. autorisationskoder mv. Disse informationer kan anvendes af det kaldende system hvis systemet ikke selv har mulighed for at slå informationerne op i f.eks. Stamdata komponenten.

Det skal bemærkes at en fremtidig opdatering ef DGWS eller en overgang til en anden standard kan betyde at disse informationer ikke længere er inkluderet i faultstring.

Fejlsituationer billetudstedelse

De følgende afsnit beskriver en delmængde af de fejlsituationer, man som anvender kan komme ud for i forbindelse med udstedelse af ID-kort mod en STS. Beskrivelserne består af:

  • Passende overskrift
  • STS svar: SOAP fault fra STS svaret
  • Årsag: Hvor findes fejlen, f.eks. anvender (kalder af STS), bruger (ejer af certifikat/ID-kort), eller STS
  • Forklaring: En kort beskrivelse af problemet
  • Løsning: Hvad man kan gøre for at løse/diagnostisere problemet

I forbindelse med fejlsøgning sammenholdes den konkrete SOAP fejl med de beskrevne STS svar ved hjælp af faultcode, faultactor og faultstring.

...