Esta documentação foi arquivada e não está sendo atualizada.

Implantando aplicativos e serviços federados do ACS no Azure

Atualizado: junho de 2015

  • Access Control do Active Directory do Microsoft Azure (também conhecido como Access Control Service ou ACS)

  • Windows Identity Foundation (WIF)

  • Microsoft Azure

Este tópico consolida as diretrizes que você deve levar em consideração ao desenvolver aplicativos e serviços que usam o ACS e que serão implantados no Azure.

  1. Lidar com portas geradas dinamicamente com o Emulador de Computação.

  2. Implantar o tempo de execução Windows Identity Foundation (WIF) no Azure.

  3. Criptografar cookies usando RSA.

  4. Configurar assemblies invocadas por meio da reflexão para implantação no Azure.

Esta seção é relevante quando você cria aplicativos Web. Não é relevante quando você cria serviços Web. O Emulador de Computação faz parte das ferramentas de 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 aloca o próximo número de porta com a melhor disponibilidade. Isso significa que no Emulador de Computação, seu serviço pode receber um número de porta diferente do número de porta que você especificou no arquivo de definição. Para obter mais informações sobre o Emulador de Computação, consulte Visão geral do Emulador de Computação do Windows Azure (http://go.microsoft.com/fwlink/?LinkId=221212).

Se o Emulador de Computação 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 à URL configurada no campo URL de Retorno da configuração da terceira parte confiável, mas nenhuma página correspondente existirá nessa URL. Como resultado, você receberá uma página em branco.

Para solucionar esse comportamento, configure a porta pública do ponto de extremidade de seu aplicativo Web na nuvem para uma porta disponível em seu computador. Assim, o Emulador de Computação não atribuirá uma porta aleatória para evitar uma colisão.

  1. Para abrir o prompt de comando, clique em Iniciar, digite cmd e pressione Enter.

  2. Execute o seguinte comando para exibir a lista de endereços IP do host local com as portas usadas: netstat –a –n | findstr 127.0.0.1

  3. Examine a lista e identifique uma porta que não esteja sendo usada. Você usará essa porta nas etapas seguintes.

  4. No Gerenciador de Soluções, clique duas vezes em sua função, localizada na pasta Funções no projeto na nuvem. A página de propriedades de função se abrirá.

  5. Na página Propriedades de Função da Web, clique na guia Pontos de Extremidade.

  6. No arquivo Porta Pública, especifique o valor da porta identificado na Etapa 3.

  7. Para salvar seu trabalho, pressione Ctrl+S.

O Windows Identity Foundation (WIF) é um tempo de execução fora de banda que precisa ser instalado no computador de modo que seu aplicativo com reconhecimento de declarações possa usá-lo. O WIF não está instalado por padrão em instâncias do Azure. Para executar seu aplicativo na nuvem com reconhecimento de declarações, você precisa disponibilizar o tempo de execução WIF na instância do Azure. A maneira mais fácil de se fazer isso é incluir o assembly do WIF com o pacote de implantação.

  1. No Gerenciador de Soluções, localize seu aplicativo com reconhecimento de declarações.

  2. Expanda a pasta Referências

  3. Localize o assembly Microsoft.IdentityModel na pasta Referências.

  4. Clique com o botão direito do mouse no assembly e clique em Propriedades.

  5. Na janela de propriedades, especifique Cópia Local como Verdadeiro e Versão Específica como Falso.

Esta seção é relevante quando você cria aplicativos Web. Por padrão, o WIF protege criptograficamente os cookies usando a interface de programação de aplicativos para proteção de dados (DPAPI). A DPAPI não está disponível no Azure. Para garantir que seu aplicativo com reconhecimento de declarações na nuvem funcione corretamente quando for implantado no Azure, adicione a funcionalidade de criptografia de cookies usando RSA.

  1. No Gerenciador de Soluções, localize seu aplicativo Web com reconhecimento de declarações na nuvem.

  2. Abra o arquivo global.asax.cs, que é o código por trás do arquivo global.asax, no editor do Visual Studio.

  3. Adicione as seguintes declarações:

    using Microsoft.IdentityModel.Tokens;
    using Microsoft.IdentityModel.Web;
    using Microsoft.IdentityModel.Web.Configuration;
    
  4. Adicione o seguinte código:

    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;
    
    noteObservação
    Se você já tiver adicionado o manipulador de eventos Application_Start, você pode atualizá-lo para incluir esse código.

  5. Salve seu trabalho.

Em alguns casos, os assemblies são invocados por meio de reflexão, por exemplo, ao desenvolver serviços wcf de REST (Representational State Transfer) ou HttpModules que inspecionam tokens de SWT de entrada. Para assegurar a implantação desses assemblies no Azure, é necessário executar etapas extras para adicioná-los ao pacote de implantação.

  1. Expanda a pasta bin do aplicativo ou serviço Web com reconhecimento de declarações na nuvem.

  2. Clique com o botão direito do mouse no assembly e clique em Incluir no Projeto.

  3. Clique com o botão direito do mouse na mesma biblioteca e clique em Propriedades.

  4. Na janela Propriedades, clique em Copiar se for mais novo em Copiar para o Diretório de Saída.

Consulte também

Mostrar: