Ciao.
Approfitto di questo thread “fresco fresco” sul logout di spid per sottoporvi una questione.
A pagina 7 del Regolamento Tecnico si legge:
“…
nell’ elemento <logoutRequest>
devono essere presenti i seguenti elementi:
l’elemento <Issuer>
attualizzato come l’attributo entityID riportato nel corrispondente metadata, a indicare l’identificatore univoco dell’entità (gestore delle identità o fornitori di servizi) emittente. L’elemento deve riportare gli attributi:
Format fissato al valore “urn:oasis:names:tc:SAML:2.0:nameid-format:entity”;
NameQualifier che qualifica il dominio a cui afferisce tale valore (URI riconducibile alla stessa entità emittente);
…”
Quindi il tag Issuer dovrebbe essere una cosa del tipo:
<saml:Issuer xmlns:saml=“urn:oasis:names:tc:SAML:2.0:assertion” Format=“urn:oasis:names:tc:SAML:2.0:nameid-format:entity” NameQualifier=“SERVICE_PROVIDER_WWW”>SERVICE_PROVIDER_WWW</saml:Issuer>
Purtroppo questo viola le specifiche SAML2.0 https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
8.3.6 Entity Identifier
URI: urn:oasis:names:tc:SAML:2.0:nameid-format:entity
Indicates that the content of the element is the identifier of an entity that provides SAML-based services (such as a SAML authority, requester, or responder) or is a participant in SAML profiles (such as a service provider supporting the browser SSO profile). Such an identifier can be used in the <Issuer>
element to identify the issuer of a SAML request, response, or assertion, or within the <NameID>
element to make assertions about system entities that can issue SAML requests, responses, and assertions. It can also be used in other elements and attributes whose purpose is to identify a system entity in various protocol exchanges. The syntax of such an identifier is a URI of not more than 1024 characters in length. It is RECOMMENDED that a system entity use a URL containing its own domain name to identify itself.
The NameQualifier, SPNameQualifier, and SPProvidedID attributes MUST be omitted.
Quindi, dato che per il tag Issuer il valore del Format = “urn:oasis:names:tc:SAML:2.0:nameid-format:entity” è il default, per cui può essere omesso
e che il NameQualifier DEVE essere omesso, il tag issuer corretto è:
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">SERVICE_PROVIDER_WWW</saml:Issuer>
Il tutto ci è stato confermato da Scott Cantor, referente della community Shibboleth, nonché autore dello standard saml2.0 a cui abbiamo posto il quesito specifico.
Shibboleth SP non riesce a generare questo tipo di asserzioni SAML (in quanto errate), per cui il logout (globale) conforme alle specifiche agid non è di fatto implementabile con questo software e alcuni IDP sono molto restrittivi in questo controllo delle logoutrequest.
Saluti
Marcello Marangio
InnovaPuglia S.p.A.