Id. de suceso: 0 puede registrarse al configurar un servicio Web basado en Web Services Enhancements 3.0 para usar una conversación segura: "error al procesar una respuesta de error saliente"


Síntomas


Considere el siguiente escenario. Configurar Microsoft Web Services Enhancements 3.0 (WSE 3.0)-basada en servicio Web para utilizar una conversación segura. Configurar el grupo de aplicaciones en servicios de Internet Information Server (IIS) para utilizar una cuenta de usuario personalizada para ejecutar el servicio Web. En este escenario, pueden anotarse los sucesos de Error siguientes:
Evento 1
Evento 2
Nota: En estos casos, la palabra "producido" es un error ortográfico de la palabra "ocurrió."

Causa


De forma predeterminada, WSE 3.0 utiliza el objeto SecurityContextToken con estado si configura el servicio Web para utilizar una conversación segura estableciendo la propiedad EstablishSecurityContext de la directiva en true. WSE 3.0 utiliza la API de protección de datos (DPAPI) para el estado del objeto SecurityContextToken de codificar y descodificar el estado del objeto SecurityContextToken . O bien, WSE 3.0 utiliza la DPAPI para la cookie del objeto SecurityContextToken de codificar y descodificar la cookie del objeto SecurityContextToken . Este problema se produce porque WSE 3.0 no puede llamar a DPAPI si no se carga el perfil de usuario de la identidad del grupo de aplicaciones.

Solución alternativa


Para evitar este problema, utilice uno de los métodos siguientes.

Método 1

Configurar la identidad del grupo de aplicaciones para que se ejecute como una cuenta de usuario para el que ya está cargado el perfil de usuario. Por ejemplo, configurar la identidad del grupo de aplicaciones para ejecutarse como la cuenta servicio de red.

Método 2

Cargar manualmente el perfil de usuario de la identidad del grupo de aplicaciones. Para ello, utilice uno de los métodos siguientes.

Método A

Siga estos pasos:
  1. Utilice una cuenta de usuario para iniciar sesión en el equipo y, a continuación, no cambie la cuenta de usuario.
  2. En esta cuenta de usuario, crear un servicio de Microsoft Windows o ejecutar un servicio de Windows.
  3. Configurar el servicio de Windows para que la cuenta de usuario puede interactuar con el escritorio.

Método B

Para cargar el perfil de usuario, llame a la función de LoadUserProfile .

Método 3

Deshabilitar el objeto SecurityContextToken con estado del servicio Web configurando el elemento statefulSecurityContextToken . Por ejemplo, puede utilizar el archivo de configuración de aplicación que contiene el código siguiente para deshabilitar los tokens de seguridad con estado.
<tokenIssuer>     <statefulSecurityContextToken enabled="false"/>   </tokenIssuer>

Método 4

Para configurar el servicio Web para utilizar una conversación segura, utilice un X509 de certificados o utilizar otro tipo de símbolo (token) de seguridad en lugar de utilizar la implementación de DPAPI predeterminada. Para ello, configure el elemento serviceToken en el archivo de configuración de cada servidor Web. Por ejemplo, el código siguiente configura el servicio Web para utilizar un X509 certificado en lugar de utilizar la implementación de DPAPI predeterminada.
<microsoft.web.services3>    <tokenIssuer>      <statefulSecurityContextToken enabled="true"/>      <serviceToken>        <add>          <KeyInfo>            <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">              <wsse:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier">bBwPfItvKp3b6TNDq+14qs58VJQ=</wsse:KeyIdentifier>            </wsse:SecurityTokenReference>          </KeyInfo>        </add>      </serviceToken>    </tokenIssuer>  </microsoft.web.services3>

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".

Más información


Cuando se envía un mensaje SOAP, se serializa el objeto SecurityContextToken con estado junto con una clave cifrada que se puede recuperar únicamente por el servicio Web. Por el contrario, la clave cifrada del objeto SecurityContextToken sin estado se almacena en caché por el cliente y el servicio Web. Por lo tanto, una cadena única que representa el token de seguridad SecurityContext caché debe enviarse en el mensaje SOAP. Cuando las cachés están disponibles, no habrá ningún problema. Si utiliza el objeto SecurityContextToken sin estado y se restablece el dominio de aplicación que aloja el servicio Web, se destruyen las cachés. Por lo tanto, se produce un error SOAP. Nota: Algunos escáneres de virus pueden provocar que se restablezca el dominio de aplicación.

Pasos para reproducir el problema

  1. Abra el ejemplo Quickstart de conversación segura de WSE 3.0. De forma predeterminada, este ejemplo es en la ubicación siguiente:
    drive:\Program Files\Microsoft WSE\v3.0\Samples\CS\QuickStart\Security\SecureConversation\Policy
  2. Configurar un grupo de aplicaciones para utilizar una cuenta de usuario personalizada para ejecutar el servicio Web de este ejemplo. Aún no se carga el perfil de usuario de la identidad del grupo de aplicaciones.
  3. Ejecute el ejemplo Quickstart de conversación segura de WSE 3.0.

Referencias


Para obtener más información acerca de cómo solucionar problemas de la DPAPI, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
309408 cómo solucionar problemas de la API de protección de datos (DPAPI)
Para obtener más información acerca de protección de datos de Windows, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):Para obtener más información acerca de la función de LoadUserProfile , visite el siguiente sitio Web de MSDN: