Introduktion

Dette dokument er rettet mod personer der skal forstå de fejlsituationer der kan opstå ved kald til STS.

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.

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.

<?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
  • wst:AssuranceLevel

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:ibo: Fejl ved veksling af ID-kort til SAML token
  • dk:sosi:sts:bst2sosi: Fejl ved veksling af SAML token til ID-kort
  • 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:uuidcpr: Fejl ved opslag i UUID-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

<?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

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.

Validering af CPR

Ugyldigt CPR nummer
STS svar

faultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:cvrridcpr eller dk:sosi:sts:uuidcpr
faultstring = En af følgende:

  • Authentication failed: cvrrid-cpr mismatch [CVR:*-RID:*,<cpr>]
  • Authentication failed: uuid-cpr mismatch [<uuid>,<cpr>]
ÅrsagAnvender, bruger
ForklaringMOCES Certifikat og CPR-nummer fra ID-kort stemmer ikke overens, og identitet kan ikke bekræftes.
Løsning
  1. Undersøg om det anvendte certifikat svarer til ID-kortet
  2. Undersøg om CPR i ID-kort er som forventet
  3. Undersøg hvilket CPR er tilknyttet certifikatet
Manglende CPR nummer tilknytning
STS svar

faultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:cvrridcpr eller dk:sosi:sts:uuidcpr
faultstring = En af følgende:

  • Authentication failed: illegal cvrrid [CVR:*-RID:*]
  • Authentication failed: illegal uuid [<uuid>]
ÅrsagAnvender, bruger
ForklaringDet anvendte MOCES certifikat har ikke noget tilknyttet CPR-nummer og identitet kan ikke bekræftes.
LøsningCheck at der er tilknyttet et CPR til certifikatet hos DanID
Fejl ved CPR nummer opslag
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:cvrridcpr
faultstring = The specified request failed:*
ÅrsagSTS
ForklaringSTS har ikke kunnet foretage opslag imod RID-CPR tjeneste og dermed ikke kunnet verificere ID-kortet.
Løsning
  1. Gentag forespørgsel efter kort pause
  2. Ved gentagne fejl kontakt NSP support med detaljeret fejlbesked
Fejl ved CVRRID-CPR opslag
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:cvrridcpr
faultstring = The specified request failed: cvrrid-cpr lookup failed [<subjectSerialNumber>]
ÅrsagSTS
ForklaringSTS har ikke kunnet foretage opslag imod CVRRID-CPR tjeneste og dermed ikke kunnet verificere ID-kortet.
Løsning
  1. Gentag forespørgsel efter kort pause
  2. Ved gentagne fejl kontakt NSP support med henblik på fejlfinding
Fejl ved UUID-CPR opslag
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:uuidcpr
faultstring = The specified request failed: uuid-cpr lookup failed [<subjectSerialNumber>]
ÅrsagSTS
ForklaringSTS har ikke kunnet foretage opslag imod UUID-CPR tjeneste og dermed ikke kunnet verificere ID-kortet.
Løsning
  1. Gentag forespørgsel efter kort pause
  2. Ved gentagne fejl kontakt NSP support med henblik på fejlfinding
Ingen bruger data for CPR
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:bst2sosi
faultstring = Could not find userData for input CPR.
ÅrsagBruger
ForklaringDer blev ikke fundet bruger informationer for det medsendte CPR nummer.
LøsningUndersøg om det medsendte CPR nummer er korrekt.

Validering af rolle/autorisation

Fejl ved autorisation opslag
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:autorisation
faultstring = The specified request failed: authorization lookup failed [<cpr>]
ÅrsagSTS
ForklaringSTS har ikke kunnet foretage opslag imod autorisationsregisteret og dermed ikke kunnet verificere ID-kortet.
Løsning
  1. Gentag forespørgsel efter kort pause
  2. Ved gentagne fejl kontakt NSP support med henblik på fejlfinding
