menu di navigazione del network

Spid-php diversi SP, un solo ente e pubblicazione metadato

Salve,
Stiamo implementando più service provider per lo stesso ente, ho letto varie discussioni sul forum che mi hanno portato alla seguente soluzione.
Le varie implementazioni sfrutteranno la libreria spid-php (https://github.com/italia/spid-php) installata sui vari server (dislocati in varie parti del territorio).
Ogni installazione avrà il suo default-sp valorizzato opportunamente, ma con l’accortezza che tutte manterranno lo stesso entityID (quello relativo all’ente), e di conseguenza ogni installazione non può essere utilizzata per la pubblicazione del metadato, poichè ne conterrebbe una quotaparte relativa all’ AttributeConsumingService del Service Provider dell’installazione (varierà di conseguenza il valore dell’ AttributeConsumingService Index).
Mi rimane da chiarire se posso utilizzare un certificato unico per la cifratura in tutti i SP ed eventualmente che caratteristiche debba avere, in particolare il dn può essere genericamente riferito all’ente?

Infine si pone il problema della pubblicazione del metadato complessivo per l’ente.

Mi sembra di capire possa essere effettuata su un url separato dalle varie installazioni, ma chiaramente riconducibile all’Ente.
E mi chiedo se esista un tool utile per la pubblicazione/creazione del metadato.

Spero di essere stato chiaro e di avere iterpretato correttamente quanto letto sul forum.

Grazie mille

Buongiorno @Saverio,

la soluzione è fattibile, a patto di generare, come dicevi tu stesso, un unico metadata contenente i diversi SingleLogout, AssertionConsumerService e AttributeConsumingService di tutte le diverse installazioni.
Puoi costruire il metadata unendo le informazioni dei metadata delle diverse installazioni e firmandolo con un unico certificato.
Il certificato può essere un self signed riferito genericamente all’ente.
Infine, il metadata dovrà essere pubblicato su un dominio riconducibile all’ente.

Cordiali saluti,
Michele D’Amico
Collaboratore Agenzia per l’Italia Digitale

Salve @damikael, il thread è alquanto interessante. Al momento, tuttavia, non ci sono chiari una serie di aspetti.

  • Vorremmo comprendere ad esempio come il metadata unico e generale, composto ad hoc, possa essere richiamato da una installazione secondaria (singolo applicativo) di spid-php, per completare il processo di autenticazione, facendo riferimento quindi al metadata remoto e non a quello locale, generato di default dalla singola installazione.

  • Se possibile gradiremmo ricevere indicazioni su come integrare e sfruttare all’interno della libreria spid-php legata alla singola applicazione, il metadata unico e remoto per far si che il processo di dialogo e autenticazione con gli IDP possa essere gestito a livello di singolo applicativo.

  • A tale riguardo e qualora questa ultima fattispecie non sia demandabile al singolo applicativo, vorremmo comprendere se è necessario utilizzare e/o fare affidamento sun un unico ambiente di orchestrazione, nel quale naturalmente è definito e trova luogo il metadata regionale composito.

Grazie di tutto e buon lavoro.

Salve @Massimiliano_Perri,
le installazioni dislocate di spid-php possono essere configurate singolarmente con l’attenzione di mantenere per tutte le installazioni:

  • lo stesso EntityID
  • lo stesso certificato e chiave privata

Tali informazioni sono configurabili, anche dopo aver eseguito l’installazione, in:
/spid-php/vendor/simplesamlphp/simplesamlphp/config/authsources.php

Il certificato e la chiave privata (privatekey e certificate), devono chiaramente essere condivisi su tutte le installazioni.

Dovrebbe essere sufficiente questo.
Se avete modo di sperimentare fatemi sapere l’esito.

Michele D’Amico

Gent.mo,
Le siamo grati per la risposta tempestiva. Avremo modo di fornire dettagli a valle delle attività di integrazione.

A presto @damikael e grazie di tutto.

Buongiorno @damikael. Mi servirebbe un ulteriore precisazione sull’installazione che non sono riuscito a trovare nella documentazione.
Gli AssertionConsumerService e AttributeConsumingService ho visto che sono diversificabili mediante il parametro index.
Tuttavia mi chiedo se è possibile procedere nella stessa maniera per il parametro SingleLogoutService nella maniera seguente:
<md:SingleLogoutService
index=“0”
Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST”
Location=“https://url1”/>
</>
<md:SingleLogoutService
index=“1”
Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST”
Location=“https://url2”/>
</>

dove chiaramente l’index sarà relativo alla singola installazione e comune con i parametri AssertionConsumerService e AttributeConsumingService.

Grazie mille

Salve @Saverio,
non è possibile, l’attributo index su SingleLogoutService non è previsto dallo standard SAML.

Capisco.
Quindi in ogni punto di accesso specificherò il relativo SingleLogoutService.
Nel metadata complessivo invece li elencherò tutti?

<md:SingleLogoutService
Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST”
Location=“https://url1 ”/>
</>
<md:SingleLogoutService
Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST”
Location=“https://url2”/>
</>

Grazie mille.

sì, è esatto.

Michele