italia / spid-regole-tecniche

Regole tecniche SPID
https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/
Creative Commons Zero v1.0 Universal
24 stars 26 forks source link

Presenza di whitespace negli elementi XML #46

Open mauromol opened 3 years ago

mauromol commented 3 years ago

La specifica SAML, documento core, nella sezione 1.3.1 recita:

Unless otherwise noted in this specification or particular profiles, all elements in SAML documents that have the XML Schema xs:string type, or a type derived from that, MUST be compared using an exact binary comparison. In particular, SAML implementations and deployments MUST NOT depend on case-insensitive string comparisons, normalization or trimming of whitespace, or conversion of locale-specific.

Tuttavia in numerosi esempi delle regole tecniche di SPID, ma anche nelle risposte generate dal validatore, vedo cose di questo tipo:

<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
    http://localhost:8080
</saml:Issuer>
<saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" NameQualifier="https://validator.spid.gov.it">

        _034cecb9-7a31-4eae-a538-7c6f7f0bf290

</saml:NameID>

Se di questi valori non viene fatto il trim, chiaramente si arriverà a risultati errati nel controllare la validità di un issuer o nel caso sia necessario gestire il NameID di un subject.

A mio parere andrebbe fatta chiarezza anche su questo aspetto, ed eventualmente corrette le specifiche o il validatore.

peppelinux commented 3 years ago

Ciao @mauromol

gli esempi vogliono essere il più possibile leggibili, quindi è stato deciso di rappresentarli "fancy" :) Quanto dici è vero e stando a xml security una volta firmato il valore autorevole assumerà spazi e anche caratteri di newline.

Sinceramente non vorrei rendere gli esempi meno leggibili ma credo che quanto hai espresso sia degno di seguito. Se tu fossi d'accordo potremmo pensare di lasciare gli esempi così come sono ma includere una nota per il lettore al fine di renderlo consapevole di questo.

Che ne pensi?

mauromol commented 3 years ago

Sono d'accordo che avere esempi leggibili sia una buona cosa. Tuttavia una semplice nota credo possa risultare un po' debole: gli strumenti dovrebbero essere allineati, ad oggi per esempio il validatore fa ampio uso di whitespace per diversi elementi (issuer, name id...), tant'è che ho dovuto aprire una PR su java-saml per rendere configurabile il trim dei text element dell'XML per poter passare i test di conformità. Mi chiedo anche cosa facciano gli IdP nel mondo reale...

peppelinux commented 3 years ago

spid-sp-test controlla dalla version 0.6.7 in poi questo aspetto: https://github.com/italia/spid-sp-test/commit/ee340a3e11ff38d48871880cd1a27b69c8d32d96

gestendolo come warning. Questa feature considera esclusivamente, ad ora, gli spazi all'inizio del documento.