Closed gpannullo closed 3 years ago
Ciao, per modificare il tag è necessario usere il seguente metodo
$ext_elem_type = $ext_dom->createElement('spid:Public');
da inserire al posto di quello nativo da te indicato alla riga 724.
Chiedo conferma però a @damikael su questa cosa, essendo la creazione tag e del namespace Public
<spid:Public xmlns:spid="https://spid.gov.it/saml-extensions"/>
già così da versioni precedenti.
Anche io ho una installazione in attesa di verifica ed ho provveduto ad aggiornare secondo quanto da te indicato.
Ad ogni modo l'avviso SPID 29 v.3 a pagina 4 specifica che il tag debba essere vuoto.
Confermo che fatta la modifica suggerita tutto ha funzionato alla grande, sarebbe bene fare una patch Un ringraziamento a @ac044
Buonasera @gpannullo , @ac044 Il namespace xmlns:spid="https://spid.gov.it/saml-extensions" deve però essere comunque presente. Da esempio su Avviso SPID n.29 viene riportato sull'elemento EntityDescriptor. In SAML il namespace può essere presente anche direttamente sull'elemento che lo riferisce, per questo era stato creato in quel modo. Se il namespace non è presente il metadata avrà problemi nella validazione su xsd. Per essere completamente aderenti all'Avviso SPID n.29 serve trovare il modo per specificare il namespace su EntityDescriptor.
Ciao @damikael, ti riporto nuovamente il mio metadati generato che viene validato dal validator di agid
<md:ContactPerson contactType="other">
<md:Extensions>
<spid:IPACode xmlns:spid="https://spid.gov.it/saml-extensions">c_a123</spid:IPACode>
<spid:Public/>
</md:Extensions>
<md:Company>xxxxxxxxxxxxxxxxxxxxxx</md:Company>
<md:EmailAddress>xxxxxxxxxxxxxxxxxxxx</md:EmailAddress>
<md:TelephoneNumber>xxxxxxxxxx</md:TelephoneNumber>
</md:ContactPerson>
Non sono skillatissimo su xml e saml e similari, ma un po a tentativi, così è andato a voi le considerazioni. Vi mando la modifica eseguita:
722: if($details['spid']) {
723: if($details['spid.codeType']=='IPACode') {
724: $ext_elem_code = $ext_dom->createElementNS('https://spid.gov.it/saml-extensions', 'spid:IPACode', details['spid.codeValue']);
725: //$ext_elem_type = $ext_dom->createElementNS('https://spid.gov.it/saml-extensions', 'spid:Public', '');
726: $ext_elem_type = $ext_dom->createElement('spid:Public');
727: $eexts[] = new \SAML2\XML\Chunk($ext_elem_code);
728: $eexts[] = new \SAML2\XML\Chunk($ext_elem_type);
729: }
Spero di aver dato il mio piccolo contributo Grazie a tutti e spero di aver risolto
Buonasera @gpannullo , @ac044 Il namespace xmlns:spid="https://spid.gov.it/saml-extensions" deve però essere comunque presente. Da esempio su Avviso SPID n.29 viene riportato sull'elemento EntityDescriptor. In SAML il namespace può essere presente anche direttamente sull'elemento che lo riferisce, per questo era stato creato in quel modo. Se il namespace non è presente il metadata avrà problemi nella validazione su xsd. Per essere completamente aderenti all'Avviso SPID n.29 serve trovare il modo per specificare il namespace su EntityDescriptor.
Completamente d'accordo, la stranezza è quanto segnalato da @gpanullo in merito al mancato superamento della verifica tecnica per questo motivo. Con la notazione che ho suggerito il namespace sull'EntityDescriptor è comunque generato. Su versioni precedenti della libreria, per SP privato ho dovuto manualmente intervenire sul metodo getEntityDescriptor() per inserirlo invece.
Buongiorno a tutti, con il metadati così come vi ho mostrato mi hanno validato la richiesta e quindi sono online. Sono 2 mesi che lotto per avere questa validazione alla fine volevano il campo senza nulla e gliel'ho dato... Per i PUBLIC ma credo anche per i PRIVATE esiste questo "problema", io proporrei la modifica del codice così come ho documentato qualche post prima, se volete vi preparo una pull request
Grazie nuovamente a tutti per la disponibilità ed il tempo dedicatomi
Grazie @gpannullo ma la modifica non sarebbe corretta. Il metadata è corretto sia se la definizione del namespace è sull'elemento root, sia se è sull'elemento stesso (Public). Eliminando la definizione del namespace dall'elemento Public, continua a funzionare perchè, avendolo inserito precedentemente su IPACode, è stato riportato anche sull'elemento root. Tuttavia, ciò non è corretto in senso stretto. È invece corretto che il namespace venga specificato anche nel caso in cui IPAcode non sia presente.
Salve a tutti ho un problema con la validazione del mio metadata, di seguito ve ne riporto un estratto: lo vorrebbe così cioè senza attributo, come faccio? Ho provato a modificare il file in setup/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLBuilder.php alla riga 724 e togliere l'attributo ma mi da errore, come posso risovere?
<md:ContactPerson contactType="other">
<md:Extensions>
<spid:IPACode xmlns:spid="https://spid.gov.it/saml-extensions">c_a123</spid:IPACode>
<spid:Public xmlns:spid="https://spid.gov.it/saml-extensions"/>
</md:Extensions>
<md:Company>xxxxxxxxxxxxxxxxxxxxxx</md:Company>
<md:EmailAddress>xxxxxxxxxxxxxxxxxxxx</md:EmailAddress>
<md:TelephoneNumber>xxxxxxxxxx</md:TelephoneNumber>
</md:ContactPerson>
SPID Tech mi da errore suGrazie a tutti Giuseppe