Contexte de sécurité

Les contextes de sécurité permettent l’établissement d’un contexte de sécurité de message conformément à WS-SecureConversation. Ce contexte peut ensuite être utilisé pour sécuriser les messages en guise d’alternative à la sécurité one-shot où les informations d’identification sont transmises pour chaque requête. Le contexte de sécurité établi est une méthode plus efficace de sécurisation des messages lorsque plusieurs messages sont échangés.

Les contextes de sécurité nécessitent la présence d’informations d’identification de sécurité d’amorçage utilisées pour sécuriser les messages envoyés dans le contexte. Les structures WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING, WS_XML_TOKEN_MESSAGE_SECURITY_BINDING et WS_USERNAME_MESSAGE_SECURITY_BINDING peuvent être utilisées à cet effet.

Les contextes de sécurité sont une fonctionnalité de sécurité de message et sont configurés par le biais de liaisons de sécurité de message.

Client

Côté client, le contexte de sécurité est lié à un canal particulier. Il est configuré à l’aide du WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING. Le comportement et la durée de vie du contexte sont déterminés par le canal. Lorsque le premier message est envoyé sur le canal, le contexte de sécurité est établi. Après cela, le contexte est renouvelé de manière proactive à un intervalle configurable. Si le serveur retourne une erreur indiquant que le contexte nécessite un renouvellement, le contexte est renouvelé lorsque le message suivant est envoyé. Si le canal est à l’état ouvert, le contexte est annulé par un message d’annulation lorsque le canal est fermé.

Serveur

Sur le serveur, un contexte de sécurité est configuré de la même façon que sur le client. Toutefois, il n’est lié à aucun canal particulier. Au lieu de cela, tous les canaux créés pour l’écouteur qui a le WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING défini sont capables de recevoir des messages avec l’un des contextes de sécurité qui ont été établis sur les canaux de cet écouteur.

Lorsqu’un message arrive sur un canal qui prend en charge les contextes de sécurité, le contexte utilisé par ce message peut être obtenu en appelant la fonction WsGetMessageProperty avec le WS_MESSAGE_PROPERTY_SECURITY_CONTEXT. La valeur récupérée peut être utilisée avec WsRevokeSecurityContext et WsGetSecurityContextProperty.

Métadonnées

La structure WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT est utilisée pour extraire la stratégie de contexte de sécurité à partir des métadonnées. Pour plus d’informations, consultez Importation de métadonnées.

Les éléments d’API suivants sont utilisés avec des contextes de sécurité.

Énumération Description
WS_SECURITY_CONTEXT_PROPERTY_ID Identifie une propriété d’un objet de contexte de sécurité.

 

Fonction Description
WsGetSecurityContextProperty Obtient une propriété du contexte de sécurité spécifié.
WsRevokeSecurityContext Révoque un contexte de sécurité.

 

Handle Description
WS_SECURITY_CONTEXT Type opaque utilisé pour référencer un objet de contexte de sécurité.

 

Structure Description
WS_SECURITY_CONTEXT_PROPERTY Définit une propriété d’un WS_SECURITY_CONTEXT.