Consideraciones de seguridad para sesiones seguras
Debería considerar los elementos siguientes que afectan a la seguridad en la implementación de sesiones seguras. Para obtener más información sobre las consideraciones de seguridad Para obtener más información acerca de , vea Consideraciones de seguridad y Procedimientos recomendados acerca de seguridad en WCF.
Sesiones seguras y metadatos
Cuando se establece una sesión segura y la propiedad RequireCancellation está establecida como false, Windows Communication Foundation (WCF) envía una aserción mssp:MustNotSendCancel como parte de los metadatos en el documento de Lenguaje de descripción de servicios web (WSDL) para el extremo del servicio. La aserción mssp:MustNotSendCancel informa a los clientes de que el servicio no responde a las solicitudes para cancelar la sesión segura. Cuando la propiedad RequireCancellation está establecida como true, WCF no emite una aserción mssp:MustNotSendCancel en el documento WSDL. Se espera que los clientes envíen una solicitud de cancelación al servicio cuando dejen de necesitar la sesión segura. Cuando se genera un cliente con ServiceModel Metadata Utility Tool (Svcutil.exe), el código de cliente reacciona adecuadamente a la presencia o ausencia de la aserción mssp:MustNotSendCancel.
Conversaciones seguras y tokens personalizados
Hay algunos problemas con la mezcla de tokens personalizados y claves derivadas debido a la manera en que se define en la especificación WS-SecureConversation. La especificación dice que wsse:SecurityTokenReference es un elemento opcional que hace referencia al token derivado: “/wsc:DerivedKeyToken/wsse:SecurityTokenReference Este elemento opcional se utiliza para especificar tokens de contexto de seguridad, tokens de seguridad o la clave compartida o el secreto que se utilizan para la derivación. Si no se especifica, se supone que el destinatario puede determinar la clave compartida a partir del contexto del mensaje. Si no se puede determinar el contexto, se debería generar un error tal como wsc:UnknownDerivationSource”.
Esto significa que, si se desea derivar un token personalizado, se debería incluir el tipo de cláusula en un elemento SecurityTokenReference. Hay una opción para desactivar la derivación, pero el valor predeterminado es derivar las claves. Si no se incluye la clave, la serialización del token de clave derivado se realiza correctamente, pero, al intentar deserializarlo, se produce una excepción.
Consulte también
Tareas
Cómo deshabilitar sesiones seguras en WSFederationHttpBinding
Conceptos
Procedimientos recomendados acerca de seguridad en WCF