Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo de Federação demonstra a segurança federada.
Detalhes de exemplo
O WCF (Windows Communication Foundation) oferece suporte para implantar arquiteturas de segurança federadas por meio do wsFederationHttpBinding. O wsFederationHttpBinding oferece uma associação segura, confiável e interoperável que envolve o uso de HTTP como o mecanismo de transporte subjacente para comunicação de solicitação/resposta e Text/XML como o formato de transmissão para codificação. Para obter mais informações sobre Federação no WCF, consulte Federação.
O cenário é composto por 4 partes:
Serviço BookStore
BookStore STS
HomeRealm STS
Cliente BookStore
O serviço BookStore dá suporte a duas operações BrowseBooks e BuyBook. Ele permite acesso anônimo à BrowseBooks operação, mas requer acesso autenticado para acessar a BuyBooks operação. A autenticação assume a forma de um token emitido pelo BookStore STS. O arquivo de configuração do Serviço BookStore aponta clientes para o BookStore STS usando o 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>
O BookStore STS exige que os clientes se autentiquem usando um token emitido pelo HomeRealm STS. Novamente, o arquivo de configuração do BookStore STS aponta clientes para o HomeRealm STS usando o 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>
A sequência de eventos ao acessar a operação BuyBook é a seguinte:
O cliente é autenticado no HomeRealm STS usando credenciais do Windows.
O HomeRealm STS emite um token que pode ser usado para autenticar no BookStore STS.
O cliente é autenticado no BookStore STS usando o token emitido pelo HomeRealm STS.
O BookStore STS emite um token que pode ser usado para autenticar no Serviço BookStore.
O cliente é autenticado no serviço BookStore usando o token emitido pelo BookStore STS.
O cliente acessa a operação
BuyBook.
Confira as instruções a seguir sobre como configurar e executar este exemplo.
Observação
Você deve ter permissões de gravação no diretório wwwroot para executar este exemplo.
Para configurar, compilar e executar o exemplo
Abra a janela de comando do SDK. No caminho de exemplo, execute Setup.bat. Isso cria os diretórios virtuais necessários para o exemplo e instala os certificados necessários com permissões apropriadas.
Observação
O arquivo de lote Setup.bat foi projetado para ser executado a partir de um prompt de comando do SDK do Windows. Ele requer que a variável de ambiente MSSDK aponte para o diretório onde o SDK está instalado. Essa variável de ambiente é definida automaticamente em um Prompt de Comando do SDK do Windows. No Windows Vista, você deve garantir que a compatibilidade de gerenciamento do IIS 6.0 esteja instalada porque a configuração usa scripts de administrador do IIS. Executar o script de configuração no Windows Vista requer privilégios de administrador.
Abra FederationSample.sln no Visual Studio e selecione Criar Solução no menu Compilar . Isso cria os arquivos de projeto comuns, o serviço Bookstore, o BOOKSTORE STS, o HomeRealm STS e os implanta no IIS. Isso também cria o aplicativo cliente da Livraria e coloca o executável BookStoreClient.exe na pasta FederationSample\BookStoreClient\bin\Debug.
Clique duas vezes em BookStoreClient.exe. A janela BookStoreClient é exibida.
Você pode procurar os livros disponíveis na livraria clicando em Procurar Livros.
Para comprar um livro específico, selecione o livro na lista e clique em Comprar Livro. O aplicativo é iniciado e autenticado usando a autenticação do Windows com o Serviço de Token de Segurança do HomeRealm.
O exemplo é configurado para permitir que os usuários comprem livros que custam US$ 15 ou menos. A tentativa de comprar livros que custam mais de US$ 15 resulta no cliente recebendo uma mensagem de Acesso Negado do Serviço de Repositório de Livros.
Observação
O exemplo não atualiza o limite de crédito do usuário após uma compra. Você pode comprar livros repetidamente dentro do limite de crédito (fixo) do usuário.
Para limpar
Execute o Cleanup.bat. Isso exclui os diretórios virtuais que foram criados durante a configuração e também remove os certificados instalados durante a instalação.