Hopp til hovudinnhald

Teknisk beskriving av sid-attributtet, og bruken av dette i ID-porten og kundeintegrasjonar

Her finn du teknisk beskriving av sid-attributtet, og bruken av dette i ID-porten og kundeintegrasjonar.

Laga: 02. februar 2024 Sist endra: 05. februar 2024

Kva er sid - session index?

Attributtet sid er definert i kapittel 3 i OpenID Connect Front-Channel Logout 1.0 spesifikasjonen. Dette attributtet kan bli returnert i ID-tokenet fra ID-porten. Formålet med attributtet er å kunne unikt identifisere brukeren sin SSO-sesjon ved utlogging. Det er konfigurasjonsstyrt pr. klientregistrering om dette attributtet skal inkluderast eller ikkje (valget "Frontchannel logout krever sesjons-id" i vår sjølvbetjening).

Attributtet er definert i spesifikasjonen på følgande måte:

"The sid (session ID) Claim used in ID Tokens and as a frontchannel_logout_uri parameter has the following definition:

sid - OPTIONAL. Session ID - String identifier for a Session. This represents a Session of a User Agent or device for a logged-in End-User at an RP. Different sid values are used to identify distinct sessions at an OP. The sid value need only be unique in the context of a particular issuer. Its contents are opaque to the RP. Its syntax is the same as an OAuth 2.0 Client Identifier."

Bruk av sid i ID-porten

ID-porten returnerer sid-attributtet i ID-tokenet dersom valget "Frontchannel logout krever sesjons-id" er aktivert for den aktuelle klienten.

I dei tilfella der ein bruker er innlogga til fleire tjenester samtidig, og brukeren trigger utlogging frå den eine tjenesta, vil dei andre tjenestene motta ein utloggingsforespørsel fra ID-porten som inneheld sid-attributtet. Formålet med dette er at kunden skal kunne identifisere den aktuelle sesjonen og invalidere sin korresponerande sesjon i sitt system.

Feil ved generering av sid-verdi i ID-porten

Det har blitt oppdaga ein feil i den underliggande programvaren i ID-porten (Connect2id server) der to brukarinnloggingar (dvs. ID-token) fikk samme sid-verdi. Rotårsaka til feilen skuldast manglande trådsikkerheit i koden som generer den aktuelle sid-verdien, og oppstår ved veldig høg samtidigheit i innloggingane. Det er grunn til å anta at det er ein særs liten andel av innloggingane som har fått feil sid-verdi.

I ID-porten er sid-attributtet er kun ein ekstern identifikator for brukarsesjonen. Internt i ID-porten blir andre identifikatorar brukt. Dette betyr at feilen knytta til sid ikkje har skapt sesjonssamanblanding i ID-porten. "Single sign-on"-funksjonaliteten har ikkje vore påvirka av feilen. ID-porten har alltid returnert riktig sub-verdi og fødselsnummer i utstedte ID-token.

Feilen er skildra av leverandøren av programvaren her: https://connect2id.com/blog#15-1-1

Feilen blei rapportert til Digdir 26. januar. Den har vore tilstades i ID-porten sidan etableringa av den nye tjenesta ( https://idporten.no ) sommaren 2023, og fram til den blei retta tysdag 30. januar kl. 10:40.

Korleis er klienttjenester berørt av feilen?

Feilen vil mest truleg ha medført at utlogging ikkje har blitt riktig for dei berørte brukarane. Dette kan gjelde både utlogging frå den sentrale brukarsesjonen i ID-porten, samt dei lokale brukersesjonane på klientsida. Brukarsesjonar sentralt i ID-porten vil (uavhengig av feilen) få timeout etter 30 minuttar inaktivitet, og har ei maks-levetid på 2 timar.

I ein kunde sin implementasjon av integrasjonen mot ID-porten har kunden brukt det returnerte sid-attributtet som (primær) identifikator for brukersesjonen lokalt på si side. Dette har medført at for to brukarar som har fått samme sid-verdi så vil den siste brukaren si innlogging overskrive sesjonsdataene for den første brukaren, og begge vi da få returnert siste brukar sine data.