italia / Satosa-Saml2Spid

SATOSA SAML-to-SAML proxy with Spid compliances
Apache License 2.0
42 stars 25 forks source link

Richiedere differenti "AttributeConsumingService" in base alla decisione del client #56

Open ebusi opened 1 year ago

ebusi commented 1 year ago

Ciao. Sto lavorando ad un progetto per un proxy OIDC e/o SAML verso gli IDP Spid (quindi backend SAML) ed ho preso il vostro progetto come traccia. Avrei l'esigenza che i client che contattano i frontend possano richiedere più o meno attributi dell'utente (visto che per i privati alcune informazioni rilasciate dagli idp sono gratuite ed altre no).

Ho letto la documentazione di SATOSA. In alcuni punti è un po' lacunosa quindi mi sono guardato anche il codice di SATOSA e delle sue dipendenze. Non definirei Python il mio linguaggio di punta ma penso di aver capito grosso modo quanto letto e non ho trovato un modo per risolvere la mia esigenza. Quindi ho optato per estendere le funzionalità del vostro spidSaml2 backend.

La mia idea era quindi di definire un mapping tra richiesta arrivata al frontend e Authn request che poi parte dal backend SAML. Nel concreto stavo pensando di:

Secondo voi ha senso? Oppure esiste già qualche feature che mi è sfuggita che risolve una parte e/o tutti i miei problemi? Per le modifiche che invece vi sembrano sensate potrei anche prevedere una PR invece.

MdreW commented 1 year ago

Ciao @ebusi , perdonami ma non mi era arrivata nessuna notifica della issue. Non so se sei andato avanti, ma provo ugualmente a risponderti.

Quello che dici ha senso, puoi modificare il consuming service in base ad un attributo. Prova a dare un occhiata ai microservice

ebusi commented 1 year ago

Ciao, grazie per la risposta. Sì effettivamente penso che un microservice ad hoc potrebbe gestire la parte di mapping partendo da un file di configurazione simile a quello nell'esempio sopra. Al momento avevo messo tutto nel backend spid ma usare un microservice è di sicuro la soluzione più pulita

MdreW commented 1 year ago

Se ci riesci a lavorarci fai una pull request, potrebbe fare comodo a molti!