Proteger servicios de flujo de trabajo

Este tema es aplicable a Windows Workflow Foundation 4.

En el ejemplo del servicio de flujo de trabajo seguro se muestran los siguientes procedimientos:

  • Crear un servicio de flujo de trabajo básico mediante las actividades Receive y SendReply.

  • Utilizar la configuración de Windows Communication Foundation (WCF) para definir extremos seguros para que los use el servicio de flujo de trabajo.

  • Crear notificaciones dentro de una directiva personalizada y utilizar ServiceAuthorizationManager para validarlas.

Demostraciones

Usar la seguridad WCF para proteger la comunicación entre el cliente y el servicio de flujo de trabajo, con autorización basada en notificaciones

Análisis

En este ejemplo se muestra el uso de la infraestructura de seguridad de WCF para proteger un servicio de flujo de trabajo de la misma manera que se haría con un servicio de WCF normal. Concretamente, usa una notificación personalizada para la autorización. En este caso, utiliza WSHttpBinding y la seguridad de modo de mensaje con credenciales de Windows.

La interfaz IAuthorizationPolicy personalizada (CustomNameCheckerPolicy) comprueba el nombre de usuario de Windows del cliente y busca un carácter concreto. Si ese carácter está presente, crea y agrega la notificación a la clase EvaluationContext. Al llevar esto a cabo, la directiva personalizada indica que el cliente tiene este carácter en el nombre de usuario. Esta notificación se puede consultar mientras dura la llamada. Puede encontrar el carácter en Constants.cs.

La directiva de autorización busca la notificación dentro de SecureWorkFlowAuthZManager. Si la encuentra, devuelve true y permite que el flujo de trabajo continúe. De lo contrario, devuelve false, lo que produce que se devuelva un mensaje de acceso denegado al cliente. En el contexto hay otras notificaciones, que también se pueden examinar dentro de SecureWorkFlowAuthZManager.

Para ejecutar este ejemplo

  1. Ejecute Visual Studio 2010 con privilegios de administrador.

  2. Cargue SecuringWorkflowServices.sln en Visual Studio 2010.

  3. Para compilar la solución, presione F6.

  4. Establezca el proyecto Service como proyecto de inicio para la solución.

  5. Para iniciar el servicio sin depurar, presione CTRL+F5.

  6. Establezca el proyecto Client como proyecto de inicio para la solución.

  7. Para iniciar el cliente sin depurar, presione CTRL+F5.

Ee943756.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<unidadDeInstalación>:\WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.

<unidadDeInstalación>:\WF_WCF_Samples\WF\Scenario\Services\SecuringWorkflowServices