Open mauromol opened 3 years ago
Rileggendo la definizione di AllowCreate
nelle specifiche SAML 2.0 Core (sez. 3.4.1.1):
A Boolean value used to indicate whether the identity provider is allowed, in the course of fulfilling the request, to create a new identifier to represent the principal. Defaults to "false". When "false", the requester constrains the identity provider to only issue an assertion to it if an acceptable identifier for the principal has already been established. Note that this does not prevent the identity provider from creating such identifiers outside the context of this specific request (for example, in advance for a large number of principals).
AllowCreate
si riferisce alla facoltà di creare l'identificatore, non il principal, per cui poiché SPID usa identificatori transient creati sul momento, in effetti avrebbe più senso richiedere che valga true
, come nelle regole tecniche originali.
Sia come sia, rimane il fatto che, allo stato attuale delle specifiche SPID, l'avviso 5 indica una correzione che non specifica in alcun modo che AllowCreate
debba obbligatoriamente essere omesso, dice solo di rimuovere il vincolo originale.
Le specifiche originali di SPID riportano questa frase:
L'avviso 5 (errata corrige) poi dice che la correzione da apportare consiste nell'eliminazione della frase:
Pertanto la frase originale diventa:
Questo, di per sé, non dice niente sull'eventuale valorizzazione o meno dell'attributo
AllowCreate
, lasciando intendere che viene ignorato. In effetti, la tabella degli errori SPID pubblicata su: https://www.agid.gov.it/sites/default/files/repository_files/tabella-messaggi-spid-v1.3_0.pdf dice che: "Nel caso di valori diversi dalla specifica del parametro opzionale AllowCreate si procede con l'autenticazione senza riportare errori". Lo stesso c'è scritto nelle regole tecniche consolidate su Developers Italia. Probabilmente quindi c'è consapevolezza sul fatto che qui la specifica non sia molto chiara. Tuttavia lo SPID Validator restituisce un errore (failure) nel caso in cui l'attributoAllowCreate
sia specificato:Data la semantica dell'attributo
AllowCreate
, posso essere d'accordo sul fatto che, nel caso di SPID, abbia più senso richiedere che il valore sia omesso o siafalse
(casi equivalenti, da specifica SAML 2.0), tuttavia, visto quanto sopra, mi sarei eventualmente aspettato che al più SPID Validator desse un warning, piuttosto che una failure tout-court. Oppure le specifiche andrebbero chiarite meglio.