Implantando serviços e aplicativos federados do ACS no Azure
Aplica-se A
Access Control do Active Directory do Microsoft Azure (também conhecido como Access Control Service ou ACS)
Windows Identity Foundation (WIF)
Microsoft Azure
Resumo
Este tópico consolida as diretrizes que você deve levar em conta ao desenvolver aplicativos e serviços que usam ACS e que serão implantados no Azure.
Objetivos
Solucionar as portas geradas dinamicamente com o Emulador de Computação.
Implante o runtime do Windows Identity Foundation (WIF) no Azure.
Criptografia de cookies utilizando RSA.
Configure assemblies invocados por meio da reflexão a serem implantados no Azure.
Solucionar as portas geradas dinamicamente com o Emulador de Computação
Essa seção é relevante quando você cria aplicativos Web. E não é relevante quando você cria serviços Web. O Emulator de computação faz parte das ferramentas do SDK do Azure. Você pode usá-lo para executar, testar, depurar e ajustar seu aplicativo antes de implantá-lo como um serviço hospedado no Azure. No Emulador de Computação, não é possível alocar um endereço IP exclusivo. O Emulador de Computação tenta atribuir a porta solicitada. Se essa porta não estiver disponível, ele alocará o próximo número de porta disponível. Isso significa que, no Emulador de Computação, seu serviço pode ser atribuído a um número de porta diferente daquele especificado no arquivo de definição. Para obter mais informações sobre Emulator de Computação, consulte a visão geral do Windows Emulator de Computação do Azure (https://go.microsoft.com/fwlink/?LinkId=221212).
Se a Computação Emulator alocar um endereço IP diferente do endereço IP configurado como a URL de Retorno no Portal de Gerenciamento do ACS, o ACS redirecionará as solicitações autenticadas para a URL configurada no campo URL de Retorno da configuração de terceira parte confiável, mas nenhuma página correspondente nessa URL existirá. Consequentemente, você verá uma página em branco.
Para solucionar esse comportamento, configure a porta pública do ponto de extremidade do aplicativo Web na nuvem como uma porta disponível em seu computador. Dessa forma, o Emulador de Computação não atribuirá uma porta aleatória para evitar uma colisão.
Para configurar o ponto de extremidade para usar uma porta disponível
Para abrir o prompt de comando, clique em Iniciar, digite cmd e pressione Enter.
Execute o seguinte comando para exibir a lista de endereços IP do host local com portas usadas: netstat –a –n | findstr 127.0.0.1
Percorra a lista e identifique uma porta que não esteja em uso. Você usará essa porta nas etapas a seguir.
No Gerenciador de soluções, clique duas vezes em sua função, que está na pasta Regras do projeto em nuvem. A página de propriedades da função é exibida.
Na página Propriedades da Função da Web , clique na guia Pontos de Extremidade .
No arquivo **Porta Pública **, especifique o valor da porta que você identificou na Etapa 3.
Para salvar seu trabalho, pressione Ctrl+S.
Implantar o tempo de execução do Windows Identity Foundation no Windows Azure
O WIF (Windows Identity Foundation) é um tempo de execução fora de banda que deve ser instalado no computador para que seu aplicativo com reconhecimento de declaração possa usá-lo. O WIF não é instalado por padrão em instâncias do Azure. Para executar seu aplicativo com reconhecimento de declarações de nuvem, você deve disponibilizar o runtime do WIF na instância do Azure. A maneira mais fácil de fazer isso é incluir o assembly do WIF com o pacote de implantação.
Para incluir o assembly do WIF com o pacote de implantação do Windows Azure
No Gerenciador de soluções, localize seu aplicativo com reconhecimento de declaração.
Expanda a pasta Referências.
Localize o assembly Microsoft.IdentityModel na pasta Referências.
Clique com o botão direito do mouse no assembly e clique em Propriedades.
Na janela de propriedades, especifique **Copiar Local ** como True e Versão Específica como False.
Criptografia de cookies utilizando RSA
Essa seção é relevante quando você cria aplicativos Web. Por padrão, o WIF protege os cookies criptograficamente usando DPAPI (interface de programação de aplicativos de proteção de dados). O DPAPI não está disponível no Azure. Para garantir que seu aplicativo Web com reconhecimento de declarações de nuvem funcione corretamente quando ele é implantado no Azure, você deve adicionar funcionalidade de criptografia de cookies usando RSA.
Para criptografar cookies usando o RSA
No Gerenciador de soluções, localize seu aplicativo Web com reconhecimento de declaração na nuvem.
Abra o arquivo global.asax.cs, que é o código por trás do arquivo global.asax, no editor Visual Studio.
Adicione as seguintes declarações:
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Web; using Microsoft.IdentityModel.Web.Configuration;
Adicione os códigos a seguir:
void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e) { // // Use the <serviceCertificate> to protect the cookies that are // sent to the client. // List<CookieTransform> sessionTransforms = new List<CookieTransform>(new CookieTransform[] { new DeflateCookieTransform(), new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate), new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate) }); SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly()); e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler); } void Application_Start(object sender, EventArgs e) { FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;
Observação
se você já tiver adicionado o manipulador de eventos Application_Start, atualize-o para incluir esse código.
Salve seu trabalho.
Configure assemblies que são invocados por meio de reflexão para implantação no Windows Azure
Em alguns casos, os assemblies são invocados por meio de reflexão. Por exemplo, ao desenvolver os serviços wcf REST (transferência de estado representacional) ou HttpModules que inspecionam os tokens SWT de entrada. Para garantir que esses assemblies sejam implantados no Azure, você deve executar etapas extras para adicioná-los ao pacote de implantação.
Para adicionar assemblies que são invocados por meio de reflexão ao pacote de implantação do Windows Azure
Expanda a pasta bin do serviço ou aplicativo Web com reconhecimento de declaração na nuvem.
Clique com o botão direito do mouse no assembly e clique em Incluir no projeto.
Clique com o botão direito do mouse na mesma biblioteca e clique em Propriedades.
Na janela Propriedades, clique em Copiar se for mais recente para Copiar para diretório de saída.