Open 154ngroves opened 5 years ago
Esiste un modo per reperire la request in modo da effettuare questi controlli?
Purtroppo no in maniera nativa. Il caching della AuthRequest
e' un meccanismo che deve essere costruito e implementato in base alle caratteristiche dell'ambiente.
Il controllo sulla validità della firma è a carico del docker?
Si
Ho inoltre riscontrato dei problemi con alcuni test, nel caso di attributi senza NameFormat il docker dovrebbe comunque consentirmi l'accesso, quello che succede invece è che l'accesso mi viene negato.
Se non ricordo male, questo e' un problema noto. Il mio collega @AntonioGiovanniSchiavone puo' darvi maggiori dettagli a riguardo.
Variando inoltre l'attributo IssueInstant in millisecondi, il docker dovrebbe garantirmi comunque l'accesso, ma questo mi viene impedito.
Non e' chiaro il problema. Un esempio?
Ho effettuato dei test con il seguente idp di test: https://github.com/italia/spid-saml-check Un caso di test prevede il tentativo di inviare una response con un IssueInstant comprendente anche i millisecondi. Il risultato atteso del test era un "OK", quindi il docker avrebbe dovuto comunque consentire l'accesso. Il test è fallito in quanto il docker ha impedito l'accesso al sistema in questa casistica.
Buongiorno @psmiraglia, avrei bisogno di sapere se il controllo sull'uguaglianza dell'attributo InResponseTo tra Request e Response viene effettuato automaticamente dal docker. Se così non fosse, per effettuare questa tipologia di validazione è opportuno creare un nuovo controllo all'interno del docker?
Buongiorno @psmiraglia, avrei bisogno di sapere se il controllo sull'uguaglianza dell'attributo InResponseTo tra Request e Response viene effettuato automaticamente dal docker.
No. Questa è una questione aperta, tutt'ora in corso di discussione.
Se così non fosse, per effettuare questa tipologia di validazione è opportuno creare un nuovo controllo all'interno del docker?
Si, che poi sia all'interno del container o da qualche altra parte dell'architettura è una vostra scelta.
Buonasera, ho cercato all'interno del docker il meccanismo con cui vengono impostati i valori all'interno della request (Es. ID, IssueInstant) ma ho trovato solo il codice per la generazione di un template contenente dei valori "placeholder". @psmiraglia potresti cortesemente indicarmi dove e come avviene questo meccanismo di compilazione di ID e IssueInstant della request?
potresti cortesemente indicarmi dove e come avviene questo meccanismo di compilazione di ID e IssueInstant della request?
Le AuthnRequest
vengono generate a runtime da Shibboleth a seconda del SessionInitiator
che viene invocato (es. /iam/Login1
, /iam/Login27
).
I SessionInitiator
non sono altro che dei template di AuthnRequest
che vengono definiti nel file /etc/shibboleth/shibboleth2.xml
. Questo, viene generato durante il bootstrap del container (vedi How to define AttributeConsumingService elements).
Per vedere il prodotto finale, potete utilizzare il comando
$ docker exec -ti <CONTAINER ID> cat /etc/shibboleth/shibboleth2.xml
Ho capito, grazie. Sarei interessato anche a trovare un modo per intercettare l'AuthnRequest per effettuare le validazioni. Se per esempio dovessi validare l'attributo InResponseTo presente nella Response, avrei bisogno di confrontarlo con l'ID presente nella AuthnRequest. Esiste un modo per recuperare l'AuthnRequest generata a runtime e inviata da shibboleth?
Esiste un modo per recuperare l'AuthnRequest generata a runtime e inviata da shibboleth?
Shibboleth non offre questa feature.
Per quanto possano sembrare attinenti, tengo a precisare che questo non e' uno spazio per richiedere assistenza su SPID, Shibboleth e sull'uso di Docker. Per SPID potete far riferimento a spid.tech@agid.gov.it mentre per Shibboleth e Docker, si faccia riferimento ai canali ufficiali.
Ti ringrazio per le indicazioni ma quello che volevo capire è come recuperare il valore di ID della Request per confrontarlo con l'attributo InResponseTo della Response e se utilizzando questo docker è possibile farlo. Attualmente utilizziamo un'applicazione nodejs per la validazione della response.
Buongiorno @psmiraglia Per quanto riguarda la seguente richiesta, riesci a fornirmi indicazioni al riguardo?
Ho effettuato dei test con il seguente idp di test: https://github.com/italia/spid-saml-check Un caso di test prevede il tentativo di inviare una response con un IssueInstant comprendente anche i millisecondi. Il risultato atteso del test era un "OK", quindi il docker avrebbe dovuto comunque consentire l'accesso. Il test è fallito in quanto il docker ha impedito l'accesso al sistema in questa casistica.
Grazie.
Buongiorno, sto utilizzando la versione 1.1.0 di spid-shibboleth-proxy-docker e devo effettuare dei controlli di coerenza nell'applicazione backend (https://github.com/italia/spid-shibboleth-proxy-docker/issues/16): in particolare devo controllare che alcuni elementi presenti nella request abbiano lo stesso valore dei corrispettivi presenti nella response. Esiste un modo per reperire la request in modo da effettuare questi controlli? Il controllo sulla validità della firma è a carico del docker? Ho inoltre riscontrato dei problemi con alcuni test, nel caso di attributi senza NameFormat il docker dovrebbe comunque consentirmi l'accesso, quello che succede invece è che l'accesso mi viene negato. Variando inoltre l'attributo IssueInstant in millisecondi, il docker dovrebbe garantirmi comunque l'accesso, ma questo mi viene impedito. Grazie.