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
|
Årsag | Anvender, bruger |
Forklaring | MOCES Certifikat og CPR-nummer fra ID-kort stemmer ikke overens, og identitet kan ikke bekræftes. |
Løsning |
|
Manglende CPR nummer tilknytning | |
---|---|
STS svar | faultcode = wst:FailedAuthentication
|
Årsag | Anvender, bruger |
Forklaring | Det anvendte MOCES certifikat har ikke noget tilknyttet CPR-nummer og identitet kan ikke bekræftes. |
Løsning | Check at der er tilknyttet et CPR til certifikatet hos DanID |
Fejl ved CPR nummer opslag | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:cvrridcpr faultstring = The specified request failed:* |
Årsag | STS |
Forklaring | STS har ikke kunnet foretage opslag imod RID-CPR tjeneste og dermed ikke kunnet verificere ID-kortet. |
Løsning |
|
Fejl ved CVRRID-CPR opslag | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:cvrridcpr faultstring = The specified request failed: cvrrid-cpr lookup failed [<subjectSerialNumber>] |
Årsag | STS |
Forklaring | STS har ikke kunnet foretage opslag imod CVRRID-CPR tjeneste og dermed ikke kunnet verificere ID-kortet. |
Løsning |
|
Fejl ved UUID-CPR opslag | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:uuidcpr faultstring = The specified request failed: uuid-cpr lookup failed [<subjectSerialNumber>] |
Årsag | STS |
Forklaring | STS har ikke kunnet foretage opslag imod UUID-CPR tjeneste og dermed ikke kunnet verificere ID-kortet. |
Løsning |
|
Ingen bruger data for CPR | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:bst2sosi faultstring = Could not find userData for input CPR. |
Årsag | Bruger |
Forklaring | Der blev ikke fundet bruger informationer for det medsendte CPR nummer. |
Løsning | Undersøg om det medsendte CPR nummer er korrekt. |
Validering af rolle/autorisation
Fejl ved autorisation opslag | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:autorisation faultstring = The specified request failed: authorization lookup failed [<cpr>] |
Årsag | STS |
Forklaring | STS har ikke kunnet foretage opslag imod autorisationsregisteret og dermed ikke kunnet verificere ID-kortet. |
Løsning |
|
Manglende autorisation | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:autorisation faultstring = Authentication failed: missing authorization |
Årsag | Bruger |
Forklaring | Der er i forespørgslen angivet en autorisation, men der findes ikke nogle tilknyttede gyldige autorisationer til CPR-nummeret i autorisationsregisteret. |
Løsning | Tjek at brugeren har en gyldig autorisation. |
Forkert autorisation | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:autorisation faultstring = Authentication failed: authorization not found (available [{code, role}, .., {code, role}]) |
Årsag | Bruger |
Forklaring | Der 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øsning | Tjek 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 svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:autorisation faultstring = Authentication failed: multiple authorizations found ([{code, role}, .., {code, role}]) |
Årsag | Bruger |
Forklaring | Der 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 svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:nbo faultstring = The request was invalid or malformed: EducationCode must be specified or unique authorization must exist. |
Årsag | Bruger |
Forklaring | Der skal enten være angivet en rolle i ID-kortet, eller den specificerede bruger skal have præcis én national rolle eller autorisation. |
Løsning | Angiv i ID-kortet den ønskede rolle eller autorisation for brugeren. |
Bruger har ikke den forespurgte nationale rolle | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:autorisation faultstring = Authentication failed: user does not have the requested role (<role>) |
Årsag | Bruger |
Forklaring | Den medsendte nationale rolle er ikke tilknyttet den specificerede bruger. |
Løsning | Lav en ny forespørgsel med en rolle, som er knyttet til den specificerede bruger. |
Ugyldig national rolle | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:autorisation faultstring = Authentication failed: invalid role supplied (<role>) |
Årsag | Anvender |
Forklaring | Medsendte rolle har formatet af en national rolle, men matcher ikke en kendt national rolle. |
Løsning | Undersøg om medsendte rolle er indtastet forkert. |
Flere nationale roller fundet | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:autorisation faultstring = Authentication failed: multiple national roles found (<nationalRoles>) |
Årsag | Anvender |
Forklaring | Forespø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 svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:bst2sosi faultstring = The request was invalid or malformed: Only one of UserAuthorizationCode or UserRole is allowed in request. |
Årsag | Anvender |
Forklaring | Det er for denne omveksling ikke tilladt at specificere både UserAuthorizationCode og UserRole i samme forespørgsel. |
Løsning | Fjern enten UserAuthorizationCode eller UserRole fra forespørgslen. |
Validering af claims
Manglende CPR claim | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = CPR claim missing |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder ikke et CPR claim. |
Løsning | Fremsend en ny forespørgsel med et gyldigt CPR claim (og overvej at stramme op på klient systemets input validering). |
Ugyldigt CPR claim | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = CPR-number must be 10 digits |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder et CPR claim i ugyldigt format. |
Løsning | Fremsend en ny forespørgsel med et gyldigt CPR claim (og overvej at stramme op på klient systemets input validering). |
Forkert CPR claim | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = CPR/PID mismatch |
Årsag | Anvender |
Forklaring | Det medsendte påståede CPR matcher ikke cpr nummeret tilknyttet brugerens certifikat. Brugeren har formentlig tastet forkert. |
Løsning | Fremsend en ny forespørgsel med et gyldigt CPR claim. |
Forkert CPR claim | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = Cpr claim does not match cpr in assertion or Subject NameID. |
Årsag | Anvender |
Forklaring | Det medsendte påståede CPR matcher ikke cpr nummeret i det medsendte token, eller Subject NameID. Brugeren har formentlig tastet forkert. |
Løsning | Fremsend en ny forespørgsel med et gyldigt CPR claim. |
Fejl i validering af CPR claim | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = Unable to validateScope cpr |
Årsag | STS |
Forklaring | STS'en kunne ikke validere gyldigheden af det medsendte påståede CPR. |
Løsning | Kontakt NSP support for at få fejlen undersøgt nærmere. |
Tomt OnBehalfOf claim | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = OnBehalfOf claim must not be empty |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder et tomt OnBehalfOf claim. |
Løsning | Fremsend 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 svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = No privileges provided by procuration |
Årsag | Anvender |
Forklaring | Den påståede fuldmagt (OnBehalfOf) findes ikke. |
Løsning |
|
Fejl i validering af OnBehalfOf claim | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = Unable to get procurations |
Årsag | STS |
Forklaring | STS'en kunne ikke validere gyldigheden af den medsendte påståede fuldmagt. |
Løsning | Kontakt NSP support for at få fejlen undersøgt nærmere. |
Ugyldige claims | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = The request was invalid or malformed: Request contains invalid claims. Valid claims are: <validClaims> |
Årsag | Anvender |
Forklaring | Forespørgslen indeholder claims som ikke kan bruges til denne type omveksling. |
Løsning | Fjern claims fra forespørgslen, som ikke findes i listen af gyldige claims (validClaims). |
Validering af audience
Angivelse af audience mangler | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = Audience is missing |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder ikke angivelse af et audience (som det udstedte token kan benyttes til) |
Løsning | Anvendersystemet tilrettes til at medsende audience (dette vil ofte være https://fmk). |
Ukendt audience | |
---|---|
STS svar | faultcode = wst:InvalidRequest
|
Årsag | Anvender eller konfiguration |
Forklaring | Den 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 svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:its faultstring = BST2IDWS assertion has an invalid audience. Actual audience:<audience>, Allowed audience:<allowedAudience> |
Årsag | Anvender eller konfiguration |
Forklaring | Det angivne audience er ikke tilladt for udstederen af det medsendte token |
Løsning | Sørg for at 'AudienceRestriction' på det medsendte token er allowedAudience |
Ukendt audience for BST2SOSI forespørgsel | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:bst2sosi faultstring = BST2SOSI assertion does not have allowed audience. Actual type:<audience>, Allowed type:<allowedAudience> |
Årsag | Anvender |
Forklaring | BST2SOSI omvekslingen kræver en bestemt audience (allowedAudience). |
Løsning | Lav en ny forespørgsel hvor audience på tokenet er allowedAudience. |
Validering af signatur
Ugyldig signatur | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = Unable to validate envelope signature |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder ingen eller en ugyldig xml signatur - dette sker ofte ved omformatering af indeholdet på en signeret besked |
Løsning | Anvendersystemet tilrettes til at signere og/eller undgå omformatering i forbindelse med afsendelse |
Ugyldig token signatur | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = Signature on OIOSAMLAssertion is invalid |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder et bootstrap token med ugyldig xml signatur - dette sker ofte ved omformatering af indeholdet på en signeret besked |
Løsning | Anvendersystemet tilrettes til at signere og/eller undgå omformatering i forbindelse med afsendelse |
Certifikat udløbet | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:* faultstring = Certificate expired or not yet valid |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel er signeret med et udløbet certifikat. |
Løsning | Anvendersystemet 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
|
Årsag | Anvender eller konfiguration |
Forklaring | Det indeholdte token er signeret med et udløbet certifikat. |
Løsning | 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 endnu ikke gyldigt for token signatur | |
---|---|
STS svar | faultcode = wst:InvalidRequest
|
Årsag | Anvender eller konfiguration |
Forklaring | Det indeholdte token er signeret med et certifikat der endnu ikke kan benyttes. |
Løsning | Et af følgende:
|
Certifikat revokeret | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:* faultstring = Certificate revoked |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel er signeret med et revokeret certifikat. |
Løsning | Anvendersystemet skal forny sit certifikat og benytte dette. Endvidere skal NSP konfigureres til at tillade det nye certifikat |
Certifikat revokeret for token signatur | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = En af følgende:
|
Årsag | Anvender eller konfiguration |
Forklaring | Det indeholdte token er signeret med et revokeret certifikat. |
Løsning | Kontakt 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 svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:* faultstring = Authentication failed: Certificate invalid (<errorMessage>) |
Årsag | Ukendt |
Forklaring | Noget gik galt i valideringen af det signerende certifikat. |
Løsning | Kontakt NSP support med henblik på analyse af fejlen. |
Certifikat ikke konfigureret for audience | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:* faultstring = Signing certificate not whitelisted for this audience |
Årsag | Anvender |
Forklaring | Det signerende certifikat er ikke whitelistet for det angivne audience. |
Løsning | Kontakt NSP support med henblik på at få det ønskede certifikat whitelistet. |
Certifikat ikke konfigureret for issuer | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts:* faultstring = Signing certificate not whitelisted for this issuer |
Årsag | Anvender |
Forklaring | Det signerende certifikat er ikke whitelistet for udstederen af ID-kortet. |
Løsning | Kontakt NSP support med henblik på at få det ønskede certifikat whitelistet. |
Ugyldig udsteder | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts faultstring = Authentication failed: certificate issued by invalid party |
Årsag | Anvender |
Forklaring | Det underskrivende certifikat er ikke udstedt i føderationen og kan derfor ikke anvendes til udstedelse af ID-kort. |
Løsning |
|
Certifikat ikke trusted for token signatur | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = The certificate that signed the security token is not trusted |
Årsag | Anvender eller konfiguration |
Forklaring | Det indeholdte token er signeret med et certifikat, som ikke accepteres af STS. Token bør typisk være signeret af Nem-id. |
Løsning | Anvend 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
|
Årsag | STS |
Forklaring | Det 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 svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts faultstring = Authentication failed: MOCES is blacklisted [*] |
Årsag | STS |
Forklaring | Det underskrivende certifikat er blacklisted i STS’en og kan derfor ikke udstede ID-kort. |
Løsning |
|
Ugyldig certifikat type | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts faultstring = Authentication failed: signed with unsupported certificate type |
Årsag | Anvender |
Forklaring | Typen af det underskrivende certifikat er ikke supporteret af STS. STS understøtter typerne: MOCES, VOCES, FOCES, POCES |
Løsning | Benyt et certifikat med et af de understøttede typer. |
Ugyldig certifikat type til signering af ID-kort | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts faultstring = Authentication failed: must be signed with <certType> |
Årsag | Anvender |
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øsning | Signer ID-kortet med et certifikat af typen certType. |
Ugyldig percistence level af MOCES3 certifikat | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts faultstring = Authentication failed: signed with unsupported certificate - persistence level of moces3 certificates must be global |
Årsag | Anvender |
Forklaring | Der er benyttet et MOCES3 certifikat, som ikke har global persistence level, til at signere ID-kortet. |
Løsning | Signer ID-kortet med et MOCES3 certifikat med global persistence level |
Bruger id-kort signeret med VOCES/FOCES certifikat | |
---|---|
STS svar | faultcode = wst:BadRequest faultactor = dk:sosi:sts faultstring = The specified RequestSecurityToken is not understood: ID-Card is a User ID-Card signed with VOCES/FOCES |
Årsag | Anvender |
Forklaring | Bruger ID-kortet er signeret med et VOCES eller FOCES certifikat. STS'en tillader kun Bruger ID-kort signeret med et MOCES certifikat. |
Løsning | Benyt et MOCES certifikat til at signere ID-kortet |
Manglende elementer i signatur | |
---|---|
STS svar | faultcode = wst:AuthenticationBadElements faultactor = dk:sosi:sts:seal faultstring = Insufficient Digest Elements: * |
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder en xml signatur med manglende elementer. |
Løsning | Undersøg om noget er gået galt i forbindelse med signeringen af forespørgslen. |
Validering af token
Token ikke udstedt til borger | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = Token not issued to a citizen |
Årsag | Anvender |
Forklaring | Det indeholdte token er ikke udstedt på baggrund af en borgers certifikat. Kun borger-certifikater kan anvendes |
Løsning | Anvend et token udstedet på baggrund af et borger certifikat (POCES). |
Ugyldigt nameID | |
---|---|
STS svar | faultcode = wst:InvalidRequest
|
Årsag | Ukendt |
Forklaring | Det indeholdte token indeholder et ugyldigt formateret nameID. |
Løsning | Hvis token er udstedt af Nem-id, kontaktes NSP supporten med henblik på analyse af fejlen. |
Token udløbet | |
---|---|
STS svar | faultcode = wst:InvalidRequest
|
Årsag | Oftest anvender |
Forklaring | Det indeholdte token er udløbet. |
Løsning | Hent og benyt et nyt token. |
Token kan ikke dekrypteres | |
---|---|
STS svar | faultcode = wst:InvalidRequest eller wst:RequestFailed
|
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder et token, som er krypteret med en nøgle som ikke er kendt af STS’en |
Løsning | Kan 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
|
Årsag | Anvender |
Forklaring | Den medsendte forespørgsel indeholder en token type, der ikke er gyldig for denne forespørgsel. |
Løsning | Benyt et token med en af de gyldige typer (allowedTypes) |
Ukendt token issuer | |
---|---|
STS svar | faultcode = wst:InvalidRequest eller wst:RequestFailed
|
Årsag | Anvender, STS |
Forklaring | Udstederen (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 svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = Incoming JSON webtoken not scoped for this sts: <scope> |
Årsag | Anvender |
Forklaring | Listen af scopes i det medsendte token indeholder ikke det krævede STS scope for denne type forespørgsel. |
Løsning |
|
Manglende jwt scope konfiguration for audience | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = JWT scope not configured for audience <audience> |
Årsag | STS |
Forklaring | Det 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 svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = Incoming JSON webtoken not scoped for audience (<audience>) |
Årsag | Anvender |
Forklaring | Listen af scopes i det medsendte token indeholder ikke det krævede scope for dette audience. |
Løsning |
|
Manglende certsubdn på jwt token | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = JWT claim missing: certsubdn |
Årsag | Anvender |
Forklaring | Medsendte jwt token mangler feltet "certsubdn" |
Løsning | Udsted et nyt jwt token, hvor feltet "certsubdn" er inkluderet. |
Manglende IT System | |
---|---|
STS svar | faultcode = wst:InvalidRequest
|
Årsag | Anvender |
Forklaring | Feltet "ITSystemName" er påkrævet for denne type forespørgsel. |
Løsning | Lav en ny forespørgsel, hvor "ITSystemName" er specificeret. |
Ugyldig basic privileges | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:bst2sosi faultstring = BST2SOSI assertion contains an invalid basic privilege profile |
Årsag | Anvender |
Forklaring | "privileges" på det medsendte bootstrap token har et ugyldigt format og kunne ikke læses af STS'en. |
Løsning | Fjern "privileges" feltet eller ret det til et gyldigt format. |
Manglende RID eller UUID på bootstrap token | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:bst2sosi faultstring = BST2SOSI assertion must contain one of the attributes: '<ridAttribute>' or '<uuidAttribute>' |
Årsag | Anvender |
Forklaring | For den medsendte token type, kræves enten et RID nummer eller et UUID |
Løsning | Tilføj RID nummer eller UUID til medsendte token |
Manglende UUID på bootstrap token | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:bst2sosi faultstring = BST2SOSI assertion must contain the attribute '<uuidAttribute>' |
Årsag | Anvender |
Forklaring | For den medsendte token type, kræves et UUID |
Løsning | Tilføj UUID til medsendte token |
Manglende token i forespørgsel | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts faultstring = The specified request failed: No assertion element found on request. |
Årsag | Anvender |
Forklaring | Forespørgslen mangler et bootstrap token (assertion) |
Løsning | Undersøg hvorfor forespørgslen er blevet lavet uden et bootstrap token |
Manglende token attribut | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:* faultstring = The request was invalid or malformed: Mandatory '<attributeID>' SAML attribute (<attributeName>) is missing |
Årsag | Anvender |
Forklaring | En påkrævet attribut manger i det medsendte token. |
Løsning | Lav 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
|
Årsag | Anvender |
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:
|
Løsning | Lav en ny forespørgsel hvor assurance level typen er skiftet til den anden type. |
Ugyldig assurance level | |
---|---|
STS svar | faultcode = wst:RequestFailed
|
Årsag | Anvender |
Forklaring | Det medsendte token har en assurance level, der er ugyldig for denne type forespørgsel. |
Løsning | Lav en ny forespørgsel, hvor det medsendte token har en af de foreslåede assurance levels. |
Ugyldig assurance level | |
---|---|
STS svar | faultcode = wst:AssuranceLevel faultactor = dk:sosi:sts:nbo faultstring = Assurance level other than 3 or 4 is not accepted |
Årsag | Anvender |
Forklaring | Det medsendte token har en assurance level, der er ugyldig for denne type forespørgsel. Der accepteres kun assurance level 3 og 4 |
Løsning | Lav en ny forespørgsel, hvor det medsendte token har assurance level 3 eller 4. |
Ugyldig authentication level | |
---|---|
STS svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts faultstring = The specified RequestSecurityToken is not understood: Authentication level not supported (*) |
Årsag | Anvender |
Forklaring | Forespø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øsning | Klienten rettes, så kun understøttede authentication level versioner anvendes. |
Ugyldigt id-kort med authentication level 3 | |
---|---|
STS svar | faultcode = wst:BadRequest faultactor = dk:sosi:sts faultstring = The specified RequestSecurityToken is not understood: ID-Card is not a System ID-Card |
Årsag | Anvender |
Forklaring | Det 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 svar | faultcode = wst:BadRequest faultactor = dk:sosi:sts faultstring = The specified RequestSecurityToken is not understood: ID-Card is not a User ID-Card |
Årsag | Anvender |
Forklaring | Det 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 svar | faultcode = wst:RequestFailed faultactor = dk:sosi:sts:seal faultstring = The specified request failed IDCard version ’*’ not supported. Supported versions are: [1.0.1,1.0] |
Årsag | Anvender |
Forklaring | Forespørgslen indeholder et ID-kort med en version der ikke understøttes af STS (se DGWS for detaljer). |
Løsning | Klienten 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 svar | faultcode = wst:InvalidTimeRange faultactor = dk:sosi:sts faultstring = The requested time range is invalid or unsupported: IDCard have maximum validity of 24 hours + [*] |
Årsag | Anvender |
Forklaring | Forespørgslen anmoder om et ID-kort med gyldighed mere end 24 timer, hvilket ikke understøttes (se DGWS for detaljer). |
Løsning | Klienten 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
|
Årsag | Anvender, STS |
Forklaring | ID-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øsning | Så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:
|
ID-kort for gammelt til denne modtager | |
---|---|
STS svar | faultcode = wst:InvalidTimeRange eller wst:FailedAuthentication
|
Årsag | Anvender |
Forklaring | Ved 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øsning | Forny ID-kortet og få det signeret af STS. |
Ugyldigt nameId | |
---|---|
STS svar | faultcode = wst:BadRequest faultactor = dk:sosi:sts faultstring = The specified RequestSecurityToken is not understood: IDCard nameId must match information from certificate. |
Årsag | Anvender |
Forklaring | nameId på ID-kortet indeholder certifikat informationer, som ikke matcher certifikatet der har signeret ID-kortet |
Løsning |
|
CVR uoverensstemmelse | |
---|---|
STS svar | faultcode = wst:FailedAuthentication faultactor = dk:sosi:sts faultstring = Authentication failed: cvr mismatch |
Årsag | Anvender |
Forklaring | CVR i ID-kortet svarer ikke til CVR i certifikatets subject serial number. |
Løsning |
|
Ugyldigt ID-kort i Identity Token Request | |
---|---|
STS svar | faultcode = wst:InvalidRequest faultactor = dk:sosi:sts:its faultstring = The request was invalid or malformed: identity token service only support user card. |
Årsag | Anvender |
Forklaring | Identity 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. |