Partilhar via


Amostra de código: ASP.NET Página de Login Personalizada MVC 3

Atualizado: 19 de junho de 2015

Aplica-se a: Azure

Esta amostra ilustra como criar um login personalizado ou página Home Realm Discovery numa aplicação MVC3 ASP.NET que utiliza Microsoft Azure Ative Directory Controlo de Acesso (também conhecido como serviço de Controlo de Acesso ou ACS). O código desta amostra está localizado na subdirectória MVC3CustomSignInPage (C#\Websites\MVC3CustomSignInPage) do pacote de amostras de código Microsoft Azure Ative Directory Controlo de Acesso (ACS).

Pré-requisitos

Para executar esta amostra, você precisará:

  1. Uma conta no portal do Azure e um Controlo de Acesso espaço de nome.

  2. Visual Studio 2010 (qualquer versão)

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

  4. Fundação Windows Identidade SDK

Para mais detalhes, consulte os pré-requisitos acs (https://go.microsoft.com/fwlink/?LinkId=221065).

Configurar a amostra

A configuração ACS necessária para esta amostra pode ser realizada utilizando o Portal de Gestão ACS ou o Serviço de Gestão ACS. Este tópico descreve ambas as opções.

Opção 1: Configurar a amostra através do Portal de Gestão ACS

Para configurar a amostra no Portal de Gestão acs

  1. Vá ao Portal de Gestão Microsoft Azure (https://manage.WindowsAzure.com), inscreva-se e, em seguida, clique em Ative Directory. (Dica de resolução de problemas: o item "Ative Directory" está em falta ou não está disponível)

  2. Para criar um Controlo de Acesso espaço de nome, clique em Novos, clique em Serviços de Aplicações, clique Controlo de Acesso e, em seguida, clique em "Criar" Quick. (Ou, clique Controlo de Acesso Espaços de Nome antes de clicar em New.)

  3. Para gerir um Controlo de Acesso espaço de nome, selecione o espaço de nomes e, em seguida, clique em Gerir. (Ou, clique Controlo de Acesso Espaços de Nome, selecione o espaço de nomes e, em seguida, clique em Gerir.)

    Esta ação abre o portal de gestão do Serviço Controlo de Acesso.

  4. Para estabelecer relações com os fornecedores de identidade, clique em Fornecedores de Identidade e, em seguida, selecione os fornecedores de identidade que gostaria de usar, tais como Google, Yahoo!, e Facebook. Para obter mais informações sobre como obter as chaves pré-requisitos para o Facebook, consulte Como: Configurar o Facebook como Fornecedor de Identidade (https://go.microsoft.com/fwlink/?LinkId=221151). Em seguida, clique no link 'Casa' no menu de navegação à esquerda da página para voltar à página principal.

  5. Para registar a sua candidatura com a ACS, no portal de gestão do Serviço Controlo de Acesso, clique no link de aplicações do partido Relying localizado na página principal, selecione Adicionar e introduza as seguintes informações no formulário:

    • No campo Nome , insira as ASPNET MVC3 Custom.

    • No campo Realm , insira https://localhost:64000/

    • No campo URL de retorno , insira https://localhost:64000/Account/SignIn

    • No campo de formato Token , selecione SAML 2.0.

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

    • No campo de assinatura token , selecione Use o certificado de espaço de serviço (standard).

  6. Clique em Guardar e, em seguida, volte a navegar na página principal.

  7. Com a sua aplicação de partidos dependentes configurada, é agora a hora de criar as regras que determinam as alegações que a ACS irá emitir à sua aplicação. Nesta amostra, passaremos por todas as reclamações emitidas pelos fornecedores de identidade. Para criar esta regra, clique em Grupos de Regras, localizados na página principal, e clique no grupo de regras Predefinidos para o grupo de regras ASPNET MVC3 Custom .

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

  9. Com ACS configurado, aberto Visual Studio.

Opção 2: Configurar a amostra utilizando o Serviço de Gestão ACS

A solução de amostra Visual Studio tem uma aplicação de linha de comando chamada ConfigureSample que utiliza o Serviço de Gestão ACS e os ajudantes comuns definidos na biblioteca da classe Comum. Esta aplicação pode ser usada para configurar o seu Controlo de Acesso espaço de nome para utilização com esta amostra.

Para configurar a amostra utilizando o Serviço de Gestão ACS

  1. Atualize a biblioteca de classes Comuns com informações sobre o seu Controlo de Acesso espaço de nome. Abrir amostrasConfiguration.cs e inserir as seguintes informações:

    • ServiceNamespace - Este é o espaço de nomes usado com ACS.

    • ManagementServiceIdentityName - Este é o nome de uma conta de serviço de gestão.

    • ManagementServiceIdentityKey - Esta é a palavra-passe associada à conta de serviço de gestão.

    • AcsHostUrl - Este é o nome de anfitrião da ACS.

  2. No projeto ConfigureSample , abra o Programa.cs e introduza as seguintes informações:

    1. applicationId - Este é o Id de aplicação da sua aplicação do Facebook.

    2. applicationSecret - Este é o Segredo de Aplicação da sua aplicação do Facebook.

    Para obter detalhes sobre como obter estas chaves, consulte Como: Configurar o Facebook como Fornecedor de Identidade (https://go.microsoft.com/fwlink/?LinkId=221151).

  3. Executar a aplicação ConfigureSample em Visual Studio, que configurará ACS para executar esta amostra.

Executando a amostra

Para executar a amostra

  1. Abra a amostra localizada em Websites\MVC3CustomSignInPage\MVC3CustomSignInPage.sln em Visual Studio.

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

  3. Na caixa de diálogo, introduza a raiz da aplicação web no campo URI de aplicação e clique em Seguinte. Para esta amostra, este valor é https://localhost:64000/

    Nota

    O corte de fuga é importante, uma vez que alinha-se com os valores que inseriu no ACS para a sua festa de confiação. O assistente emitirá um aviso de que o seu site não está a utilizar SSL. Aceite este aviso clicando no botão Sim , mas lembre-se que um site de produção deve usar quase sempre SSL para este tipo de cenários.

  4. Na janela seguinte, selecione o botão de rádio Use EXISTENTE STS e introduza o URI do WS-Federation metadados publicados pelo seu Controlo de Acesso espaço de nome. Este URI pode ser encontrado no portal no âmbito da Integração de Aplicações. Se o seu Controlo de Acesso espaço de nome for mvc3samples, então o URI é https:// mvc3samples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. Depois de introduzir este valor, clique em Seguinte.

  5. Uma vez que o seu website não necessita de tokens encriptados, clique em Seguinte nas restantes caixas de diálogo e, em seguida, clique em Terminar.

  6. A sua aplicação está agora configurada para utilizar ACS com a proteção de recursos cobertores ASP .NET. Precisamos desativar esta proteção para que possamos usar a nossa própria página de login personalizada com filtros de autenticação MVC3 mais detalhados. No ficheiro web.config , na configuração, elimine a seguinte definição:

    <location path="FederationMetadata">
       <system.web>
         <authorization>
           <allow users="*" />
         </authorization>
       </system.web>
    </location>
    
  7. No sistema.web elimina-se a seguinte definição:

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

    Com estas duas configurações removidas, a ASP .NET não está a efetuar qualquer autenticação ou autorização em nosso nome.

  8. Prima F5 em Visual Studio para executar o pedido. O seu navegador irá levá-lo à página principal da aplicação.

  9. Clique no link 'Sign In ' no canto superior direito e selecione um fornecedor de identidade da lista que aparece. Após a autenticação, regressará à página Inicial e as informações do utilizador serão apresentadas no canto superior direito (nota que não fornecerá um nome de utilizador).

  10. Clique em Iniciarões para iniciar sessão. Isto irá limpar os cookies da sessão e devolvê-lo de volta à página principal.

  11. Clique no link Do Diretório . Uma vez que já não é autenticado, será solicitado que escolha um fornecedor de identidade para aceder à página do Diretório.

Isto porque a página do Diretório (Index in DirectoryController) está protegida através da Atribuição de Autoridades. Assim que escolher um fornecedor de identidade e autenticar, será encaminhado de volta para a página do Diretório.