Manglende autorisation
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:autorisation
faultstring = Authentication failed: missing authorization
ÅrsagBruger
ForklaringDer er i forespørgslen angivet en autorisation, men der findes ikke nogle tilknyttede gyldige autorisationer til CPR-nummeret i autorisationsregisteret.
LøsningTjek at brugeren har en gyldig autorisation.
Forkert autorisation
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:autorisation
faultstring = Authentication failed: authorization not found (available [{code, role}, .., {code, role}])
ÅrsagBruger
ForklaringDer blev ikke fundet en autorisation tilknyttet CPR-nummeret, som matcher autorisations- eller uddannelseskode i ID-kortet. Medsendt i fejlteksten er en liste over de autorisationskoder (code) og uddannelseskoder (role) som er tilgængelige for CPR-nummeret.
LøsningTjek at brugerens autorisationer mathcer med de medsendte oplysninger i ID-kortet, dvs. SAML attributten UserAuthorizationCode (autorisationskode) og UserRole (uddannelseskode). Anvend eventuelt en af de mulige kombinationer i fejlteksten.
Flere autorisationer fundet
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:autorisation
faultstring = Authentication failed: multiple authorizations found ([{code, role}, .., {code, role}])
ÅrsagBruger
ForklaringDer blev fundet mere end én autorisation tilknyttet CPR-nummeret, som matcher autorisations- eller uddannelseskode i ID-kortet. Medsendt i fejlteksten er en liste over de autorisationskoder (code) og uddannelseskoder (role) som matchede.
Løsning

Angiv i ID-kortet hvilken autorisation der skal bruges, dvs. enten med angivelse af autorsations- eller uddannelseskode. Anvend eventuelt en af de mulige kombinationer i fejlteksten.

Alternativt kan bruger rollen sættes til "urn:dk:healthcare:no-role" i forespørgslen for at angive at der ikke ønskes en rolle eller autorisation på ID-kortet.

Ingen rolle eller autorisation fundet for bruger
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:nbo
faultstring = The request was invalid or malformed: EducationCode must be specified or unique authorization must exist.
ÅrsagBruger
ForklaringDer skal enten være angivet en rolle i ID-kortet, eller den specificerede bruger skal have præcis én national rolle eller autorisation.
LøsningAngiv i ID-kortet den ønskede rolle eller autorisation for brugeren.
Bruger har ikke den forespurgte nationale rolle
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:autorisation
faultstring = Authentication failed: user does not have the requested role (<role>)
ÅrsagBruger
ForklaringDen medsendte nationale rolle er ikke tilknyttet den specificerede bruger.
LøsningLav en ny forespørgsel med en rolle, som er knyttet til den specificerede bruger.
Ugyldig national rolle
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:autorisation
faultstring = Authentication failed: invalid role supplied (<role>)
ÅrsagAnvender
ForklaringMedsendte rolle har formatet af en national rolle, men matcher ikke en kendt national rolle.
LøsningUndersøg om medsendte rolle er indtastet forkert.
Flere nationale roller fundet
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:autorisation
faultstring = Authentication failed: multiple national roles found (<nationalRoles>)
ÅrsagAnvender
ForklaringForespørgslen indeholder ikke en national rolle eller autorisation, og der blev fundet mere end én national rolle tilknyttet CPR-nummeret for brugeren.
Løsning

Angiv i forespørgslen hvilken national rolle der skal bruges. Anvend en af de mulige roller (nationalRoles) fra fejlteksten.

Alternativt kan bruger rollen sættes til "urn:dk:healthcare:no-role" i forespørgslen for at angive at der ikke ønskes en rolle eller autorisation på ID-kortet.

Autorisation og rolle i samme forespørgsel
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:bst2sosi
faultstring = The request was invalid or malformed: Only one of UserAuthorizationCode or UserRole is allowed in request.
ÅrsagAnvender
ForklaringDet er for denne omveksling ikke tilladt at specificere både UserAuthorizationCode og UserRole i samme forespørgsel.
LøsningFjern enten UserAuthorizationCode eller UserRole fra forespørgslen.

Validering af claims

