Elemento <localServiceSettings>

Specifica le impostazioni di protezione di un servizio locale per questa associazione.

<system.serviceModel>
  <bindings>
    <associazionePersonalizzata>
      <associazione>
        <security> di <customBinding>

<security>
   <localServiceSettings detectReplays="Boolean"
      inactivityTimeout="TimeSpan"
      issuedCookieLifeTime="TimeSpan"
      maxCachedCookies="Integer" 
      maxClockSkew="TimeSpan" 
      maxPendingSessions="Integer"
      maxStatefulNegotiations="Integer"
      negotiationTimeout="TimeSpan"
      reconnectTransportOnFailure="Boolean"
            replayCacheSize="Integer"
      replayWindow="TimeSpan"
      sessionKeyRenewalInterval="TimeSpan"
      sessionKeyRolloverInterval="TimeSpan"
      timestampValidityDuration="TimeSpan" />
</security>

Attributi ed elementi

Attributi

Attributo Descrizione

detectReplays

Valore booleano che specifica se gli attacchi di tipo replay contro il canale vengono rilevati e gestiti automaticamente. L'impostazione predefinita è false.

inactivityTimeout

TimeSpan positivo che specifica il periodo di inattività del canale prima che scada. L'impostazione predefinita è "01:00:00".

issuedCookieLifeTime

TimeSpan specifica la durata di tutti i nuovi cookie di protezione. I cookie che superano la durata vengono riciclati e devono essere negoziati di nuovo. Il valore predefinito è "10:00:00".

maxCachedCookies

Un numero intero positivo che specifica il numero massimo di cookie che possono essere memorizzati nella cache. L'impostazione predefinita è 1000.

maxClockSkew

TimeSpan specifica la differenza massima di tempo tra gli orologi di sistema delle due parti che stanno comunicando. Il valore predefinito è "00:05:00".

Quando l'impostazione di questo valore è quella predefinita, il destinatario accetta i messaggi con timestamp relativi all'ora di invio precedenti o successivi all'ora in cui il messaggio è stato ricevuto. I messaggi che non superano il test dell'ora di invio vengono rifiutati. Questa impostazione viene utilizzata in combinazione con l'attributo replayWindow.

maxPendingSessions

Un numero intero positivo che specifica il numero massimo di sessioni di protezione in sospeso supportate dal servizio. Quando questo limite viene raggiunto, tutti i nuovi client ricevono errori SOAP. Il valore predefinito è 1000.

maxStatefulNegotiations

Un numero intero positivo che specifica il numero massimo di negoziazioni di protezione che possono essere attive contemporaneamente. Le sessioni di negoziazione che superano il limite vengono messe in coda e possono essere completate solo quando diventa disponibile uno spazio inferiore al limite. Il valore predefinito è 1024.

negotiationTimeout

Un valore TimeSpan che specifica la durata del criterio di protezione utilizzato dal canale. Quando il periodo scade, il canale negozia un nuovo criterio di protezione con il client. Il valore predefinito è "00:02:00".

reconnectTransportOnFailure

Valore booleano che specifica se le connessioni che utilizzano WS-Reliable Messaging tenteranno la riconnessione in caso di errori del trasporto. L'impostazione predefinita è true, la quale significa un numero infinito di tentativi di riconnessione. Il ciclo viene interrotto dal timeout di inattività che fa sì che il canale generi un'eccezione quando la riconnessione non è possibile.

replayCacheSize

Un numero intero positivo che specifica il numero di parametri nonce da utilizzare per il rilevamento di attacchi di tipo replay. Se questo limite viene superato, il nonce meno recente viene rimosso e viene creato un nuovo nonce per il messaggio nuovo. Il valore predefinito è 500000.

replayWindow

TimeSpan specifica la durata di validità dei singoli nonce dei messaggi.

Dopo questa durata, un messaggio inviato con lo stesso nonce di quello inviato precedentemente non verrà accettato. Questo attributo viene utilizzato in combinazione con l'attributo maxClockSkew per impedire attacchi di tipo replay. L'autore di un attacco può replicare un messaggio dopo che la finestra di replay è scaduta. Questo messaggio, tuttavia, non supererebbe il test maxClockSkew che rifiuta i messaggi con timestamp relativi all'ora di invio che differiscono di un tempo specificato in più o in meno rispetto all'ora in cui il messaggio è stato ricevuto.

sessionKeyRenewalInterval

TimeSpan specifica l'intervallo di tempo dopo il quale l'iniziatore rinnoverà la chiave per la sessione di protezione. L'impostazione predefinita è "10:00:00".

sessionKeyRolloverInterval

TimeSpan specifica l'intervallo di tempo per il quale la chiave della sessione precedente è valida nei messaggi in arrivo durante un rinnovo della chiave. Il valore predefinito è "00:05:00".

Durante il rinnovo della chiave, client e server devono inviare i messaggi utilizzando sempre la chiave disponibile più recente. Entrambe le parti accetteranno i messaggi in arrivo protetti con la chiave della sessione precedente fino alla scadenza del tempo di sostituzione.

timestampValidityDuration

TimeSpan positivo che specifica l'intervallo di tempo per il quale sono validi i singoli nonce dei messaggi. L'impostazione predefinita è "00:15:00".

Elementi figlio

Nessuno.

Elementi padre

Elemento Descrizione

<security> di <customBinding>

Specifica le opzioni di protezione per un'associazione personalizzata.

<bootstrapConversazioneProtetta>

Specifica i valori predefiniti utilizzati per iniziare un servizio di conversazione protetta.

Osservazioni

Le impostazioni sono locali perché non vengono pubblicate unitamente ai criteri di protezione del servizio e non influiscono sull'associazione del client.

Gli attributi seguenti dell'elemento localServiceSecuritySettings consentono di attenuare un attacco di tipo Denial of Service (DoS):

  • maxCachedCookies: controlla il numero massimo di token SecurityContextTokens temporali memorizzati dal server nella cache dopo la negoziazione SPNEGO o SSL.
  • issuedCookieLifetime: controlla la durata dei token SecurityContextTokens emessi dal server in seguito alla negoziazione SPNEGO o SSL. Il server memorizza nella cache il token SecurityContextTokens per questo periodo di tempo.
  • maxPendingSessions: controlla il numero massimo di conversazioni protette stabilite nel server, per cui però non sono stati elaborati messaggi dell'applicazione. Questa quota impedisce ai client di stabilire conversazioni protette nel servizio, facendo così in modo che il servizio mantenga lo stato per ogni client, senza mai utilizzare i client.
  • inactivityTimeout: controlla il periodo di tempo massimo in cui il servizio mantiene attiva una conversazione protetta senza mai ricevere un messaggio di un'applicazione. Questa quota impedisce ai client di stabilire conversazioni protette nel servizio, facendo così in modo che il servizio mantenga lo stato per ogni client, senza mai utilizzare i client.

In una sessione di conversazione protetta, entrambi gli attributi inactivityTimeout e receiveTimeout nell'associazione influiscono sul timeout della sessione. Il valore inferiore tra i due determina quando si verificano i timeout.

Vedere anche

Riferimenti

<associazionePersonalizzata>
LocalServiceSecuritySettingsElement
LocalServiceSettings
LocalServiceSettings
LocalServiceSecuritySettings
CustomBinding

Altre risorse

Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings
How To: Create a Custom Binding Using the SecurityBindingElement
Custom Binding Security