Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

configurare AttributeConsumingService con index != 0 #32

Open
freddy34 opened this issue Mar 18, 2021 · 3 comments
Open

configurare AttributeConsumingService con index != 0 #32

freddy34 opened this issue Mar 18, 2021 · 3 comments

Comments

@freddy34
Copy link

Attualmente mediante appositi parametri di set-up, è possibile configurare molteplici nodi </md:AssertionConsumerService /> e <md:SingleLogoutService ...> ma non lo stesso per <md:AttributeConsumingService ... />. Il metadata generato dinamicamente infatti presenta sempre index="0" a fronte magari di molteplici servizi configurati con index (ovviamente) diversi da 0 (e isDefault="true")

@freddy34
Copy link
Author

Nonostante sia riuscito ad aggiungere AssertionConsumerService con index != 0 e soprattutto a rendere parametrico l'assunto di index="0" nelle def "spid_sp_authn_request" e "spid_logout" con una semplice variabile SPID_CURRENT_INDEX, tali modifiche mi consentono di "loggarmi" registrando nel servizio di test il metadata dinamicamente generato dalla firma /spid/metadata/.

Quando però "registro" un metadata.xml "legacy" statico (in fase di approvazione) mi imbatto nell'errore "Il certificato X509 contenuto nella request è differente rispetto a quello contenuto nei metadata del Service Provider."

I metadata differiscono dal fatto che in quello autogenerato non riesco a riprodurre i nodi <md:KeyDescriptor use="signing"> e <md:KeyDescriptor use="encryption"> relativi all'index="0". Il metadata autogenerato offre i seguenti nodi:

  • <md:KeyDescriptor use="signing"> (relativo a index="1")
  • <md:KeyDescriptor use="encryption"> (relativo a index="0")
  • <md:KeyDescriptor use="encryption"> (relativo a index="1")

Quello che il metadata "legacy" invece espone è:

  • <md:KeyDescriptor use="signing"> (relativo a index="0")
  • <md:KeyDescriptor use="encryption"> (relativo a index="0")
  • <md:KeyDescriptor use="signing"> (relativo a index="1")
  • <md:KeyDescriptor use="encryption"> (relativo a index="1")

il problema sollevato è da riferirsi all'incongruenza della posizione dei certificati? mi pare di comprendere in ogni caso che non si riesce a "forzare" di prendere il certificato relativo all'index="1", giusto?

@peppelinux
Copy link
Member

Prova a fare una PR per rendere chiare le modifiche che hai fatto, considera che nella authn request devi indicare l'index dell'ACS di riferimento AttributeConsumingServiceIndex="0"

hai modificato la funzione metadata di spid?
Che ne pensi se adottassimo delle Django Views così da rendere possibile l'ereditarietà?

@peppelinux
Copy link
Member

questo è il branch di riferimento
https://github.com/italia/spid-django/tree/additional_acs

prego testare e aggiungere una sezione dedicata nel readme prima dell'unione su branch dev

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants