Versions Compared

Key

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

...

Vid federerad inloggning med SAML så finns en konstruktion funktion för att möjliggöra för tjänster att hänvisa användare som har fatala brister i sin inloggning hindrande inloggningsproblem tillbaka till hjälpsidor hos användarens inloggningstjänst. Identitetsutfärdare kan lägga in en särskild uppgift om "errorURL" i sin metadata med en länk till organisationens hjälpsidor. Tidigare kunde organisationen bakom inloggningstjänsten endast ge ett generellt felmeddelande som ska täcka alla olika typer av fel via errorURL men nu finns en mer avancerad modell där en tjänst kan informera organisationen om vilken typ av fel det är och därmed kan de ge bättre information till användaren om hur man löser problemet.

Utökad hantering av errorURL

...

  • IDENTIFICATION_FAILURE - Attribut som behövs för att identifiera användaren eller för att kunna personanpassa tjänsten saknas, exempelvis unika identifierare, namn eller e-post
  • AUTHENTICATION_FAILURE - Kvalitén på autentiseringen uppfyller inte kraven som tjänsten har, exempelvis krav på tvåfaktorsautentisering
  • AUTHORIZATION_FAILURE - Användaren saknar behörigheter i tjänsten, och användaren förväntas kunna åtgärda detta själv eller genom kommunikation med sin identetsutfärdareidentitetsutfärdare, exempelvis för låg tillitsnivå (Assurance Level), saknad association till identitetsutfärdaren (affiliation) eller saknade entitlements (roller i tjänsten som överförs från identitetsutfärdaren vid inloggning)
  • OTHER_ERROR - Annat fel som användaren förväntas kunna åtgärda själv eller med hjälp av sin identitetsutfärdare

...

På denna adress kan identitetsutfärdaren beskriva hur användare som får ett fel av denna kategori bör agera för att lösa just den typen av problem.

Förutom För att möjliggöra ännu mer tydligare information till användaren finns förutom ERRORURL_CODE så finns även dessa strängar som tjänsten kan ge lämpliga värden:

  • ERRORURL_TS - tid då felet inträffade (unix time eller sekunder sedan 1970-01-01)

  • ERRORURL_RP - entityID för tjänsten

  • ERRORURL_TID - ett transaktionsid en transaktionsidentifierare i tjänsten (för användning i kommunikation i tjänsten om det uppkomna felet, för den specifika användaren)

  • ERRORURL_CTX - mer specificerad kontext för felet (t.ex. vilka attribut som saknas, vilken behörighet som saknas eller något annat som underlättar felsökandet för eventuell support hos identitetsutgivutfärdaren)

...

Där kan då identitetsutfärdaren beskriva för användaren hur den kan bekräfta sin identitet, exempelvis med besöksadress till en helpdesk eller hänvisning till online-identifiering av användarekonton hos identitetsutfärdaren.

...

denne löser det uppkomna problemet, t.ex. bekräfta sin identitet för att uppnå tillräcklig nivå inkl. detaljerad information om hur användare gör det.

Aktivera stöd för errorURL i en identitetsutfärdare (IdP)

Sätta upp eget stöd för errorURL

SWAMID har byggt en exempelimplementation av den utökade hanteringen av errorURL. Denna finns implementerad utvecklad i PHP, JSP, .NET Core samt statiska HTML-sidor. Implementationen är fri att använda och modifiera efter identitetsutfärdares egna behov.

Exempelimplementatonen återfinns på https://github.com/SUNET/swamid-errorurl.

En statisk sida

Vid utelämnande av strängen ERRORURL_CODE i en errorURL så finns ingen sträng att ersätta för tjänster. På så vis hänvisas användare vid alla kategorier av fel till samma sida.

...

Detta kan vara det enda alternativet för tjänsteleverantörer som inte kan välja namn på webbsidor.

Fem statiska sidor

Då det finns fyra felkategorier så räcker det med fem statiska webbsidor för att tillhandahålla information för de fyra felkategorierna. Den femte sidan är då en omodifierad errorURL där tjänsten inte bytt ut strängen ERRORURL_CODE mot någon felkategori, och bör innehålla information om alla kategorier av fel eller länkar till respektive felsida.

...

https://saml-error.example.com/ERRORURL_CODE.html

