italia / spid-spring

SPID extension for Java Spring
BSD 3-Clause "New" or "Revised" License
29 stars 22 forks source link

authNRequest fixes and other changes #13

Closed Nick87 closed 2 years ago

Nick87 commented 3 years ago

AuthNRequest fixes

see https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/single-sign-on.html

nell’elemento non deve essere presente l’attributo IsPassive (ad indicare false come valore di default)

see https://www.spid.gov.it/assets/download/SPID_QAD.pdf

2.1.11 - The IsPassive attribute must not be present

From spid-testenv2 validation:

"Uno e uno solo uno tra gli attributi o gruppi di attributi devono essere presenti: [AssertionConsumerServiceIndex, [AssertionConsumerServiceUrl, ProtocolBinding]]"

see https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/single-sign-on.html

In alternativa all’attributo AssertionConsumerServiceIndex (scelta sconsigliata) possono essere presenti: l’attributo AssertionConsumerServiceURL [...] l’attributo ProtocolBinding [...]

see https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/single-sign-on.html

l’attributo ForceAuthn nel caso in cui si richieda livelli di autenticazione superiori a SpidL1 (SpidL2 o SpidL3)

see https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/single-sign-on.html

L’elemento deve riportare gli attributi: Format fissato al valore urn:oasis:names:tc:SAML:2.0:nameid-format:entity

see https://www.spid.gov.it/assets/download/SPID_QAD.pdf

2.2.4 - The Format attribute must be urn:oasis:names:tc:SAML:2.0:nameidformat:entity

see https://github.com/XML-Security/signxml/issues/143

As a fix, public key info is now only added via certificate (commenting KeyInfoHelper.addPublicKey(keyInfo, certificate.getPublicKey()); in getSignature()) and adding Signer.signObject(authnRequest.getSignature()); to printAuthnRequest

see https://github.com/italia/spid-testenv2/issues/325

Other minor changes:

peppelinux commented 2 years ago

thank you @Nick87 @polarene