italia / spid-keycloak-provider

Italian SPID authentication provider for Keycloak (https://www.keycloak.org/)
Apache License 2.0
62 stars 22 forks source link

Corretta configurazione idp multipli #40

Closed pigreco33 closed 6 months ago

pigreco33 commented 1 year ago

Ciao, sto utilizzando il plugin per integrare l'applicazione della mia azienda con i vari IdP tramite SPID. Ho un dubbio: a differenza di prodotti similari (tipo SimpleSAML PHP), nel caso di keycloak per potersi integrare con vari IdP vanno configurati record separati per ognuno degli IdP. Ho visto che il metadata generato, come da documentazione, contiene tutti gli attributi definiti come mappers nel primo IdP ma contiene n AssertionConsumingService, uno per ogni identity provider.

Ammesso che fin qui sia corretto ciò che scrivo, la domanda è: durante una conversazione SAML con uno degli IdP, come fa l'Idp, dopo la login avvenuta con successo, a capire a quale AssertionCoonsumingService riportare la SAMLResponse se nel metadata ce n'è più di uno?

Grazie mille per l'aiuto!

bozzadavide commented 1 year ago

Nella SAML request che viene inviata all'IDP c'è il valore dell'assertion Consumer Service URL che è la callback a cui IDP manderà gli attributi.

frabnet commented 1 year ago

Ne approfitto per evidenziare un potenziale problema.

Siamo, come penso chiunque utilizzi questo plugin, dei Service Provider. In fase di accreditamento con AgID come Service Provider, è stato comunicato il metadata SP che contiene, come ha evidenziato @pigreco33, tutti gli Identity Provider.

Recentemente sono "nati" altri Service Provider, ad es. InfoCamere, che ha ottenuto il nostro metadata "non aggiornato", ovvero senza il relativo AssertionConsumingService. Il metadata è stato prontamente aggiornato da parte nostra, ma attualmente InfoCamere sta usando il vecchio, quindi non funzionerà finché non scaricheranno manualmente il nostro metadata SP (oppure tenteremo nuovamente l'onboarding con AgID).

Ammetto che non so se questa procedura è ottimale, ma sicuramente se si riesce a generare un metadata SP tipo SimpleSAML PHP (quindi che non contiene i singoli IdP) questo problema non si pone.

Cosa ne pensate?

nicolabeghin commented 6 months ago

Al momento non previsto, anche in ottica che SPID è più in là che di qua in favore di CIE