italia / spid-saml-check

Tool di verifica implementazione SPID SAML
European Union Public License 1.2
71 stars 59 forks source link

Problema Login su Ambiente Demo da Online #158

Closed mazzalin1orangepix closed 3 years ago

mazzalin1orangepix commented 3 years ago

Buongiorno... stiamo implementando lo spid su un sito che abbiamo in gestione.

essendo sotto ambiente PHP Lamp ci siamo quindi appoggiati alla libreria: https://github.com/italia/spid-php-lib

abbiamo quindi realizzato il file metadata ed in prima battuta di sviluppo locale lo abbiamo testato tramite il docker di test: https://github.com/italia/spid-testenv2

successivamente siamo andati "online" mettendo il link nei bottoni di login per l'ambiente demo e facendo la validazione del file metadata. https://demo.spid.gov.it/validator

La guida dice che dobbiamo prima scaricare il metadata dell'ambiente demo e poi registrarlo tramite: https://demo.spid.gov.it/validator#/metadata-sp-download

attualmente abbiamo validato l'url del nostro metadata online e non ci sembra di aver visto messaggi di errore in esso. Schermata 2021-07-12 alle 11 15 20

Provando però il login sull'ambiente online riceviamo come errore: Formato richiesta non corretto. Error: ENOENT: no such file or directory, open '../specs-compliance- ...

Schermata 2021-07-12 alle 11 05 39

abbiamo provato a cercare errori simili visto che non ci é molto chiaro l'errore... sembra come se sul docker di test manchino dei files. Può essere che la registrazione non sia andata a buon fine? eppure l'esito dei test di validazione va a buon fine.

Qualcuno sa spiegarci da cosa dipende questo errore? Purtroppo cercando un po su google non abbiamo trovato esempi di questo errore se non questo altro issue aperto da un altro utente. ( https://github.com/italia/spid-saml-check/issues/31 )

damikael commented 3 years ago

Buongiorno @mazzalin1orangepix , come indicato sulla guida presente alla pagina https://demo.spid.gov.it/, occorre:

  1. Scaricare il metadata IdP dell'ambiente Demo SPID e configurarlo sul proprio Service Provider
  2. Registrare il metadata del proprio Service Provider sull'ambiente Demo SPID tramite l'interfaccia di SPID Validator
  3. Inviare una AuthnRequest dal proprio Service Provider all'IdP dell'ambiente Demo SPID

Quindi, il metadata da Idp dell'ambiente demo va configurato sul proprio Service Provider, mentre il metadata del proprio Service Provider va registrato sull'interfaccia dell'ambiente Demo.

La schermata del Validator allegata non mostra errori nelle sezioni dei test, ma non mostra nemmeno che i test sono stati superati con successo, quindi probabilmente il metadata non viene correttamente rilevato.

mazzalin1orangepix commented 3 years ago

Buonasera, grazie della risposta, in effetti non era valida la compilazione del file. Ora ottengo delle risposte più chiare dai messaggi verdi / rossi di successo fallimento.

Penso che il metadata che produciamo sia al 90% corretto a guardare il validatore... quello che non ci torna son 3 punti in rosso sulle chiavi generare.

Le chiavi le abbiamo fatte generare alla libreia spid lib in automatico. ho quindi preso questi due file ed abbiamo usato il loro contenuto per valorizzare con "sp.key" il campo SignatureValue mentre "sp.crt" in base 64 per il campo X509Certificate.

Questo é quello che abbiamo capito dalla documentazione...

stiamo forse sbagliando altro nell'impostazione del metadata? Sapete per caso dirci come vanno riportare le chiavi dentro il file metadata?

Schermata 2021-07-12 alle 16 42 46

Schermata 2021-07-12 alle 16 43 29

damikael commented 3 years ago

Dagli errori evidenziati, il certificato utilizzato per la firma del metadata non è conforme e la firma stessa del metadata risulta non valida. Per dubbi in merito al corretto utilizzo della libreria spid-php-lib e alla firma del metadata generato, consiglio di aprire una issue sul repository della libreria.