Purpose:
This document describes the federation's generic error page for use with the errorURL
parameter in SAML metadata. It offers a fallback mechanism for failed logins and helps SPs and IdPs troubleshoot authentication and authorization issues.
Note: This implementation is meant as a reference or backup. Identity Providers are encouraged to implement their own branded error page to provide clearer, institution-specific guidance to users.
Table of Contents
Overview
The error page:
Shows localized error messages (Swedish by default, English toggle)
Accepts context parameters from SPs to provide technical detail
Presents users with understandable instructions
Offers an expandable technical diagnostics section
Complies with the REFEDS ErrorURL v1 specification
Sending personally identifiable information in the parameters is not allowed.
Implementations
The generic errorURL handler is available for Skolfederation production and test environments. Find the federation specific errorURL implementations below.
Federation | errorURL (for including in IdPSSODescriptor errorURL attribute) |
---|---|
Skolfederation production environment | https://fed.skolfederation.se/prod/error/error.html?code=ERRORURL_CODE&ts=ERRORURL_TS&rp=ERRORURL_RP&tid=ERRORURL_TID&ctx=ERRORURL_CTX |
Skolfederation test environment | https://fed.skolfederation.se/trial/error/error.html?code=ERRORURL_CODE&ts=ERRORURL_TS&rp=ERRORURL_RP&tid=ERRORURL_TID&ctx=ERRORURL_CTX |
URL Format
https://<federation-operator>/error.html?code=...&ts=...&ctx=...&rp=...
All parameters should be URL-encoded.
Parameter | Required | Description |
---|---|---|
code | Yes | Error code (see below) |
ts | Optional | Unix epoch timestamp |
ctx | Optional | Context-specific message for diagnostics |
rp | Optional | SP entityID (displayed in diagnostics) |
tid | Optional | Transaction or session identifiers |
Language and Localization
The interface defaults to Swedish
A button allows toggling to English
Parameter content (e.g.
ctx
) is shown verbatim
Error Codes
Code | Description | Example Cause |
IDENTIFICATION_FAILURE | Required user attributes are missing | Missing mail or givenName |
AUTHENTICATION_FAILURE | Authentication strength did not meet SP's requirements | Missing 2FA |
AUTHORIZATION_FAILURE | User is not authorized to access the service | Missing role or affiliation |
OTHER_ERROR | Other technical or session-related error | Timeout or metadata issues |
UNKNOWN | Code was missing or invalid | Fallback scenario |
ctx
Parameter (Contextual Information)
According to section 2.3.4 of the REFEDS specification:
IDENTIFICATION_FAILURE
: List of missing attributes or entity category URIsAUTHENTICATION_FAILURE
: List of required authentication context/classref valuesAUTHORIZATION_FAILURE
: Short policy description of why access was deniedOTHER_ERROR
: Brief technical description useful for troubleshooting
This value is shown beneath the main message when present.
Expandable Technical Diagnostics
An expandable section shows:
All received URL parameters
If
ts
is present:Raw epoch format (e.g.
1717580800
)ISO 8601 UTC timestamp (e.g.
2024-06-05T08:26:40.000Z
)
Copy-to-clipboard support
This section is meant for IT support or helpdesk use.
SP Implementation Guidelines
errorURL
value from its metadata, as described above, and provide a link to the decorated URL.- Always provide a meaningful error page at your service provider implementation first hand.
Always supply mandatory
code
parameter. All other parameters are optional, but strongly recommended when applicable.- Replace the placeholders in the errorURL parameters (
ERRORURL_CODE
,ERRORURL_TS
, and so on) with actual values. Sending user-identifying data in any parameters is not allowed.
Provide fallback helpdesk contact or guidance to users
IdP Implementation Guidelines
Include the corresponding federation value for errorURL
in the IDPSSODescriptor
to make the generic errorURL available for usage by Service Providers.
Metadata example: Skolfederation production environment
<IDPSSODescriptor ... errorURL=”https://fed.skolfederation.se/prod/error/error.html?code=ERRORURL_CODE&ts=ERRORURL_TS&rp=ERRORURL_RP&tid=ERRORURL_TID&ctx=ERRORURL_CTX”>
Use this page as a fallback only (e.g. while setting up or if a local errorURL cannot be set up for some reason)
Monitor and log the
ctx
,rp
, andts
parameters for issue resolution
Example
Output:
Main message: "Required attributes to identify or personalize your session are missing."
Context: "Missing attributes: eduPersonPrincipalName"
Technical section:
code = IDENTIFICATION_FAILURE
ts = 1717580800 (2024-06-05T08:26:40.000Z)
ctx = eduPersonPrincipalName
rp = https://sp.example.se
Add Comment