Relaystate

Om een sessie-gerelateerde parameter doorgeven aan de Identity Provider om deze ongewijzigd terug te krijgen na de authenticatie

De Service Provider kan (optioneel) een “RelayState” parameter meesturen om bijvoorbeeld een referentie naar de sessie van de gebruiker in te bewaren. De ACM IDP zal deze “RelayState” dan ongewijzigd terugbezorgen aan de Service Provider in de SAML Response.

Deze RelayState mag maximaal 80 bytes groot zijn (conform de standaard). De Service Provider wordt geacht om te zorgen voor de integriteit hiervan. De RelayState wordt immers blootgesteld aan manipulaties (tampering) door derden. Gezien de beperkte grootte is het toevoegen van een signature aan dit veld wellicht geen optie. Op welke manier de Service Provider de integriteit van de RelayState dan wel kan garanderen, is vrij te kiezen (maar wel de verantwoordelijkheid van de Service Provider).

Enkele suggesties van methoden die de integriteit van de RelayState kunnen helpen garanderen:

  • het toevoegen van een checksum
  • als RelayState enkel een geëncrypteerde waarde meesturen, waarbij enkel de Service Provider dit kan decrypteren. Eventueel in combinatie met de encryptie van een cookie in de browser.
  • werken met random referentie, waarbij de Service Provider dit linkt aan sessie-informatie (via een key-value-store)