spid-laravel
spid-laravel copied to clipboard
Registro delle transazioni
Ciao ragazzi,
Leggendo la sezione Log per i Service Providers sembra che sia necessario mantenere un log delle Richieste e Risposte delle transazioni nella SAML SPID.
https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/log.html#service-provider
Non ho trovato niente di disponibile nella libreria per prendere queste informazioni. Ho visto qualcosa che si potrebbe ottenere dalla sessione, ma decisamente troppe poche informazioni.
Dando un occhio alla libreria della SAML, ho visto che è possibile ottenere richiesteXML e risposteXML, che sembra possa essere utile a questa fine. Siccome la nostra piattaforma è in produzione al momento, sto guardando ad una soluzione.
Se c'è interesse potrei fare una PR. Ho già speso qualche ora vedendo come funziona la libreria, al momento mi sembra che la soluzione più semplice sia quella di passare queste informazioni aggiuntive negli eventi login
e logout
e magari aggiungere un evento prima del metodo doLogin
, per prendere anche l'xml della richiesta.
Che ne pensate? Mi date due dritte?
Grazie mille, Ivan
Un aggiornamento veloce veloce. Alla fine ho implementato un LoggerEvent
che restituisce informazioni riguardati i log mano a mano che richieste e risposte arrivano con il riferimento alla lastRequestId
così possono essere salvate tutte sulla stessa riga del database.
Per ora nel logger sono incluse le seguenti informazioni, penso che siano sufficienti. Error è il messaggio delle eccezioni nelle varie parti del codice.
protected $requestId;
protected $requestIssueIstant;
protected $requestXML;
protected $responseId;
protected $responseXML;
protected $responseIssueInstant;
protected $assertionId;
protected $assertionSubject;
protected $assertionSubjectNameQualifier;
protected $error;
Domani mando una PR così magari possiamo iniziare la discussione con un po' di codice sotto.
Eccola 🤞🥳