Vid federerad inloggning med SAML så finns en konstruktion för att möjliggöra för tjänster att hänvisa användare som har fatala brister i sin inloggning tillbaka till hjälpsidor hos användarens inloggningstjänst. Identitetsutfärdare kan lägga in en "errorURL" i sin metadata med en länk till organisationens hjälpsidor.
Under 2020 så utökades errorURL:en med ett tillägg som möjliggör för tjänster att hänvisa användare till olika sidor beroende på kategori av fel som uppstått vid inloggning, SAML V2.0 Metadata Deployment Profile for errorURL Version 1.0.
Felen som omfattas av errorURL-hanteringen är endast de fel som användaren förväntas kunna lösa själv eller med hjälp av sin identitetsutfärdare. De olika felkatagorierna är:
- 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 kräver, 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ärdare, exempelvis tillitsnivå (Assurance Level), anknytning (affiliation) och entitlements
- OTHER_ERROR - Annat fel som användaren förväntas kunna lösa med eller utan hjälp av sin identitetsutfärdare
Vid användning av tillägget till errorURL så konstrueras URL:en med ett antal specifika strängar som tjänster kan byta ut till olika värden beroende på fel som uppstår vid inloggning. Den viktigaste av dessa är strängen "ERRORURL_CODE" som byts ut mot "IDENTIFICATION_FAILURE", "AUTHENTICATION_FAILURE" eller någon av de andra feltyperna.
En errorURL för en identitetsutfärdare skulle exempelvis kunna vara
https://idp.example.edu/error/ERRORURL_CODE.html
Vid fel i kategorin IDENTIFICATION_FAILURE skulle då länken som tjänsten ger till användaren bli
https://idp.example.edu/error/IDENTIFICATION_FAILURE.html
och där kan då identitetsutfärdaren beskriva hur användare som får ett fel av denna kategori bör agera för att lösa problemet.
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
ERRORURL_RP - entityID för tjänsten
ERRORURL_TID - ett transaktionsid i tjänsten
ERRORURL_CTX - kontext för felet