Closed claudiopizzillo closed 1 year ago
Salve Claudio, come da questa issue https://github.com/italia/spid-testenv2/issues/341 l'attributo ProviderName non è ammesso nel messaggio di Request. Ad ogni modo cosa ti interessa avere all'interno degli SpidEvents come informazione? Il nome dell'identityProvider (e.g. Poste, Tim, ecc...) o del service provider (la tua webapp in fase di integrazione)? Nel primo caso purtroppo a quel livello di Spid Events non è presente questa informazione, nel secondo caso invece puoi fare riferimento all'EntityId come identificativo univoco del SP.
Inoltre ti invito, se stai usando la libreria dalla versione 2.0.0 in poi, ad utilizzare, per scopi di Logging l'apposito LogHandler come specificato sul README
Salve e grazie per la pronta risposta.
Vovelo leggere il nome dell'identityProvider (mantenendo lo stesso schema di logging della precedente webapp) .
Non ho provato il LogHandler (anche se ho implementato la classe come da esempio per futuri usi): hai un esempio per l'estrazione dei dati dalle request e le response? Grazie.
Purtroppo il nome dell'IdP non è disponibile a quel livello. Le informazioni possono essere estratte dalle request e dalle response serializzandole con XmlSerializer all'interno dei tipi corrispondenti:
Come posso discernere se la request è una AuthnRequestType o una LogoutRequestType? Da SpidEvent è fattibile ma qui ho la SAMLrequest grezza, Url, Headers ecc...
I metodi del LogHandler sono pensati per effettuare esclusivamente persistenza delle request grezze. Se occorre fare inspection degli oggetti si possono continuare ad usare gli SpidEvents
Salve,
nei custom SPID events sto ceracndo di loggare il nome del ProviderName come da codice
`
private static XmlSerializer loginRequestSerializer = new(typeof(AuthnRequestType)); private static XmlSerializer logoutRequestSerializer = new(typeof(LogoutRequestType)); public override async Task RedirectToIdentityProvider(RedirectContext context) { using MemoryStream stream = new(); string AuthnReq_ID = string.Empty; string AuthnReq_IssueInstant = string.Empty; string Name = string.Empty;
`
Ma risulta sempre vuoto.
Non dovrebbe essere popolato?
Grazie per la ottima libreria, mi ha permsesso di migrare da una vecchia implementazione .NET classica in maniera veloce.