Share via


Considerazioni sulla protezione per le sessioni protette

In caso di implementazione di sessioni protette, è consigliabile considerare gli elementi seguenti che influiscono sulla protezione. Per ulteriori informazioni su sulle considerazioni sulla sicurezza, vedere Considerazioni sulla protezione e Procedure consigliate per la protezione in WCF.

Sessioni protette e metadati

Quando si stabilisce una sessione sicura e si imposta la proprietà RequireCancellation su false, Windows Communication Foundation (WCF) invia un'asserzione mssp:MustNotSendCancel come parte dei metadati nel documento WSDL (Web Services Description Language) relativo all'endpoint del servizio. L'asserzione mssp:MustNotSendCancel informa i client che il servizio non risponde alle richieste di annullare la sessione protetta. Quando la proprietà RequireCancellation è impostata su true, WCF non genera l'asserzione mssp:MustNotSendCancel nel documento WSDL. Si prevede che i client inviino una richiesta di annullamento al servizio quando la sessione protetta non è più necessaria. Quando un client viene generato utilizzando lo Strumento ServiceModel Metadata Utility Tool (Svcutil.exe), il codice client reagisce in modo appropriato alla presenza o all'assenza dell'asserzione mssp:MustNotSendCancel.

Conversazioni protette e token personalizzati

Si sono verificati problemi nella combinazione di token personalizzati e chiavi derivate a causa della modalità di definizione nella specifica WS-SecureConversation. La specifica afferma che wsse:SecurityTokenReference è un elemento facoltativo che fa riferimento al token derivato: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference Questo elemento facoltativo è utilizzato per specificare token del contesto di sicurezza, token di sicurezza o chiave/segreto condiviso utilizzati per la derivazione. Se non è specificata, si presume che il destinatario possa determinare la chiave condivisa dal contesto del messaggio. Se non è possibile determinare il contesto, è possibile che sia stato generato un errore come wsc:UnknownDerivationSource.

Ciò significa che se si desidera derivare un token personalizzato, è necessario eseguire il wrapping del relativo tipo di clausola in un elemento SecurityTokenReference. Benché sia disponibile un'opzione per disattivare la derivazione, per impostazione predefinita le chiavi vengono derivate. Se non è possibile eseguire il wrapping della chiave, la serializzazione del token della chiave derivata viene completata correttamente, ma il tentativo di deserializzazione genera un'eccezione.

Vedere anche

Attività

Procedura: disattivare sessioni protette in un'associazione WSFederationHttpBinding

Concetti

Procedure consigliate per la protezione in WCF

Altre risorse

Considerazioni sulla protezione