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