En dynamisk sida

En dynamisk sida har möjlighet att avgöra vilken tjänst som efterfrågades och vilken kontext som skickades med. Det möjliggör också att ytterligare information som kan underlätta vid felsökning hos identitetsutfärdaren finns med i en eventuell supportförfrågan till identitetsutfärdaren från användaren.

...

https://saml-error.example.com/?errorurl_code=ERRORURL_CODE&errorurl_ts=ERRORURL_TS&errorurl_rp=ERRORURL_RP&errorurl_tid=ERRORURL_TID&errorurl_ctx=ERRORURL_CTX

...

Använda SWAMIDs centrala stöd för errorURL

Om en identitetsutfärdare inte har möjlighet till en egen errorURL så kan federationen tillhandahålla en central tjänst som flera identitetsutfärdare kan använda som errorURL. Möjlighet till egen anpassning för identitetsutfärdare blir då mindre.

...

organisationens identitetsutfärdare blir obefintlig.

Arbete pågår inom SWAMID att se till att samtliga identitetsutfärdare har en definierad errorURL i sin metadata. För att underlätta övergången så finns en central tjänst som identitetsutfärdare som inte har någon egen errorURL kan använda.

Informationen i den centrala tjänsten är generell och ingen möjlighet till egen anpassning finns. Det enda som skiljer mellan olika identitetsutfärdares errorURL i den centrala tjänsten är att namn på identitetsutfärdare och e-postadress för supportkontakt som hämtas ur identitetsutfärdarens metadata.

SWAMIDs centrala errorURL går att testa på https://error.swamid.se/test/. Där finns även en länk till aktuell errorURL för respektive IdP i SWAMID. IdP:er som inte har någon egen errorURL har där en länk till den centrala errorURL:en, anpassad för den specifika identitetstutfärdaren.

Aktivera stöd för errorURL i en tjänst (SP)

För att tjänster ska kunna utnyttja errorURL:en för användares identitetsutfärdare behöver detta läsas ut ur identitetsutfärdarens metadata. Detta hanteras olika i olika SAML Service Providers.

...

Försök beskriva felet så utförligt som möjligt ur tjänstens synvinkel för att hjälpa användaren att åtgärda det.

...

Arbete pågår inom

SWAMID

...

Informationen i den centrala tjänsten är generell och ingen möjlighet till egen anpassning finns. Det enda som skiljer mellan olika identitetsutfärdares errorURL i den centrala tjänsten är att namn på identitetsutfärdare och e-postadress för supportkontakt som hämtas ur identitetsutfärdarens metadata.

SWAMIDs centrala errorURL går att testa på https://error.swamid.se/test/. Där finns även en länk till aktuell errorURL för respektive IdP i SWAMID. IdP:er som inte har någon egen errorURL har där en länk till den centrala errorURL:en, anpassad för den specifika identitetstutfärdaren.

...

-specifik användning av ERRORURL_CTX

För att ytterligare förbättra möjligheten till relevant information till användare vid olika fel så används en konvension kring ERRORURL_CTX i SWAMID. Tjänster rekommenderas att lägga till dessa kontext till eventuell annan ERRORURL_CTX vid respektive fel, och identitetsutfärdare rekommenderas att hantera dessa speciellt:

Felkategori och specifikt fel

ERRORURL_CTX

Rekommenderad instruktion till användaren på errorURL:en

AUTHORIZATION_FAILURE
Krav på SWAMID AL1 uppfylls ej

http://www.swamid.se/policy/assurance/al1Uppmana användaren att kontakta identitetsutfärdarens support och upplysa om att SWAMID AL1 inte skickas till tjänsten
AUTHORIZATION_FAILURE
Krav på SWAMID AL2 uppfylls ej
http://www.swamid.se/policy/assurance/al2Beskriv hur användaren kan bekräfta sin identitet hos identitetsutfärdaren
AUTHORIZATION_FAILURE
Krav på SWAMID AL3 uppfylls ej
http://www.swamid.se/policy/assurance/al3Beskriv hur användaren kan verifiera sin identitet hos identitetsutfärdaren och i samband med detta även få tillgång till tvåfaktorsautentisering

Dessa komplement är implementerade i exempelimplementationen och i den centrala errorURL-tjänsten i SWAMID.