sviluppatori@openspcoop.org
<prev [Datenext>
<prev [Threadnext>

Re: [OpenSPCoop-Dev] Re: Modalità d'inte

To: sviluppatori@openspcoop.org
Subject: Re: [OpenSPCoop-Dev] Re: Modalità d'integrazione dei servizi applicativi
From: "Domenico Loiacono" <dloiacono@gmail.com>
Date: Mon, 26 Mar 2007 19:23:02 +0200
Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta;h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references;b=qDnoOqTPxPdVqMFwT9lEjDVjN0Fnu3K/nFDCam8012X0mFY1FHEBS2Ic4O9clu6KF+toOjHtQ2+iWewrNshe/EghD8QscVO8DvxdaqLTHeUJ6Ai2zjwoBGA/RYxZBVphqND/+4hjccalSQpgMm0YI4aROfLfwk6e8P2wCNsshfc=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta;h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references;b=VN0UJhQiCR0WVWx7RhF/9okguv+ax8AcnKFdiUC/3FLX2a9i+fenntJkqSQGSfp7M+Ja86LJF9YuA5TvObz0KPLJlGE3GOTLedzRXBwGxhc0Y82u886Oqp2RbcOR/MddRvk4vPAiMMdKhqBPU3Upr5xPFchcvF+Hq+0I7mQohPc=
In-reply-to: <4602BD1F.4080005@link.it>
List-archive: </pipermail/sviluppatori>
List-help: <mailto:sviluppatori-request@openspcoop.org?subject=help>
List-id: sviluppatori.openspcoop.org
List-post: <mailto:sviluppatori@openspcoop.org>
List-subscribe: <http://www.openspcoop.org/mailman/listinfo/sviluppatori>,<mailto:sviluppatori-request@openspcoop.org?subject=subscribe>
List-unsubscribe: <http://www.openspcoop.org/mailman/listinfo/sviluppatori>,<mailto:sviluppatori-request@openspcoop.org?subject=unsubscribe>
References: <4602BD1F.4080005@link.it>
Reply-to: sviluppatori@openspcoop.org
> Il problema e' dovuto al fatto che il client sta usando mustUnderstand=1
> e Actor non specificato. Questo puo' andar bene in un'interazione SOAP
> peer to peer, ma non va bene se ci sono dei nodi intermediari che non
> devono interpretare l'header, come avviene in questo caso per le Porte
> di Dominio.
>
> Per risolvere il tuo problema dovrebbe quindi essere sufficente
> introdurre un actor nell'header WSSecurity prodotto dal client, oppure
> specificare il mustUnderstand=0, che rende legale il fatto che la Porta
> di Dominio ignori l'header in questione.

Introdurre un actor sull'header WSSecurity o porre l'attributo mustUnderstand=0, significherebbe però imporre questa regola a tutti i client a livello di specifiche di integrazione, affinchè la implementino, con la conseguenza che in alcuni casi potrebbe risultare molto complesso intervenire nei framework dei servizi applicativi a livello di sicurezza per modificare l'attributo mustUnderstand ( p.es. client applicativi .NET (WCF)).

> In alternativa, se non puoi intervenire sugli applicativi, puoi fare in
> modo che la PdD ignori comunque l'header, aggiungendo un handler che
> marchi l'header WSS come gestito. Se vuoi fare cosi', ti basta agire sul
> file:
>
>  'deploy/pdd/deploy_axis/web_app/WEB-INF/server-config.wsdd'

Questa seconda alternativa, già utilizzata nel post http://www.openspcoop.org/pipermail/sviluppatori/msg00092.html in riferimento alla PA, in effetti è quella che abbiamo utilizzato nei nostri scenari di test per ovviare al problema e ci sembra la strada preferibile per non intervenire sui servizi applicativi ed evitare di aggiungere complessità nell'integrazione dei client.

Nel caso in cui la situazione, actor non specificato e mustUnderstand=1, si verificasse per altri tipi di header, occorrerebbe per quanto detto aggiungere ulteriori "bypass". E' corretto ?
 
 
Domenico

Il 22/03/07, Andrea Poli<apoli@link.it> ha scritto:
> > Domenico Loiacono wrote:
> >
> > ...
> > in contesti applicativi in cui è definita una politica di sicurezza per cui è richiesto lo scambio di token di
> > autenticazione/autorizzazione all'interno di messaggi soap attraverso
> > header WS-Security, i test hanno evidenziato un blocco dei messaggi
> > sulla porta delegata in quanto la stessa ne ha tentato l'interpretazione.
> > .....
> > .....
>
> > In breve, per migliore fruizione, si riporta la sola sezione del log
> > che riporta il trace dell'errore applicativo:
>
> > ........
> > 2007-03-20 09:58:49,343 DEBUG [org.apache.axis.EXCEPTIONS ] AxisFault:
> > AxisFault
> > faultCode: {http://schemas.xmlsoap.org/soap/envelope/}MustUnderstand <http://schemas.xmlsoap.org/soap/envelope/%7DMustUnderstand>
> > faultSubcode:
> > faultString: Did not understand &quot;MustUnderstand&quot;
> > header(s):{ http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security < http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd%7DSecurity>
> > .......
>
>
> Il problema e' dovuto al fatto che il client sta usando mustUnderstand=1
> e Actor non specificato. Questo puo' andar bene in un'interazione SOAP
> peer to peer, ma non va bene se ci sono dei nodi intermediari che non
> devono interpretare l'header, come avviene in questo caso per le Porte
> di Dominio.
>
> Per risolvere il tuo problema dovrebbe quindi essere sufficente
> introdurre un actor nell'header WSSecurity prodotto dal client, oppure
> specificare il mustUnderstand=0, che rende legale il fatto che la Porta
> di Dominio ignori l'header in questione.
>
> In alternativa, se non puoi intervenire sugli applicativi, puoi fare in
> modo che la PdD ignori comunque l'header, aggiungendo un handler che
> marchi l'header WSS come gestito. Se vuoi fare cosi', ti basta agire sul
> file:
>
>  'deploy/pdd/deploy_axis/web_app/WEB-INF/server- config.wsdd'
>
> aggiungendo la riga:
>
> '<handler name="WSBypassMustUnderstand"
> type="java:org.openspcoop.wssecurity.WSBypassMustUnderstandHandler"/>'
> al servizio 'RicezioneContenutiApplicativi'. La definizione del servizio
> diventa quindi:
>
> <!-- Servizio di ricezione Richieste Interne -->
> <service name="PD" provider="java:MSG" style="wrapped" use="literal">
>    <requestFlow>
>       <handler name="WSBypassMustUnderstand"
> type="java:org.openspcoop.wssecurity.WSBypassMustUnderstandHandler"/>
>       <handler type="IdentificazioneParametriPD"/>
>       <handler type="Authentication"/>
>    </requestFlow>
>    <responseFlow>
>       <handler type="EsitoInvocazione"/>
>    </responseFlow>
>    <parameter name="allowedMethods" value="OpenSPCoop_PD"/>
>    <parameter name="FullMessageService" value="true"/>
>    <parameter name="className"
> value="org.openspcoop.pdd.services.RicezioneContenutiApplicativiWS"/>
>  </service>
>  <!-- Servizio di ricezione Richieste Interne -->
>
> Dopo la modifica va ovviamente rifatto il deploy di OpenSPCoop.
>
> Andrea.
> _______________________________________________
> Sviluppatori mailing list
> Sviluppatori@openspcoop.org
> http://www.openspcoop.org/mailman/listinfo/sviluppatori
>


--
Domenico Loiacono
 
<Prev in Thread] Current Thread [Next in Thread>
Previous by Date:  [OpenSPCoop-Dev] Re:Modalità d'integrazione dei servizi applicativi, Andrea Poli
Next by Date:  Re: [OpenSPCoop-Dev] Re: Modalità d'integrazione dei servizi applicativi, Andrea Poli
Previous by Thread:  [OpenSPCoop-Dev] Re:Modalità d'integrazione dei servizi applicativi, Andrea Poli
Next by Thread:  Re: [OpenSPCoop-Dev] Re: Modalità d'integrazione dei servizi applicativi, Andrea Poli
Indexes:  [Date] [Thread]