Partager via


<localServiceSettings>, élément

Spécifie les paramètres de sécurité d'un service local pour cette liaison.

Hiérarchie de schéma

<system.serviceModel>
  <bindings>
    <customBinding>
      <binding>
        <security> de <customBinding>

Syntaxe

<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>

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description

detectReplays

Valeur booléenne qui spécifie si les attaques par relecture contre le canal sont détectées et traitées automatiquement. La valeur par défaut est false.

inactivityTimeout

TimeSpan positif qui spécifie la durée d'inactivité du canal avant qu'il n'expire. La valeur par défaut est « 01:00:00 ».

issuedCookieLifeTime

TimeSpan qui spécifie la durée de vie de tous les nouveaux cookies de sécurité. Les cookies qui dépassent leur durée de vie sont recyclés et doivent être renégociés. La valeur par défaut est « 10:00:00 ».

maxCachedCookies

Entier positif qui spécifie le nombre maximal de cookies pouvant être mis en cache. La valeur par défaut est 1 000.

maxClockSkew

TimeSpan qui spécifie la différence de temps maximale entre les horloges système des deux parties communicantes. La valeur par défaut est « 00:05:00 ».

Lorsque la valeur par défaut est définie, le récepteur accepte des messages dont l'horodatage d'envoi diffère au maximum de 5 minutes de son horodatage de réception. Les messages qui échouent au test de l'heure d'envoi sont rejetés. Ce paramètre est utilisé conjointement à l'attribut replayWindow.

maxPendingSessions

Entier positif qui spécifie le nombre maximal de sessions de sécurité en attente que le service prend en charge. Lorsque cette limite est atteinte, tous les nouveaux clients reçoivent des erreurs SOAP. La valeur par défaut est 1 000.

maxStatefulNegotiations

Entier positif qui spécifie le nombre de négociations de sécurité qui peuvent être actives en même temps. Au-delà de ce nombre limite, les sessions de négociation sont mises en file d'attente et peuvent être effectuées uniquement lorsqu'un espace sous la limite devient disponible. La valeur par défaut est 1 024.

negotiationTimeout

TimeSpan qui spécifie la durée de vie de la stratégie de sécurité utilisée par canal. Lorsque ce temps arrive à expiration, le canal renégocie avec le client une nouvelle stratégie de sécurité. La valeur par défaut est « 00:02:00 ».

reconnectTransportOnFailure

Valeur booléenne qui spécifie si des connexions utilisant la messagerie WS-Reliable tentent une reconnexion après des incidents de transport. La valeur par défaut est true, ce qui signifie que le nombre de tentatives de reconnexion est infini. Le cycle s'arrête si le délai d'attente expire suite à une inactivité prolongée, après laquelle le canal lève une exception lorsqu'il ne peut pas être reconnecté.

replayCacheSize

Entier positif qui spécifie le nombre de pointeurs en cache utilisés pour la détection de relecture. Si cette limite est dépassée, le pointeur le plus ancien est supprimé et un pointeur est créé pour le nouveau message. La valeur par défaut est 500 000.

replayWindow

TimeSpan qui spécifie la durée de validité des pointeurs de messages individuels.

Une fois cette durée écoulée, un message envoyé avec le même pointeur que celui envoyé précédemment ne sera pas accepté. Cet attribut est utilisé conjointement à l'attribut maxClockSkew pour empêcher des attaques par relecture. Un intrus pourrait relire un message une fois que sa fenêtre de relecture a expiré. Toutefois, ce message échouerait au test maxClockSkew qui rejette les messages portant un horodatage d'envoi qui diffère au maximum d'une heure par rapport à l'horodatage de réception du message.

sessionKeyRenewalInterval

TimeSpan qui spécifie le délai d'attente au terme duquel l'initiateur renouvellera la clé de la session de sécurité. La valeur par défaut est « 10:00:00 ».

sessionKeyRolloverInterval

TimeSpan qui spécifie la période de validité d'une clé de session précédente sur les messages entrants pendant un renouvellement de clé. La valeur par défaut est « 00:05:00 ».

Pendant un renouvellement de clé, le client et le serveur doivent toujours envoyer des messages à l'aide de la clé disponible la plus récente. Les deux correspondants doivent accepter des messages entrants sécurisés avec la clé de session précédente jusqu'à l'expiration de l'heure de substitution.

timestampValidityDuration

TimeSpan positif qui spécifie la durée de validité d'un horodatage. La valeur par défaut est « 00:15:00 ».

Éléments enfants

Aucun.

Éléments parents

Élément Description

<security> de <customBinding>

Spécifie les options de sécurité pour une liaison personnalisée.

<secureConversationBootstrap>

Spécifie les valeurs par défaut utilisées pour initialiser un service de conversation sécurisé.

Notes

Les paramètres sont locaux car ils ne sont pas publiés dans le cadre de la stratégie de sécurité du service et n'affectent pas la liaison du client.

Les attributs suivants de l'élément localServiceSecuritySettings peuvent aider à atténuer une attaque de sécurité par déni de service (DOS) :

  • maxCachedCookies : contrôle le nombre maximal de SecurityContextTokens limités par le temps mis en cache par le serveur après une négociation SSL ou SPNEGO.

  • issuedCookieLifetime : contrôle la durée de vie des SecurityContextTokens émis par le serveur après une négociation SSL ou SPNEGO. Le serveur met en cache les SecurityContextTokens pendant cette période.

  • maxPendingSessions : contrôle le nombre maximal de conversations sécurisées établies au niveau du serveur mais pour lesquelles aucun message d'application n'a été traité. Ce quota empêche les clients d'établir des conversations sécurisées au niveau du service, forçant ainsi le service à conserver l'état de chaque client, sans jamais les utiliser toutefois.

  • inactivityTimeout : contrôle le temps maximum pendant lequel le service garde une conversation sécurisée active sans jamais recevoir dessus un message d'application. Ce quota empêche les clients d'établir des conversations sécurisées au niveau du service, forçant ainsi le service à conserver l'état de chaque client, sans jamais les utiliser toutefois.

Dans une session de conversation sécurisée, notez que les attributs inactivityTimeout et receiveTimeout sur la liaison affectent le délai d'attente de la session. Le plus court des deux détermine le dépassement du délai d'attente.

Voir aussi

Référence

<customBinding>
LocalServiceSecuritySettingsElement
LocalServiceSettings
LocalServiceSettings
LocalServiceSecuritySettings
CustomBinding

Autres ressources

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