Manglende CPR claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = CPR claim missing
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder ikke et CPR claim.
LøsningFremsend en ny forespørgsel med et gyldigt CPR claim (og overvej at stramme op på klient systemets input validering).
Ugyldigt CPR claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = CPR-number must be 10 digits
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder et CPR claim i ugyldigt format.
LøsningFremsend en ny forespørgsel med et gyldigt CPR claim (og overvej at stramme op på klient systemets input validering).
Forkert CPR claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = CPR/PID mismatch
ÅrsagAnvender
ForklaringDet medsendte påståede CPR matcher ikke cpr nummeret tilknyttet brugerens certifikat. Brugeren har formentlig tastet forkert.
LøsningFremsend en ny forespørgsel med et gyldigt CPR claim.
Forkert CPR claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = Cpr claim does not match cpr in assertion or Subject NameID.
ÅrsagAnvender
ForklaringDet medsendte påståede CPR matcher ikke cpr nummeret i det medsendte token, eller Subject NameID. Brugeren har formentlig tastet forkert.
LøsningFremsend en ny forespørgsel med et gyldigt CPR claim.
Fejl i validering af CPR claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = Unable to validateScope cpr
ÅrsagSTS
ForklaringSTS'en kunne ikke validere gyldigheden af det medsendte påståede CPR.
LøsningKontakt NSP support for at få fejlen undersøgt nærmere.
Tomt OnBehalfOf claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = OnBehalfOf claim must not be empty
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder et tomt OnBehalfOf claim.
LøsningFremsend en ny forespørgsel, enten uden OnBehalfOf claim eller med et gyldigt OnBehalfOf claim (og overvej at stramme op på klient systemets input validering).
Ugyldigt OnBehalfOf claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = No privileges provided by procuration
ÅrsagAnvender
ForklaringDen påståede fuldmagt (OnBehalfOf) findes ikke.
Løsning
  1. Undersøg om cpr nummeret i OnBehalfOf er indtastet rigtigt.
  2. Undersøg om brugeren har en fuldmagt for dette cpr nummer.
Fejl i validering af OnBehalfOf claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = Unable to get procurations
ÅrsagSTS
ForklaringSTS'en kunne ikke validere gyldigheden af den medsendte påståede fuldmagt.
LøsningKontakt NSP support for at få fejlen undersøgt nærmere.
Ugyldige claims
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = The request was invalid or malformed: Request contains invalid claims. Valid claims are: <validClaims>
ÅrsagAnvender
ForklaringForespørgslen indeholder claims som ikke kan bruges til denne type omveksling.
LøsningFjern claims fra forespørgslen, som ikke findes i listen af gyldige claims (validClaims).

Validering af audience

