Buongiorno,
per un’applicazione web che fornisce servizi ad un Ente pubblico dovrei attivare il servizio di autenticazione “Entra con CIE” mentre “Entra con SPID” c’è già da tempo.
Tecnicamente, l’accesso con SPID è stato realizzato su SP Shibboleth con protocollo SAML 2.
Per l’accesso con CIE dovrei utilizzare la stessa infrastruttura Shibboleth. Però, sto avendo qualche problema a trovare una configurazione in modo da farli coesistere senza apportare modifiche alla configurazione già fatta per SPID (per evitare di modificare il metadata già in uso).
Per attivare “Entra con CIE” sull’applicazione web in questione, dovrei aggiungere nella configurazione Shibboleth (shibboleth2.xml) un nuovo nodo “ApplicationOverride” con un “id” (“applicationId” assegnato all’Host nella “RequestMap”) diverso da quello SPID ma in realtà i due Host (uno per SPID e l’altro per CIE) puntano allo stesso “Site”, che corrisponde ad un unico “Id” sul server IIS.
@IPZS-CIE Si può aggirare in qualche modo questo ostacolo ? Oppure sto sbagliando qualcosa ?
Grazie in anticipo
P.S. Se provo a configurare nel seguente modo, ne funziona solo uno ovvero quello che compare prima nell’ordine mentre l’altro dà l’errore: “Shibboleth handler invoked at an unconfigured location”.
Lo stesso errore viene fuori se provo a scaricare il metadata.
Ho qualche dubbio su ‘handlerURL’, perchè credo che non possa essere “/Shibboleth.sso” per entrambi gli override. Ma come si dovrebbe modificare per il secondo override?
<InProcess logger="native.logger">
<ISAPI normalizeRequest="true" safeHeaderNames="true">
...
<Site id="28" name="entexyz.miodominio.it" scheme="https" port="443"/> <!-- id="28" è l'identificativo del sito su IIS -->
...
</ISAPI>
</InProcess>
<RequestMapper type="Native">
<RequestMap>
...
<!-- Mapping risorse SPID -->
<Host name="entexyz.miodominio.it:443" applicationId="entexyzSPID">
<Path name="AccessManager/SecureSPID" authType="shibboleth" requireSession="true">
...
</Host>
<!-- Mapping risorse CIE -->
<Host name="entexyz.miodominio.it:443" applicationId="entexyzCIE">
<Path name="AccessManager/SecureCIE" authType="shibboleth" requireSession="true">
...
</Host>
...
</RequestMap>
</RequestMapper>
...
.......
...
<!-- Override SPID -->
<ApplicationOverride id="entexyzSPID" entityID="https://spid.entexyzSPID" ... >
<Sessions lifetime="3600" timeout="1800" ... handlerURL="/Shibboleth.sso" handlerSSL="true" ... >
<SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Login" target="/AccessManager/SecureSPID/LoginFromSPID.aspx">
<SessionInitiator type="SAML2">
<samlp:AuthnRequest ... AssertionConsumerServiceURL="https://entexyz.miodominio.it/Shibboleth.sso/SAML2/POST" ... >
...
</SessionInitiator>
<md:AssertionConsumerService Location="/SAML2/POST" index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>
...
<Handler type="MetadataGenerator" Location="/MyMetadataSPID" ... >
</Sessions>
<Errors ... />
<CredentialResolver type="File" key="..." certificate="..." use="signing" />
</ApplicationOverride>
<!-- Override CIE -->
<ApplicationOverride id="entexyzCIE" entityID="https://cie.entexyzCIE" ... >
<Sessions lifetime="3600" timeout="1800" ... handlerURL="/Shibboleth.sso" handlerSSL="true" ... >
<SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Login" target="/AccessManager/SecureCIE/LoginFromCIE.aspx">
<SessionInitiator type="SAML2">
<samlp:AuthnRequest ... AssertionConsumerServiceURL="https://entexyz.miodominio.it/Shibboleth.sso/SAML2/POST" ... >
...
</SessionInitiator>
<md:AssertionConsumerService Location="/SAML2/POST" index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>
...
<Handler type="MetadataGenerator" Location="/MyMetadataCIE" ... >
</Sessions>
<Errors ... />
<CredentialResolver type="File" key="..." certificate="..." use="signing" />
</ApplicationOverride>