Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Costruire Security Policies con le asserzioni

Analizziamo le procedure necessarie per costruire Security Polocies con le asserzioni per la sicurezza dei Web service.
Analizziamo le procedure necessarie per costruire Security Polocies con le asserzioni per la sicurezza dei Web service.
Link copiato negli appunti

Per costruire le Security Policies utilizzando le asserzioni descritte nel capitolo precedente, la specifica WS-Policy mette a disposizione due operatori, di norma con prefisso wsp per indicare il namespace. Gli operatori sono wsp:All e wsp:ExactlyOne, usati per costruire le diverse alternative, dove per alternative si intendono collezioni di asserzioni di policies.

Queste alternative possono essere innestate e combinate per costruire policies che sono a loro volta collezioni di alternative. Nell’esempio che segue, 3 policies vengono associate per formare un’alternativa.

<wsp:Policy>
    <wsp:ExactlyOne>
        <wsp:All>
             <sp:SecurityBindingAssertion/>
             <sp:ProtectionAssertion/>
             <cs:CustomAssertion/>
        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>

La policy costruita di seguito prevede che un client debba soddisfare tutti i requisiti definiti da SecurityBindingAssertion, ProtectionAssertion e CustomAssertion, oppure da SomeotherSecurityBindingAssertion, SomeotherProtectionAssertion e SomeotherCustomAssertion.

<wsp:Policy>
    <wsp:ExactlyOne>
        <wsp:All>
             <sp:SecurityBindingAssertion/>
             <sp:ProtectionAssertion/>
             <cs:CustomAssertion/>
        </wsp:All>
        <wsp:All>
             <sp:SomeOtherSecurityBindingAssertion/>
             <sp:SomeOtherProtectionAssertion/>
             <cs:SomeOtherCustomAssertion/>
        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>

Infine vi sono i soggetti delle policies, i punti cui vengono collegate le policies definite, divisi in Message Policy Subject, Operation Policy Subject ed Endpoint Policy Subject. E’ conseguentemente possibile definire svariate combinazioni, ad esempio con policies comuni all’intero servizio allegandole al livello end-point, e policies specifiche per alcune operazioni operando a livello operazione o messaggio.

Specifiche immature e mancato supporto in CXF

Nella lezione successiva seguirà un esempio di applicazione delle policies su JBoss AS. Quello che possiamo dire da subito e che essa testimonia il fatto che specifiche e tecnologie non sono ancora realmente mature, è che non tutte le caratteristiche descritte finora sono supportate in CXF.

Ad esempio, tramite la combinazione di CXF e Spring è possibile supportare i tokens in formato testuale, ma per procedere alla relativa firma o criptazione occorre utilizzare anche altre librerie come Apache Rampart. In modo simile Oracle Salt implementa solo parte delle policies e così via.

Altro punto che evidenzia la maturità ancora non raggiunta nel settore: le tecnologie indicate rappresentano solo una parte della selva di soluzioni e standard che sono proliferati e orbitano nel mondo della sicurezza a livello trasporto nei Web services. Giusto per fare qualche esempio, possiamo nominare WS-Addressing, per fornire informazioni di routing nell’header SOAP, o WS-Atomic Transaction, per definire protocolli e servizi che permettono operazioni atomiche automatiche.

Da un lato ciò è voluto nell’ottica di definire una serie di standard che siano sommabili e non sovrapposti, singolarmente non troppo grandi e funzionalmente completi, di modo che sia possibile aderire ad uno standard senza doversi portare dietro aspetti non necessari nell’ambito di riferimento. Dall’altro però si è arrivati a definirne troppi e lo standard WS-PolicySecurity che ne ha assorbiti diversi lo testimonia.

Questo settore si potrà dire sufficientemente assestato nel momento in cui si effettuerà la scrematura tra gli standard e le tecnologie disponibili identificando un set di caratteristiche realmente desiderate e realmente supportate dalle principali implementazioni commerciali e Open Sources.

Ti consigliamo anche