Stando alle regole tecniche, un SP dovrebbe verificare che:
SubjectConfirmationData riportante gli attributi:
• Recipient riportante l’AssertionConsumerServiceURL relativa al servizio
per cui è stata emessa l’asserzione e l’attributo
• NotOnOrAfter che limita la finestra di tempo durante la quale
l’asserzione può essere propagata.
• InResponseTo, il cui valore deve fare riferimento all’ID della
richiesta;
Nel caso di InResponseTo qual è la linea guida? Tenere una lista di tutte le richieste effettuate nel DB della app? in https://github.com/italia/spid-simplesamlphp dove viene effettuata la verifica? (non conosco molto il php ma se almeno poteste indicarmi il punto nel codice dove vengono effettuate queste verifiche vi sarei grato)
if ($scd->InResponseTo !== null && $response->getInResponseTo() !== null &&
$scd->InResponseTo !== $response->getInResponseTo()
) {
$lastError = 'InResponseTo in SubjectConfirmationData does not match the Response. Response has '.
var_export($response->getInResponseTo(), true).
', SubjectConfirmationData has '.var_export($scd->InResponseTo, true).'.';
continue;
}