Angivelse af audience mangler
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = Audience is missing
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder ikke angivelse af et audience (som det udstedte token kan benyttes til)
LøsningAnvendersystemet tilrettes til at medsende audience (dette vil ofte være https://fmk).
Ukendt audience
STS svar

faultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = En af følgende:

  • Audience not configured: <audience>
  • The request was invalid or malformed: audience not known.
  • The specified request failed: No configuration found for audience, '<audience>'
ÅrsagAnvender eller konfiguration
ForklaringDen medsendte forespørgsel indeholder angivelse af et ukendt audience (som det udstedte token kan benyttes til)
Løsning

Anvendersystemet tilrettes til at medsende korrekt audience (dette vil ofte være https://fmk).

Hvis medsendte audience er korrekt, kontaktes NSP support for at få konfigureret STS med dette audience.

Ukendt audience for issuer
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:its
faultstring = BST2IDWS assertion has an invalid audience. Actual audience:<audience>, Allowed audience:<allowedAudience>
ÅrsagAnvender eller konfiguration
ForklaringDet angivne audience er ikke tilladt for udstederen af det medsendte token
LøsningSørg for at 'AudienceRestriction' på det medsendte token er allowedAudience
Ukendt audience for BST2SOSI forespørgsel
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:bst2sosi
faultstring = BST2SOSI assertion does not have allowed audience. Actual type:<audience>, Allowed type:<allowedAudience>
ÅrsagAnvender
ForklaringBST2SOSI omvekslingen kræver en bestemt audience (allowedAudience).
LøsningLav en ny forespørgsel hvor audience på tokenet er allowedAudience.

Validering af signatur

Ugyldig signatur
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = Unable to validate envelope signature
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder ingen eller en ugyldig xml signatur - dette sker ofte ved omformatering af indeholdet på en signeret besked
LøsningAnvendersystemet tilrettes til at signere og/eller undgå omformatering i forbindelse med afsendelse
Ugyldig token signatur
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = Signature on OIOSAMLAssertion is invalid
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder et bootstrap token med ugyldig xml signatur - dette sker ofte ved omformatering af indeholdet på en signeret besked
LøsningAnvendersystemet tilrettes til at signere og/eller undgå omformatering i forbindelse med afsendelse
Certifikat udløbet
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:*
faultstring = Certificate expired or not yet valid
ÅrsagAnvender
ForklaringDen medsendte forespørgsel er signeret med et udløbet certifikat.
LøsningAnvendersystemet skal forny sit certifikat og benytte dette. Endvidere skal NSP konfigureres til at tillade det nye certifikat
Certifikat udløbet for token signatur
STS svar

faultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = En af følgende:

  • Bootstrap token signer expired
  • BST2SOSI Certificate expired
  • JWT signer expired
  • NBO certificate expired
  • JWT signer expired
ÅrsagAnvender eller konfiguration
ForklaringDet indeholdte token er signeret med et udløbet certifikat.
LøsningKontakt NSP support. Den Idp (typisk Nem-id) som signerer token skal benytte et nyt certifikat, NSP skal konfigureres til at stole på dette.
Certifikat endnu ikke gyldigt for token signatur
STS svar

faultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = En af følgende:

  • Bootstrap token signer not valid yet
  • BST2SOSI Certificate not valid yet
  • JWT signer not valid yet
  • NBO certificate not valid yet
  • JWT signer not valid yet
ÅrsagAnvender eller konfiguration
ForklaringDet indeholdte token er signeret med et certifikat der endnu ikke kan benyttes.
Løsning

Et af følgende:

  1. Vent til certifikatet bliver gyldigt. Tidspunktet fremgår af certifikatet.
  2. Kontakt NSP support. Den Idp (typisk Nem-id) som signerer token skal benytte et nyt certifikat, NSP skal konfigureres til at stole på dette.
Certifikat revokeret
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:*
faultstring = Certificate revoked
ÅrsagAnvender
ForklaringDen medsendte forespørgsel er signeret med et revokeret certifikat.
LøsningAnvendersystemet skal forny sit certifikat og benytte dette. Endvidere skal NSP konfigureres til at tillade det nye certifikat
Certifikat revokeret for token signatur
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = En af følgende:
  • Bootstrap token signer revoked
  • BST2SOSI Certificate revoked
  • JWT signer revoked
  • NBO certificate revoked
  • JWT signer revoked
ÅrsagAnvender eller konfiguration
ForklaringDet indeholdte token er signeret med et revokeret certifikat.
LøsningKontakt NSP support. Den Idp (typisk Nem-id) som signerer token skal benytte et nyt certifikat, NSP skal konfigureres til at stole på dette.
Fejl i validering af certifikat
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:*
faultstring = Authentication failed: Certificate invalid (<errorMessage>)
ÅrsagUkendt
ForklaringNoget gik galt i valideringen af det signerende certifikat.
LøsningKontakt NSP support med henblik på analyse af fejlen.
Certifikat ikke konfigureret for audience
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:*
faultstring = Signing certificate not whitelisted for this audience
ÅrsagAnvender
ForklaringDet signerende certifikat er ikke whitelistet for det angivne audience.
LøsningKontakt NSP support med henblik på at få det ønskede certifikat whitelistet.
Certifikat ikke konfigureret for issuer
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts:*
faultstring = Signing certificate not whitelisted for this issuer
ÅrsagAnvender
ForklaringDet signerende certifikat er ikke whitelistet for udstederen af ID-kortet.
LøsningKontakt NSP support med henblik på at få det ønskede certifikat whitelistet.
Ugyldig udsteder
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts
faultstring = Authentication failed: certificate issued by invalid party
ÅrsagAnvender
ForklaringDet underskrivende certifikat er ikke udstedt i føderationen og kan derfor ikke anvendes til udstedelse af ID-kort.
Løsning
  1. Undersøg hvilken STS der er brugt, dvs. Test eller Produktion.
  2. Undersøg hvilken CA der har udstedt certifikatet
Certifikat ikke trusted for token signatur
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = The certificate that signed the security token is not trusted
ÅrsagAnvender eller konfiguration
ForklaringDet indeholdte token er signeret med et certifikat, som ikke accepteres af STS. Token bør typisk være signeret af Nem-id.
LøsningAnvend et token signeret af Nem-id, eller kontakt NSP support med henblik på alternativ løsning om nødvendigt (der findes et anvendeligt alternativ i testmiljøerne))
Certifikat ikke whitelisted
STS svar

faultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts
faultstring = En af følgende:

  • Authentication failed: MOCES not in whitelist [*]
  • Authentication failed: VOCES not in whitelist [*]
ÅrsagSTS
ForklaringDet underskrivende certifikat er ikke whitelisted i STS’en og kan derfor ikke udstede ID-kort.
Løsning

Kontakt NSP support med henblik på at få det ønskede certifikat whitelistet.

MOCES certifikat blacklisted
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts
faultstring = Authentication failed: MOCES is blacklisted [*]
ÅrsagSTS
ForklaringDet underskrivende certifikat er blacklisted i STS’en og kan derfor ikke udstede ID-kort.
Løsning
  1. Bekræft at certifikatet er blacklisted
  2. Undersøg årsagen til blacklisting
Ugyldig certifikat type
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts
faultstring = Authentication failed: signed with unsupported certificate type
ÅrsagAnvender
ForklaringTypen af det underskrivende certifikat er ikke supporteret af STS. STS understøtter typerne: MOCES, VOCES, FOCES, POCES
LøsningBenyt et certifikat med et af de understøttede typer.
Ugyldig certifikat type til signering af ID-kort
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts
faultstring = Authentication failed: must be signed with <certType>
ÅrsagAnvender
Forklaring

ID-kortet skal være signeret af et certifikat med type certType.

Bruger ID-kort skal signeres af MOCES certifikater. System ID-kort må ikke signeres af MOCES certifikater.

LøsningSigner ID-kortet med et certifikat af typen certType.
Ugyldig percistence level af MOCES3 certifikat
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts
faultstring = Authentication failed: signed with unsupported certificate - persistence level of moces3 certificates must be global
ÅrsagAnvender
Forklaring

Der er benyttet et MOCES3 certifikat, som ikke har global persistence level, til at signere ID-kortet.

LøsningSigner ID-kortet med et MOCES3 certifikat med global persistence level
Bruger id-kort signeret med VOCES/FOCES certifikat
STS svarfaultcode = wst:BadRequest
faultactor = dk:sosi:sts
faultstring = The specified RequestSecurityToken is not understood: ID-Card is a User ID-Card signed with VOCES/FOCES
ÅrsagAnvender
ForklaringBruger ID-kortet er signeret med et VOCES eller FOCES certifikat. STS'en tillader kun Bruger ID-kort signeret med et MOCES certifikat.
LøsningBenyt et MOCES certifikat til at signere ID-kortet
Manglende elementer i signatur
STS svarfaultcode = wst:AuthenticationBadElements
faultactor = dk:sosi:sts:seal
faultstring = Insufficient Digest Elements: *
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder en xml signatur med manglende elementer.
LøsningUndersøg om noget er gået galt i forbindelse med signeringen af forespørgslen.

Validering af token

Token ikke udstedt til borger
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = Token not issued to a citizen
ÅrsagAnvender
ForklaringDet indeholdte token er ikke udstedt på baggrund af en borgers certifikat. Kun borger-certifikater kan anvendes
LøsningAnvend et token udstedet på baggrund af et borger certifikat (POCES).
Ugyldigt nameID
STS svar

faultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = En af følgende:

  • Invalid name: <nameID>
  • Invalid Subject NameID: <nameID>
ÅrsagUkendt
ForklaringDet indeholdte token indeholder et ugyldigt formateret nameID.
LøsningHvis token er udstedt af Nem-id, kontaktes NSP supporten med henblik på analyse af fejlen.
Token udløbet
STS svar

faultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = En af følgende

  • Bootstrap token no longer valid
  • OIOSAML token no longer valid
ÅrsagOftest anvender
ForklaringDet indeholdte token er udløbet.
LøsningHent og benyt et nyt token.
Token kan ikke dekrypteres
STS svar

faultcode = wst:InvalidRequest eller wst:RequestFailed
faultactor = dk:sosi:sts:*
faultstring = En af følgende:

  • Unable to decrypt element
  • The specified request failed: Could not decrypt Assertion with any of the encryption keys in IdpConfigService.
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder et token, som er krypteret med en nøgle som ikke er kendt af STS’en
LøsningKan f.eks. skyldes manglende kryptering, kryptering med forkert nøgle, eller at der er "pillet" ved data efter kryptering.
Ugyldig SAML token type
STS svar

faultcode = wst:RequestFailed
faultactor = dk:sosi:sts:its
faultstring = En af følgende:

  • BST2IDWS assertion is not allowed type. Actual type:<type>, Allowed types:<allowedTypes>
  • BST2SOSI assertion is not allowed type. Actual type:<type>, Allowed types:<allowedTypes>
ÅrsagAnvender
ForklaringDen medsendte forespørgsel indeholder en token type, der ikke er gyldig for denne forespørgsel.
LøsningBenyt et token med en af de gyldige typer (allowedTypes)
Ukendt token issuer
STS svar

faultcode = wst:InvalidRequest eller wst:RequestFailed
faultactor = dk:sosi:sts:its eller dk:sosi:sts
faultstring = En af følgende:

  • Unknown issuer: <issuer>
  • The specified request failed: Could not find IdpConfiguration for issuer: <issuer>
  • The specified request failed: IdpConfig cannot be null in Bootstrap2IdwsConfig
ÅrsagAnvender, STS
ForklaringUdstederen (issuer) af det medsendte token er ikke kendt af STS'en
Løsning

Undersøg om det medsendte token har sat issuer korrekt.

Hvis udstederen af tokenet er korrekt, skal NSP support kontaktes for at få STS'en konfigureret med denne udsteder.

Manglende STS token scope
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = Incoming JSON webtoken not scoped for this sts: <scope>
ÅrsagAnvender
ForklaringListen af scopes i det medsendte token indeholder ikke det krævede STS scope for denne type forespørgsel.
Løsning
  1. Kontakt NSP support, hvis det krævede scope ikke kendes.
  2. Udsted et nyt token hvor det krævede scope er indeholdt.
Manglende jwt scope konfiguration for audience
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = JWT scope not configured for audience <audience>
ÅrsagSTS
ForklaringDet medsendte audience er ikke konfigureret med et krævet jwt scope
Løsning

Kontakt NSP support med henblik på at rette konfigurationen for dette audience.

Manglende audience token scope
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = Incoming JSON webtoken not scoped for audience (<audience>)
ÅrsagAnvender
ForklaringListen af scopes i det medsendte token indeholder ikke det krævede scope for dette audience.
Løsning
  1. Kontakt NSP support, hvis det krævede scope ikke kendes.
  2. Udsted et nyt token hvor det krævede scope er indeholdt.
Manglende certsubdn på jwt token
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = JWT claim missing: certsubdn
ÅrsagAnvender
ForklaringMedsendte jwt token mangler feltet "certsubdn"
LøsningUdsted et nyt jwt token, hvor feltet "certsubdn" er inkluderet.
Manglende IT System
STS svar

faultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:nbo eller dk:sosi:sts:bst2sosi
faultstring = En af følgende:

  • The request was invalid or malformed: IT System must be specified.
  • The request was invalid or malformed: ITSystemName is required in request.
ÅrsagAnvender
ForklaringFeltet "ITSystemName" er påkrævet for denne type forespørgsel.
LøsningLav en ny forespørgsel, hvor "ITSystemName" er specificeret.
Ugyldig basic privileges
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:bst2sosi
faultstring = BST2SOSI assertion contains an invalid basic privilege profile
ÅrsagAnvender
Forklaring"privileges" på det medsendte bootstrap token har et ugyldigt format og kunne ikke læses af STS'en.
LøsningFjern "privileges" feltet eller ret det til et gyldigt format.
Manglende RID eller UUID på bootstrap token
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:bst2sosi
faultstring = BST2SOSI assertion must contain one of the attributes: '<ridAttribute>' or '<uuidAttribute>'
ÅrsagAnvender
ForklaringFor den medsendte token type, kræves enten et RID nummer eller et UUID
LøsningTilføj RID nummer eller UUID til medsendte token
Manglende UUID på bootstrap token
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:bst2sosi
faultstring = BST2SOSI assertion must contain the attribute '<uuidAttribute>'
ÅrsagAnvender
ForklaringFor den medsendte token type, kræves et UUID
LøsningTilføj UUID til medsendte token
Manglende token i forespørgsel
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts
faultstring = The specified request failed: No assertion element found on request.
ÅrsagAnvender
ForklaringForespørgslen mangler et bootstrap token (assertion)
LøsningUndersøg hvorfor forespørgslen er blevet lavet uden et bootstrap token
Manglende token attribut
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*
faultstring = The request was invalid or malformed: Mandatory '<attributeID>' SAML attribute (<attributeName>) is missing
ÅrsagAnvender
ForklaringEn påkrævet attribut manger i det medsendte token.
LøsningLav en ny forespørgsel hvor den påkrævede attribut er inkluderet i tokenet.

Validering af Assurance/Authentication Level

Ugyldig assurance level type
STS svar

faultcode = wst:RequestFailed
faultactor = dk:sosi:sts:its
faultstring = En af følgende:

  • BST2IDWS assertion do not have a valid type of AssuranceLevel. Type:<type>
  • BST2SOSI assertion do not have a valid type of AssuranceLevel. Type:<type>
ÅrsagAnvender
Forklaring

Det medsendte token har en assurance level type, der ikke kan benyttes på et token af denne type. Der findes to assurance level typer:

  • NIST (1, 2, 3, 4, 5)
  • NSIS (Low, Substantial, High)

LøsningLav en ny forespørgsel hvor assurance level typen er skiftet til den anden type.
Ugyldig assurance level
STS svar

faultcode = wst:RequestFailed
faultactor = dk:sosi:sts:its
faultstring = En af følgende:

  • BST2IDWS assertion do not have a valid AssuranceLevel <assuranceLevel>. AssuranceLevel * or * required.
  • BST2SOSIassertion do not have a valid AssuranceLevel <assuranceLevel>. AssuranceLevel * or * required.
ÅrsagAnvender
ForklaringDet medsendte token har en assurance level, der er ugyldig for denne type forespørgsel.
LøsningLav en ny forespørgsel, hvor det medsendte token har en af de foreslåede assurance levels.
Ugyldig assurance level
STS svarfaultcode = wst:AssuranceLevel
faultactor = dk:sosi:sts:nbo
faultstring = Assurance level other than 3 or 4 is not accepted
ÅrsagAnvender
ForklaringDet medsendte token har en assurance level, der er ugyldig for denne type forespørgsel. Der accepteres kun assurance level 3 og 4
LøsningLav en ny forespørgsel, hvor det medsendte token har assurance level 3 eller 4.
Ugyldig authentication level
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts
faultstring = The specified RequestSecurityToken is not understood: Authentication level not supported (*)
ÅrsagAnvender
ForklaringForespørgslen indeholder et ID-kort med et authentication level der ikke er understøttet, dvs. forskelligt fra level 3 eller 4 (se DGWS for detaljer).
LøsningKlienten rettes, så kun understøttede authentication level versioner anvendes.
Ugyldigt id-kort med authentication level 3
STS svarfaultcode = wst:BadRequest
faultactor = dk:sosi:sts
faultstring = The specified RequestSecurityToken is not understood: ID-Card is not a System ID-Card
ÅrsagAnvender
ForklaringDet medsendte ID-kort har authentication level 3, men er ikke et System ID-kort. 
Løsning

Ret ID-kortet så det matcher et System ID-kort

Ugyldigt id-kort med authentication level 4
STS svarfaultcode = wst:BadRequest
faultactor = dk:sosi:sts
faultstring = The specified RequestSecurityToken is not understood: ID-Card is not a User ID-Card
ÅrsagAnvender
ForklaringDet medsendte ID-kort har authentication level 4, men er ikke et Bruger ID-kort. 
Løsning

Hvis der ønskes et Bruger ID-kort: Ret ID-kortet så det matcher et Bruger ID-kort

Hvis der ønskes et System ID-kort: Ret authentication level til 3

Validering af ID-kort

Ugyldig ID-kort version
STS svarfaultcode = wst:RequestFailed
faultactor = dk:sosi:sts:seal
faultstring = The specified request failed IDCard version ’*’ not supported. Supported versions are: [1.0.1,1.0]
ÅrsagAnvender
ForklaringForespørgslen indeholder et ID-kort med en version der ikke understøttes af STS (se DGWS for detaljer).
LøsningKlienten rettes, så kun understøttede ID-kort versioner anvendes. Nyere versioner af både Seal.Java og Seal.NET producerer ID-kort med korrekt version.
Ugyldigt tidsinterval på ID-kort
STS svarfaultcode = wst:InvalidTimeRange
faultactor = dk:sosi:sts
faultstring = The requested time range is invalid or unsupported: IDCard have maximum validity of 24 hours + [*]
ÅrsagAnvender
ForklaringForespørgslen anmoder om et ID-kort med gyldighed mere end 24 timer, hvilket ikke understøttes (se DGWS for detaljer).
LøsningKlienten rettes, så kun ID-kort med gyldighed på 24 timer eller mindre forsøges udstedt.
Ugyldigt tidsinterval på ID-kort
STS svar

faultcode = wst:InvalidTimeRange eller wst:FailedAuthentication
faultactor = dk:sosi:sts eller dk:sosi:sts:its
faultstring = En af følgende:

  • The requested time range is invalid or unsupported: IDCard is created after or expires before current system time
  • Authentication failed: ID card is not valid in time.
ÅrsagAnvender, STS
ForklaringID-kortet er udstedt på et system, der ikke er tidssynkroniseret med STS. Hvis tiden afviger signifikant (der tillades nogen tidsdrift), kan ID-kortet ikke udstedes.
LøsningSåfremt STS tiden ikke er korrekt vil der generelt være problemer med udstedelsen af ID-kort. Fejlen vil derfor overvejende skulle fejlsøges hos anvenderen:
  1. Undersøg om anvenderens IT-system anvender korrekt tid
  2. Check om NTP anvendes, evt. hyppighed og NTP server
  3. Synkroniser tid
ID-kort for gammelt til denne modtager
STS svar

faultcode = wst:InvalidTimeRange eller wst:FailedAuthentication
faultactor = dk:sosi:sts eller dk:sosi:sts:its
faultstring = En af følgende:

  • The requested time range is invalid or unsupported: IDCard is too old for this audience: * [*>*]
  • The requested time range is invalid or unsupported: ID card is not valid in time due to maximal age restriction for this audience.
ÅrsagAnvender
ForklaringVed billetomveksling kan der være lagt begrænsninger på hvor gammelt det id-kort som søges vekslet må være. Dette vil typisk være 24 timer, men kan for visse modtagere være mindre.
LøsningForny ID-kortet og få det signeret af STS.
Ugyldigt nameId
STS svarfaultcode = wst:BadRequest
faultactor = dk:sosi:sts
faultstring = The specified RequestSecurityToken is not understood: IDCard nameId must match information from certificate.
ÅrsagAnvender
ForklaringnameId på ID-kortet indeholder certifikat informationer, som ikke matcher certifikatet der har signeret ID-kortet
Løsning
  1. Undersøg om det anvendte certifikat svarer til ID-kortet
  2. Undersøg om nameId på ID-kortet er angivet korrekt
CVR uoverensstemmelse
STS svarfaultcode = wst:FailedAuthentication
faultactor = dk:sosi:sts
faultstring = Authentication failed: cvr mismatch
ÅrsagAnvender
ForklaringCVR i ID-kortet svarer ikke til CVR i certifikatets subject serial number.
Løsning
  1. Verificer CVR nummer i STS forespørgsel
  2. Find CVR i certifikatet
Ugyldigt ID-kort i Identity Token Request
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:its
faultstring = The request was invalid or malformed: identity token service only support user card.
ÅrsagAnvender
ForklaringIdentity Token Request indeholder en ID-kort, som ikke er et gyldigt Bruger ID-kort.
Løsning

Undersøg ID-kortet i forespørgslen for fejl.

Undersøg f.eks. om ID-kortet indeholder UserInfo.

  • No labels