Versions Compared

Key

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

...

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 RemovedImage Added

Verificeret forespørgsel

...

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

...

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.STS svarfaultcodefaultactor
faultstring
ÅrsagForklaringLøsning

Validering af rolle/autorisation

...

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.

STS svarfaultcode
faultactor
faultstring
ÅrsagForklaringLøsning

Validering af claims

Autorisation og rolle i samme forespørgsel
Manglende CPR claim
STS svarfaultcode = wst:InvalidRequest
faultactor = dk:sosi:sts:*bst2sosi
faultstring = CPR claim missingThe 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 Den 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).

...

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 =  
ÅrsagForklaringLøsningThe 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).

...

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 =  
faultstring
ÅrsagForklaringLøsning

Validering af token

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
Token ikke udstedt til borger
STS svarfaultcode = wst:
InvalidRequest
AuthenticationBadElements
faultactor = dk:sosi:sts:
its
seal
faultstring =
Token not issued to a citizen
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 Det 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).

...

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
ÅrsagAnvender
  • 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.

...

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 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 på token
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.
ÅrsagAnvender
  • The request was invalid or malformed: ITSystemName is required in request.
ÅrsagAnvender
ForklaringForklaringFeltet "ITSystemName" er påkrævet på det medsendte token, på for denne type forespørgsel.
LøsningLav en ny forespørgsel, hvor "ITSystemName" er specificeret på tokenet.
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 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øsning

Validering af Assurance Level

Undersøg hvorfor forespørgslen er blevet lavet uden et bootstrap token
Manglende token attributUgyldig assurance level type
STS svarfaultcode = wst:RequestFailedInvalidRequest
faultactor = dk:sosi:sts:its*
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 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 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.
STS svarfaultcode
faultactor
faultstring
ÅrsagForklaringLøsning

Validering af ID-kort

Ugyldig authentication level
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]RequestSecurityToken is not understood: Authentication level not supported (*)
ÅrsagAnvender
ForklaringForespørgslen indeholder et ID-kort med en version der ikke understøttes af STS 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 ID-kort authentication level versioner anvendes. Nyere versioner af både Seal.Java og Seal.NET producerer ID-kort med korrekt version.
Ugyldigt
tidsinterval på ID
id-kort med authentication level 3
STS svarfaultcode = wst:
InvalidTimeRange
BadRequest
faultactor = dk:sosi:sts
faultstring = The
requested time range is invalid or unsupported: IDCard have maximum validity of 24 hours + [*]
specified RequestSecurityToken is not understood: ID-Card is not a System ID-Card
ÅrsagAnvender
Forklaring
Forespørgslen anmoder om et
Det medsendte ID-kort
med gyldighed mere end 24 timer, hvilket ikke understøttes (se DGWS for detaljer).
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
LøsningKlienten rettes, så kun ID-kort med gyldighed på 24 timer eller mindre forsøges udstedt.Ugyldigt tidsinterval på ID-kort
STS svarfaultcode = wst:
InvalidTimeRange eller wst:FailedAuthentication
BadRequest
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.
    The specified RequestSecurityToken is not understood: ID-Card is not a User ID-Card
    ÅrsagAnvender
    , STS
    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
    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
    CVR uoverensstemmelse
    ID-kort for gammelt til denne modtager
    STS svarfaultcode = wst:InvalidTimeRange eller wst:FailedAuthenticationRequestFailed
    faultactor = dk:sosi:sts eller dk:sosi:sts:its:seal
    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.The specified request failed IDCard version ’*’ not supported. Supported versions are: [1.0.1,1.0]
    Å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
    Forespø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:
    FailedAuthentication
    InvalidTimeRange
    faultactor = dk:sosi:sts
    faultstring =
    Authentication failed: cvr mismatch
    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.
    CVR 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
    Ugyldig authentication level
    Ugyldigt tidsinterval på ID-kort
    STS svar

    faultcode = wst:

    RequestFailed

    InvalidTimeRange eller wst:FailedAuthentication
    faultactor = dk:sosi

    :sts
    faultstring = The specified RequestSecurityToken is not understood: Authentication level not supported (*)

    :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
    Forklaring
    Forespørgslen indeholder et
    ID-
    kort med et authentication level
    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
    understøttet, dvs. forskelligt fra level 3 eller 4 (se DGWS for detaljer).
    ID-kort for gammelt til denne modtager
    LøsningKlienten rettes, så kun understøttede authentication level versioner anvendes.
    Ugyldigt id-kort med authentication level 3
    STS svar

    faultcode = wst:InvalidTimeRange eller wst

    :BadRequest
    faultactor = dk:sosi:sts
    faultstring = The specified RequestSecurityToken is not understood: ID-Card is not a System ID-Card

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

    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øsningForny ID-kortet og få det signeret af STS.
    Ugyldigt nameIdUgyldigt 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-CardIDCard nameId must match information from certificate.
    ÅrsagAnvender
    ForklaringDet medsendte nameId på 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

    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 uoverensstemmelseBruger id-kort signeret med VOCES/FOCES certifikat
    STS svarfaultcode = wst:BadRequestFailedAuthentication
    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.
    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
    LøsningBenyt et MOCES certifikat til at signere ID-kortet
    Løsning
    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.

    STS svarfaultcode
    faultactor
    faultstring
    ÅrsagForklaringLøsning
    STS svarfaultcode
    faultactor
    faultstring
    ÅrsagForklaring