Share via


Ejemplo de federación

Download sample

Windows Communication Foundation (WCF) proporciona compatibilidad para la implementación de arquitecturas de seguridad federadas a través del wsFederationHttpBinding. El wsFederationHttpBinding proporciona un enlace seguro, fiable e interoperable que implica el uso de HTTP como mecanismo de transporte subyacente para la comunicación de solicitud-respuesta, y Text/XML, como el formato de conexión para la codificación. Este ejemplo muestra la seguridad aliada. Para obtener más información sobre el aliadoWCF, vea Federation in Windows Communication Foundation.

El escenario se compone de 4 partes:

  • Servicio de la librería

  • STS BookStore

  • STS HomeRealm

  • Cliente de librería

El servicio de librería admite dos operaciones, BrowseBooks y BuyBook. Permite el acceso anónimo a la operación de BrowseBooks, pero exige al acceso autenticado para tener acceso a la operación de BuyBooks. La autenticación toma el formulario 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='https://localhost/FederationSample/BookStoreSTS/STS.svc/mex' >
                    <identity>
                        <dns value ='BookStoreSTS.com'/>
                    </identity>
                </issuerMetadata>
            </message>
        </security>
    </binding>
</wsFederationHttpBinding>

STS BookStore requiere a continuación que los clientes se autentiquen mediante un token emitido por el STS HomeRealm. De nuevo, el archivo de configuración para 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='https://localhost/FederationSample/HomeRealmSTS/STS.svc/mex' >
                    <identity>
                        <dns value ='HomeRealmSTS.com' />
                    </identity>
                </issuerMetadata>
            </message>
        </security>
    </binding>
</wsFederationHttpBinding>

La secuencia de eventos, al tener acceso a la operación de BuyBook, es como sigue:

  1. El cliente autentica el STS HomeRealm mediante las credenciales de Windows.

  2. El STS HomeRealm emite un token que se puede utilizar para autenticar el STS BookStore.

  3. El cliente autentica el STS BookStore mediante el token emitido por el STS HomeRealm.

  4. El STS BookStore emite un token que se puede utilizar para autenticar el servicio BookStore.

  5. El cliente autentica el servicio de BookStore mediante el token emitido por el STS BookStore.

  6. El cliente tiene acceso a la operación de BuyBook.

Vea las instrucciones siguientes sobre cómo configurar y ejecutar este ejemplo.

Para configurar, generar y ejecutar el ejemplo

  1. Abra la ventana de comandos de SDK. En la ruta de acceso del ejemplo, ejecute Setup.bat. Esto crea directorios virtuales requeridos para obtener el ejemplo e instala los certificados necesarios con permisos adecuados.

    Nota

    El archivo por lotes Setup.bat está diseñado para ejecutarse desde el símbolo del sistema de Windows SDK. Requiere que el punto de variable de entorno de MSSDK 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, debe asegurarse de que se instala Compatibilidad de Administración IIS 6.0, porque la instalación utiliza los scripts de administrador de IIS. Al ejecutar el script de instalación en Windows Vista, se requieren privilegios de administrador.

  2. Abra FederationSample.sln en Visual Studio y seleccione Generar solución en el menú Generar. Esto genera los archivos de proyecto comunes, servicio Bookstore, STS Bookstore, STS HomeRealm, y los implementa en IIS. Esto también genera la aplicación cliente Bookstore y coloca el BookStoreClient.exe ejecutable en la carpeta FederationSample\BookStoreClient\bin\Debug.

  3. Haga doble clic en BookStoreClient.exe. Se muestra la ventana BookStoreClient.

    1. Puede examinar los libros disponibles en la librería haciendo clic en Examinar libros.

    2. Para comprar un libro determinado, seleccione el libro en 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 de HomeRealm.

      El ejemplo se configura para permitirles a los usuarios comprar libros que cuesten 15$ o menos. Intentar comprar libros que cuesten más de 15 $ provoca que el cliente reciba un mensaje de acceso denegado en 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 repetidamente los libros dentro del límite de crédito del usuario (corregido).

  4. Ejecute Cleanup.bat. Esto elimina los directorios virtuales que se crearon durante la instalación y también quita los certificados instalados durante la instalación.

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.