Closed nunzionapolitano closed 3 years ago
Ciao Nunzio, il tipo di errore che descrivi credo dipenda da come Apache sia stato configurato, dai uno sguardo alla ml di shibboleth ci sono diversi casi come il tuo.
Hai l'esempio di configurazione di Apache. Questo progetto è testato su debian10
secondo quel che capisco da: https://wiki.shibboleth.net/confluence/display/SP3/SAMLDS+SessionInitiator è necessario un SAMLDS SessionInitiator solo quando abbiamo qualcosa tipo lo embedded discovery service . Nell'esempio di discovery in questo progetto invece tutti i parametri per la connessione (entityID, target) ecc sono esplicitati quindi siamo in un caso diverso. Io rimuoverei il
<SessionInitiator type="SAMLDS" .../>
tout-court.
Non credo di aver capito, in questo progetto abbiamo introdotto la discovery page con lo spid button, ho proposto un type="Chaining" per evitare di fare singole specificazioni per ogni IdP SPID, qual'è l'alternativa che stai proponendo?
La discovery page per come è fatta adesso funziona senza SAMLDS SessionInitiator. In pratica è lo javascript che fa l'override dello IdP a cui ci vorremmo connettere grazie al parametro "entityID" direttamente nei parametri della GET. https://wiki.shibboleth.net/confluence/display/SP3/ContentSettings
Ottimo, converrebbe fare un commit per chiarire questo, che ne pensi?
Segnalo un'altra possibilità, che potrebbe non richiedere l'utilizzo di javascript, è l'uso di un SessionInitiator
di tipo Form
https://wiki.shibboleth.net/confluence/display/SP3/Form+SessionInitiator, attraverso il quale, è possibile usare un template html per settare l'entityID dell'IDP da utilizzare (e non solo). Un esempio di base è fornito a seguire:
<!-- shibboleth2.xml -->
...
<SessionInitiator
type="Form"
template="/etc/shibboleth/discoveryTemplate.html" acsIndex="1"/>
</SessionInitiator>
...
<!-- discoveryTemplate.html -->
...
<form method="GET" action="<shibmlp action/>">
<shibmlpif target>
<input type="hidden" name="target" value="<shibmlp target/>"/>
</shibmlpif>
<shibmlpif acsIndex>
<input type="hidden" name="acsIndex" value="<shibmlp acsIndex/>"/>
</shibmlpif>
<shibmlpif isPassive>
<input type="hidden" name="isPassive" value="<shibmlp isPassive/>"/>
</shibmlpif>
<shibmlpif forceAuthn>
<input type="hidden" name="forceAuthn" value="<shibmlp forceAuthn/>"/>
</shibmlpif>
<shibmlpif authnContextClassRef>
<input type="hidden" name="authnContextClassRef" value="<shibmlp authnContextClassRef/>"/>
</shibmlpif>
<shibmlpif authnContextDeclRef>
<input type="hidden" name="authnContextDeclRef" value="<shibmlp authnContextDeclRef/>"/>
</shibmlpif>
<shibmlpif authnContextComparison>
<input type="hidden" name="authnContextComparison" value="<shibmlp authnContextComparison/>"/>
</shibmlpif>
<input type="radio" name="entityID"
value="https://idp1">IDP 1
<br/>
<input type="radio" name="entityID"
value="https://idp2">IDP 2
<br/><br/>
<input type="submit" value="Procedi all'autenticazione"/>
</form>
...
Cosa ne pensate?
ganzo!
@robertogallea è così bello e utile che dovrebbe stare nel readme come riferimento ad un esempio nel progetto
@robertogallea possiamo fare una roadmap per questa feature? Te la senti di includerla nel progetto come documentazione o esempio alternativo?
@francescm ti andrebbe ti testarlo quando hai due min? https://github.com/italia/spid-sp-shibboleth/commit/be2a9d2512a6a0473ecf710124c1d1f73cdfd78c
ciao @nunzionapolitano, ritieni che a seguito degli ultimi commit questa issue possa ritenersi chiusa? Attendo un tuo riscontro
Si, credo che questa issue possa ritenersi chiuda con successo. Grazie a tutti per il supporto offerto.
Provando ad usare il file shibboleth2.xml su una nuova installazione, ottengo il seuente errore:
shibsp::ConfigurationException at (https://supporto.uniparthenope.it/Shibboleth.sso/Login%3FSAMLDS%3D1%26target%3Dss%253Amem%253A10e932f8cd61dfd14c6a6abcaa8b8300b34937990b798f26d74fdde16ffff1a1) Shibboleth handler invoked at an unconfigured location.
Mentre se sotiuisco la configurazione
Con :
funziona regolarmente
L'unica modifica che ho effettuato ( a prte sostituire sp_fqn) è stata:
<SessionInitiator type="SAMLDS" URL="https://{sp_fqdn}/disco.html"/>
con<SessionInitiator type="SAMLDS" URL="https://{sp_fqdn}/disco/index.html"/>
in accordo alla struttura del progetto "php-example-project"C'è qualcosa che sbaglio?
Grazie