Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el ejemplo de federación se muestra la seguridad federada.
Detalles de ejemplo
Windows Communication Foundation (WCF) proporciona compatibilidad para implementar arquitecturas de seguridad federadas a través de wsFederationHttpBinding. wsFederationHttpBinding proporciona un enlace seguro, confiable e interoperable que implica el uso de HTTP como mecanismo de transporte subyacente para la comunicación de solicitud/respuesta, y Text/XML como formato de conexión para la codificación. Para obtener más información sobre la federación en WCF, vea Federación.
El escenario se compone de 4 piezas:
Servicio BookStore
BookStore STS
HomeRealm STS
Cliente de la librería
El servicio BookStore admite dos operaciones: BrowseBooks y BuyBook. Permite el acceso anónimo a la BrowseBooks operación, pero requiere acceso autenticado para acceder a la BuyBooks operación. La autenticación adopta la forma de un token emitido por el STS bookstore. El archivo de configuración para el Servicio de librería dirige los clientes a la STS BookStore mediante wsFederationHttpBinding.
<wsFederationHttpBinding>
<!-- This is the Service binding for the BuyBooks endpoint. It redirects clients to the BookStore STS -->
<binding name='BuyBookBinding'>
<security mode="Message">
<message>
<issuerMetadata
address='http://localhost/FederationSample/BookStoreSTS/STS.svc/mex' >
<identity>
<dns value ='BookStoreSTS.com'/>
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
A continuación, el STS BookStore requiere que los clientes se autentiquen mediante un token emitido por el STS HomeRealm. De nuevo, el archivo de configuración para el STS BookStore dirige los clientes al STS HomeRealm mediante wsFederationHttpBinding.
<wsFederationHttpBinding>
<!-- This is the binding for the clients requesting tokens from this STS. It redirects clients to the HomeRealm STS -->
<binding name='BookStoreSTSBinding'>
<security mode='Message'>
<message>
<issuerMetadata
address='http://localhost/FederationSample/HomeRealmSTS/STS.svc/mex' >
<identity>
<dns value ='HomeRealmSTS.com' />
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
La secuencia de eventos al acceder a la BuyBook operación es la siguiente:
El cliente se autentica en el STS homeRealm mediante credenciales de Windows.
HomeRealm STS emite un token que se puede usar para autenticarse en el STS bookStore.
El cliente se autentica en el STS bookstore mediante el token emitido por el STS homeRealm.
BookStore STS emite un token que se puede usar para autenticarse en el servicio BookStore.
El cliente se autentica en el servicio BookStore mediante el token emitido por el STS bookstore.
El cliente accede a la operación
BuyBook.
Consulte las instrucciones siguientes sobre cómo configurar y ejecutar este ejemplo.
Nota:
Debe tener permisos de escritura en el directorio wwwroot para ejecutar este ejemplo.
Para configurar, compilar y ejecutar el ejemplo
Abra la ventana de comandos del SDK. En la ruta de acceso del ejemplo, ejecute Setup.bat. Esto crea los directorios virtuales necesarios para el ejemplo e instala los certificados necesarios con los permisos adecuados.
Nota:
El archivo por lotes Setup.bat está diseñado para ejecutarse desde una consola de comandos del Windows SDK. Requiere que la variable de entorno MSSDK apunte al directorio donde está instalado el SDK. Esta variable de entorno se establece automáticamente dentro de un símbolo del sistema de Windows SDK. En Windows Vista, debes asegurarte de que la compatibilidad de administración de IIS 6.0 esté instalada porque la configuración usa scripts de administrador de IIS. La ejecución del script de configuración en Windows Vista requiere privilegios de administrador.
Abra FederationSample.sln en Visual Studio y seleccione Compilar solución en el menú Compilar . Esto compila los archivos de proyecto comunes, el servicio Bookstore, el STS de Bookstore, el STS de HomeRealm y los implementa en IIS. Esto también compila la aplicación cliente bookstore y coloca el archivo ejecutable BookStoreClient.exe en la carpeta FederationSample\BookStoreClient\bin\Debug.
Haga doble clic en BookStoreClient.exe. Se muestra la ventana BookStoreClient.
Puede examinar los libros disponibles en la librería haciendo clic en Examinar libros.
Para comprar un libro determinado, seleccione el libro de la lista y haga clic en Comprar libro. La aplicación se inicia y autentica mediante la autenticación de Windows con el servicio de token de seguridad HomeRealm.
El ejemplo está configurado para permitir que los usuarios compren libros que cuestan 15 USD o menos. Si intenta comprar libros que cuestan más de $15, el cliente recibe un mensaje de acceso denegado desde el servicio de almacén de libros.
Nota:
El ejemplo no actualiza el límite de crédito del usuario después de una compra. Puede comprar libros repetidamente dentro del límite de crédito del usuario (fijo).
Para realizar una limpieza
Ejecute Cleanup.bat. Esto elimina los directorios virtuales que se crearon durante la configuración y también quita los certificados instalados durante la instalación.