Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Registro delle transazioni #51

Open
pokono opened this issue Oct 26, 2020 · 2 comments
Open

Registro delle transazioni #51

pokono opened this issue Oct 26, 2020 · 2 comments

Comments

@pokono
Copy link

pokono commented Oct 26, 2020

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

@pokono
Copy link
Author

pokono commented Oct 26, 2020

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.

pokono added a commit to pokono/spid-laravel that referenced this issue Oct 27, 2020
Added LoggerEvent and handling.
@pokono
Copy link
Author

pokono commented Oct 27, 2020

Eccola 🤞🥳

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant