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

Exemplo de código: Página de logon personalizada do ASP.NET MVC 3

Publicado: maio de 2011

Atualizado: junho de 2015

Aplica-se a: Azure

Esse exemplo ilustra como criar um logon personalizado ou página de Home Realm Discovery em um aplicativo ASP.NET MVC3 que utiliza o Access Control do Active Directory do Microsoft Azure (também conhecido como Access Control Service ou ACS). O código para esse exemplo está localizado no subdiretório MVC3CustomSignInPage (C#\Websites\MVC3CustomSignInPage) do pacote Exemplos de código do Access Control (ACS) do Active Directory do Microsoft Azure.

Para executar o exemplo, é necessário:

  1. Uma conta no portal do Azure e um Namespace do Access Control.

  2. Visual Studio 2010 (qualquer versão)

  3. ASP .NET MVC3 (http://www.asp.net/mvc/mvc3)

  4. Windows Identity Foundation SDK

Para obter mais detalhes, consulte Pré-requisitos do ACS (http://go.microsoft.com/fwlink/?LinkId=221065).

A configuração do ACS exigida para este exemplo pode ser realizada no Portal de Gerenciamento ACS ou no Serviço de Gerenciamento ACS. Este tópico descreve duas opções.

  1. Vá para o Portal de Gerenciamento do Microsoft Azure(https://manage.WindowsAzure.com), entre e, em seguida, clique em Active Directory. (Dica de solução de problemas: o item "Active Directory" está ausente ou indisponível)

  2. Para criar um namespace do Access Control clique em Novo, clique em Serviços de Aplicativo, clique em Access Control, e depois em Criação Rápida. (Or, clique em Namespaces do Access Control antes de clicar em Novo.)

  3. Para gerenciar um namespace do Access Control, selecione o namespace e clique em Gerenciar. (Or, clique em Namespaces do Access Control, selecione o namespace e clique em Gerenciar.)

    Esta ação abre o portal de gerenciamento do Serviço de Controle de Acesso.

  4. Para estabelecer relacionamentos com os provedores de identidade, clique em Provedores de identidade e depois selecione os provedores de identidade que você gostaria de usar, como Google, Yahoo! e Facebook. Para mais informações sobre como obter as chaves de pré-requisito para o Facebook, consulte Como: Configurar o Facebook como um provedor de identidade (http://go.microsoft.com/fwlink/?LinkId=221151). Depois clique no link da Página inicial no menu de navegação do lado esquerdo da página para voltar para a página principal.

  5. Para registrar seu aplicativo com o ACS, no portal de gerenciamento do Serviço de Controle de Acesso, cliquem em Aplicativos de terceira parte confiáveis localizado na página principal, selecione Adicionar e insira as seguintes informações no formulário:

    • No campo Nome, insira ASPNET MVC3 Custom.

    • No campo Realm, digite http://localhost:64000/

    • No campo URL de Retorno, insira http://localhost:64000/Account/SignIn

    • No campo Formato do token, selecione SAML 2.0.

    • Na seção Provedores de identidade, selecione Facebook, Google, Windows Live ID e Yahoo!

    • No campo Autenticação de token, selecione Utilizar certificado do namespace de serviço (padrão).

  6. Clique em Salvar e depois navegue de volta para a página principal.

  7. Com o aplicativo de terceira parte confiável configurado, agora é hora de criar as regras para determinar as declarações que o ACS enviará para seu aplicativo. Neste exemplo, mostraremos todas as declarações enviadas pelos provedores de identidade. Para criar esta regra, clique em Grupos de Regras, na página principal, e clique no grupo de regra Grupo de regra padrão para ASPNET MVC3.

  8. Na parte inferior da página, clique no link Gerar. Certifique-se de que Facebook, Yahoo e estão selecionados e clique em Gerar.

  9. Com o ACS configurado, abra o Visual Studio.

A solução do exemplo Visual Studio possui um aplicativo de linha de comando chamado ConfigureSample que utiliza o Serviço de Gerenciamento ACS e os auxiliares definidos na biblioteca de classes Comum. Esse aplicativo pode ser usado para configurar seu Namespace do Access Control para ser usado com esse exemplo.

  1. Atualize a biblioteca de classes Comum com as informações sobre seu Namespace do Access Control. Abra SamplesConfiguration.cs e insira as informações a seguir:

    • ServiceNamespace – É o namespace usado com ACS.

    • ManagementServiceIdentityName – Este é um nome da conta do serviço de gerenciamento.

    • ManagementServiceIdentityKey – Esta é a senha associada à conta do serviço de gerenciamento.

    • AcsHostUrl – Este é o nome do host do ACS.

  2. No projeto ConfigureSample, abra Program.cs e insira as informações a seguir:

    1. applicationId – Esta é a ID do aplicativo Facebook.

    2. applicationSecret – É o segredo do aplicativo Facebook.

    Para detalhes sobre como obter essas chaves, consulte Como: Configurar o Facebook como um provedor de identidade (http://go.microsoft.com/fwlink/?LinkId=221151).

  3. Execute o aplicativo ConfigureSample no Visual Studio, que irá configurar o ACS para executar esse exemplo.

  1. Abra o exemplo localizado em Websites\MVC3CustomSignInPage\MVC3CustomSignInPage.sln em Visual Studio.

  2. Para adicionar o ACS como referência STS, clique com o botão direito do mouse em MVCCustomSignInPage e selecione Adicionar referência STS no menu de contexto.

  3. Na caixa de diálogo, insira a raiz do aplicativo Web no campo URI do aplicativo e clique em Avançar. Neste exemplo, esse valor é http://localhost:64000/

    noteObservação
    É importante incluir a barra final porque ela alinha os valores que você inseriu no ACS para a parte confiável. O assistente enviará um aviso de que seu site não está utilizando o protocolo SSL. Aceite este aviso clicando no botão Sim, mas lembre-se de que um site de produção deve usar SSL para esses tipos de cenário.

  4. Na janela seguinte, selecione o botão de opção Usar STS existente e insira o URI dos metadados do WS-Federation publicados pelo seu Namespace do Access Control. Esse URI pode ser encontrado no portal em Integração do aplicativo. Se seu Namespace do Access Control for mvc3samples, então o URI será https:// mvc3samples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. Após inserir esse valor, clique em Avançar.

  5. Como seu site não exige tokens criptografados. clique em Avançar nas caixas de diálogo restantes e depois clique em Concluir.

  6. Seu aplicativo agora está configurado para usar o ACS com a ampla proteção do recurso ASP .NET. É preciso desabilitar essa proteção para que possamos usar a nossa própria página de logon personalizada com filtros de autenticação MVC3 mais detalhados. No arquivo web.config, em Configuração, exclua a seguinte configuração:

    <location path="FederationMetadata">
       <system.web>
         <authorization>
           <allow users="*" />
         </authorization>
       </system.web>
    </location>
    
    
  7. Em system.web, exclua a seguinte configuração:

    <authorization>
         <deny users="?" />
       </authorization>
    
    

    Com essas duas configurações removidas, o ASP .NET não realizará autenticações ou autorizações em seu nome.

  8. Pressione F5 no Visual Studio para executar o aplicativo. Seu navegador levará você para a página principal do aplicativo.

  9. Clique no link Entrar no canto superior direito e selecione um provedor de identidade na lista exibida. Após a autenticação, você voltará para a Página inicial e suas informações de usuário serão exibidas no canto superior direito (observe que o não fornecerá um nome de usuário).

  10. Clique em Fazer logoff para fazer logoff. Isso limpará os cookies de sessão e levará você de volta para a página principal.

  11. Clique no link Directory. Como já não está autenticado, você será solicitado a escolher um provedor de identidade para acessar a página Directory.

Isso acontece porque a página Directory (Índice em DirectoryController) é protegida pelo RequireAuthenticationAttribute. Ao escolher um provedor de identidade e fazer a autenticação, você será direcionado de volta para a página Directory.

Mostrar: