Partager via


Considérations relatives à la sécurité pour les sessions sécurisées

Vous devez prendre en compte les éléments suivants qui affectent la sécurité lors de l’implémentation de sessions sécurisées. Pour plus d’informations sur les considérations de sécurité, consultez Considérations relatives à la sécurité et meilleures pratiques en matière de sécurité.

Sécuriser les sessions et les métadonnées

Lorsqu'une session sécurisée est établie et que la propriété RequireCancellation est définie sur false, Windows Communication Foundation (WCF) envoie une assertion mssp:MustNotSendCancel dans le cadre des métadonnées du document de langue de description des services Web (WSDL) pour l'endpoint du service. L’assertion mssp:MustNotSendCancel informe les clients que le service ne répond pas aux demandes d’annulation de la session sécurisée. Lorsque la propriété RequireCancellation est définie sur true, alors WCF n’émet pas d’assertion mssp:MustNotSendCancel dans le document WSDL. Les clients sont censés envoyer une demande d’annulation au service lorsqu’ils n’ont plus besoin de la session sécurisée. Lorsqu’un client est généré à l’aide de l’outil Utilitaire de métadonnées ServiceModel (Svcutil.exe),le code client réagit de manière appropriée à la présence ou à l’absence de l’assertion mssp:MustNotSendCancel .

Conversations sécurisées et jetons personnalisés

Il y a des problèmes liés au mélange de jetons personnalisés et de clés dérivées en raison de la façon dont cela est défini dans la spécification WS-SecureConversation. La spécification indique qu’il wsse:SecurityTokenReference s’agit d’un élément facultatif qui fait référence au jeton dérivé : «/wsc:DerivedKeyToken/wsse:SecurityTokenReference Cet élément facultatif est utilisé pour spécifier le jeton de contexte de sécurité, le jeton de sécurité ou la clé/secret partagé utilisé pour la dérivation. S’il n’est pas spécifié, il est supposé que le destinataire peut déterminer la clé partagée à partir du contexte de message. Si le contexte ne peut pas être déterminé, une erreur telle que wsc:UnknownDerivationSource doit être déclenchée. »

Cela signifie que si vous souhaitez qu’un jeton personnalisé soit dérivé, vous devez encapsuler son type de clause dans un SecurityTokenReference élément. Il existe une option permettant de désactiver la dérivation, mais la valeur par défaut consiste à dériver des clés. Si vous ne parvenez pas à encapsuler la clé, la sérialisation du jeton de clé dérivé aboutit, mais la tentative de désérialisation de ce jeton lève une exception.

Voir aussi