COMO: Secure uma aplicação do ASP.NET utilizando certificados do lado do cliente

Traduções de Artigos Traduções de Artigos
Artigo: 315588 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Para aplicações de Web altamente seguras, tais como sites de operações bancárias da Internet, poderá implementar uma solução mais segura para autenticação de utilizador que a combinação de utilizador nome e palavra-passe. Pode utilizar certificados digitais do lado do cliente para verificar a identidade do utilizador. Além disso, pode mapear certificados digitais do lado do cliente para contas do Windows no servidor se necessário.


Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Servidor do Microsoft Windows 2000 Service Pack 2
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
  • Serviços de certificados (se deverá gerar os seus próprios certificados) da Microsoft
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
  • Desenvolvimento do ASP.NET com o Visual Basic ou Visual C#
  • Configuração dos serviços de informação Internet (IIS) da Microsoft

Criar a aplicação Web do ASP.NET

Esta secção, pode criar uma simples aplicação do ASP.NET. As secções a seguir, utilizará a autenticação de certificados do lado do cliente para proteger esta aplicação.
  1. Inicie o Visual Studio .NET e crie um novo projecto ASP.NET Web Application denominado SecureSite.
  2. Arraste um controlo de etiqueta da caixa de ferramentas para o formulário Web WebForm1.aspx e, em seguida, defina a propriedade ID para greetingLabel .
  3. Arraste um segundo controlo de etiqueta para WebForm1.aspx e, em seguida, defina a propriedade ID para certDataLabel .
  4. Adicione o seguinte código ao procedimento de evento Page_Load :
    'Visual Basic
    Dim username As String
    userName = User.Identity.Name
    greetingLabel.Text = "Welcome " & userName
    Dim cert As HttpClientCertificate = Request.ClientCertificate
    If cert.IsPresent Then
    	'Get the Organization (O) field from the Subject section.
    	certDataLabel.Text = cert.Get("Subject O")
    Else
    	certDataLabel.Text = "No certificate was found."
    End If
    					
    //Visual C#
    string userName;
    userName = User.Identity.Name;
    greetingLabel.Text = "Welcome " + userName;
    HttpClientCertificate cert = Request.ClientCertificate;
    if (cert.IsPresent)
        certDataLabel.Text = cert.Get("SUBJECT O");
    else
        certDataLabel.Text="No certificate was found.";
    					
  5. Criar e guardar o projecto e, em seguida, feche o Visual Studio.
  6. Inicie o Internet Explorer e, em seguida, procure a seguinte página:
    http://localhost/SecureSite/WebForm1.aspx
    Repare que a página apresenta "Welcome" e "foi encontrado nenhum certificado" mensagens. Repare que a página não apresenta um nome de utilizador porque o utilizador não tenha sido autenticado.
  7. Feche o Internet Explorer.

Configurar o servidor Web para autenticação baseada em certificados

Esta secção Configurar o projecto SecureSite para utilizar certificados para autenticação. Para utilizar certificados do lado do cliente, tem de instalar um certificado do lado do servidor. Pode utilizar um certificado de servidor existente de qualquer autoridade de certificação, ou pode gerar um certificado do lado do servidor com serviços de certificados.


Para criar um pedido de certificados do lado do servidor

  1. No menu Iniciar , aponte para programas , aponte para Ferramentas administrativas e, em seguida, clique em Gestor de serviços Internet .
  2. Expanda o nó para o servidor e, em seguida, clique em Web Site predefinido .
  3. No menu acção , clique em Propriedades .
  4. No separador Segurança de directórios , clique em Certificado de servidor . Siga estes passos no assistente:
    1. Clique em seguinte na primeira página do assistente.
    2. Na página Certificado de servidor , clique em criar um novo certificado e, em seguida, clique em seguinte .
    3. Na página adiada ou imediata pedido , clique em preparar o pedido agora, mas enviá-la mais tarde e, em seguida, clique em seguinte .
    4. Na página nome e as definições de segurança , aceitar as predefinições e, em seguida, clique em seguinte .
    5. Na página Informações de empresa , escreva MSDN da organização, escreva Como para artigos para a unidade organizacional e, em seguida, clique em seguinte .
    6. Na página Nome comum do site , escreva localhost e, em seguida, clique em seguinte .
    7. Na página Informações geográficas , escreva o seu país, região e Cidade detalhes e, em seguida, clique em seguinte .
    8. Na página Nome do ficheiro pedido de certificado , aceitar o nome de ficheiro predefinido (normalmente c:\certreq.txt) e, em seguida, clique em seguinte .
    9. Na página Resumo do ficheiro pedido , confirme se todos os detalhes estão correctos e, em seguida, clique em seguinte .
    10. Clique em Concluir para fechar o assistente.
  5. Abra o ficheiro de certificado que é gerado e, em seguida, copie todo o conteúdo do ficheiro de certificado para a área de transferência.

Para submeter um pedido de certificados do lado do servidor

  1. Inicie o Internet Explorer e, em seguida, procure a seguinte página:
    http://localhost/CertSrv
    Nota : O Microsoft Certificate Services tem de estar instalado.
  2. Siga estes passos no assistente:
    1. Clique em Pedir um certificado e, em seguida, clique em seguinte .
    2. Na página Seleccionar tipo de pedido , clique em pedido avançado e, em seguida, clique em seguinte .
    3. Na página Pedidos de certificado avançado , clique em Submeter um pedido de certificado utilizando um base64 codificado num ficheiro PKCS # 10 e, em seguida, clique em seguinte .
    4. Na página Submeter uma requisição guardada , clique na caixa de pedido de certificado de codificado em Base64 (PKCS # 10 ou # 7) e, em seguida, prima a combinação de teclas CTRL + V para colar o pedido de certificado que copiou para a área de transferência anteriormente. Clique em Submeter .
  3. Feche o Internet Explorer.

Emitir um certificado de lado do servidor

  1. No menu Iniciar , aponte para programas , aponte para Ferramentas administrativas e clique em Autoridade de certificação .
  2. Expanda o nó sua autoridade de certificação e, em seguida, seleccione Requisições pendentes .
  3. Seleccione o pedido de certificado que submeteu. No menu acção , aponte para Todas as tarefas e, em seguida, clique em emitir .
  4. Confirme que o certificado aparece na pasta certificados emitidos e faça duplo clique no certificado para o visualizar.
  5. No separador Detalhes , clique em Copiar para ficheiro . Guarde o certificado como uma base-64 codificado certificado X.509 para C:\Servercert.cer.
  6. Feche a caixa de diálogo Propriedades do certificado.
  7. Feche a ferramenta de autoridade de certificação.

Para instalar um certificado de lado do servidor

  1. No menu Iniciar , aponte para programas , aponte para Ferramentas administrativas e, em seguida, clique em Gestor de serviços Internet .
  2. Expanda o nó para o servidor e, em seguida, clique em Web Site predefinido .
  3. No menu acção , clique em Propriedades .
  4. No separador Segurança de directórios , clique em Certificado de servidor . Siga estes passos no assistente:
    1. Clique em seguinte na primeira página do assistente.
    2. Clique em processar o pedido pendente para instalar o certificado e, em seguida, clique em seguinte .
    3. Procure o ficheiro de certificado C:\Servercert.cer que guardou anteriormente. Clique duas vezes em seguinte e clique em Concluir .
  5. Clique em OK para fechar a caixa de diálogo Propriedades .

Configurar o Site SecureSite para SSL e certificados do lado do cliente

  1. No Gestor de serviços da Internet, seleccione a subweb SecureSite e ver as respectivas propriedades.
  2. Siga estes passos no assistente:
    1. No separador Segurança de directórios , clique em Editar na secção comunicações seguras .
    2. Seleccione a caixa de verificação Exigir canal seguro (SSL) . Este procedimento assegura que são encriptadas comunicações para esta subweb.
    3. Seleccione a caixa de verificação Pedir certificados de cliente . Isto assegura que o site só pode ser visualizado por utilizadores com um certificado de cliente instalado.
    4. Seleccione a caixa de verificação Activar mapeamento de certificados de cliente . Isto é utilizado para mapear certificados de cliente para contas de utilizador do Windows.
    5. Clique em Editar . Repare que pode mapear cada certificado para uma conta de Windows individual ou pode mapear vários certificados para a mesma conta do Windows.
    6. No separador muitos-para-1 , clique em Adicionar para adicionar uma regra de mapeamento. Esta regra Regra de mapeamento de nomes e, em seguida, clique em seguinte .
    7. Clique em Novo para criar uma nova regra na qual o campo de sub O (organização) da secção assunto do certificado tem os critérios "MSDN". Clique em OK para aplicar o mapeamento para os utilizadores cujos certificados contêm um atributo de organização de "MSDN". Num ambiente de produção, a regra de mapeamento de é mais rigorosas e frequentemente valida o emissor do certificado, bem como o assunto. Clique em seguinte .
    8. Na página mapeamento , seleccione aceitar este certificado para autenticação de início de sessão . Clique em Procurar para seleccionar a conta de Windows que pretende mapear os utilizadores da MSDN. Neste exemplo, utilize a conta administrador. (Numa aplicação real, criar uma conta dedicada do Windows com privilégios restritos.) Certifique-se de que escreve a palavra-passe correcta.
    9. Clique em Concluir e, em seguida, confirme a palavra-passe.
  3. Clique em OK para fechar a caixa de diálogo Mapeamentos de contas .
  4. Clique em OK para fechar a caixa de diálogo Comunicações seguras . Se lhe for pedido para aplicar as definições subordinado ficheiros e pastas, clique em Seleccionar tudo e, em seguida, clique em OK .
  5. Clique em OK para fechar a caixa de diálogo Propriedades de SecureSite .

Para verificar a autenticação baseada em certificados

  1. Inicie o Internet Explorer e, em seguida, procure a seguinte página:
    https://localhost/SecureSite/WebForm1.aspx
    Repare que utiliza o protocolo seguro, https.
  2. Confirme que recebe uma mensagem de que a página requer um certificado de cliente.
  3. Feche o Internet Explorer.

Instalar um certificado de cliente

Nesta secção, instalou um certificado de cliente. Pode utilizar um certificado de qualquer autoridade de certificação, ou pode utilizar serviços de certificados para gerar o seu próprio certificado.


Para pedir um certificado de lado do cliente

  1. Inicie o Internet Explorer e, em seguida, procure a seguinte página:
    http://localhost/CertSrv
  2. Siga estes passos no assistente:
    1. Clique em Pedir um certificado e, em seguida, clique em seguinte .
    2. Na página Seleccionar tipo de pedido , clique em Certificado do Web Browser e, em seguida, clique em seguinte .
    3. Escreva as informações necessárias. Certifique-se que escreve MSDN na caixa de texto da empresa .
    4. Clique em Submeter para concluir o pedido.
  3. Feche o Internet Explorer.

Emitir um certificado do lado do cliente

  1. Inicie a ferramenta de autoridade de certificação do grupo de programa Ferramentas administrativas .
  2. Expanda o nó sua autoridade de certificação e, em seguida, seleccione Requisições pendentes .
  3. Seleccione o pedido de certificado que submeteu. No menu acção , aponte para Todas as tarefas e, em seguida, clique em emitir .
  4. Confirme que o certificado aparece na pasta certificados emitidos e faça duplo clique no certificado para o visualizar.
  5. No separador Detalhes , clique em Copiar para ficheiro . Guarde o certificado como uma base-64 codificado certificado X.509 para C:\Clientcert.cer.
  6. Feche a caixa de diálogo Propriedades do certificado.
  7. Feche a ferramenta de autoridade de certificação.

Para instalar um certificado de lado do cliente

  1. Abra O Explorador do Windows e faça duplo clique em Clientcert.cer para visualizar o ficheiro de certificado.
  2. Siga estes passos no Assistente para importar certificados:
    1. Na primeira página do assistente, clique em Instalar certificado e, em seguida, clique em seguinte .
    2. Seleccione a caixa de verificação Seleccionar automaticamente o arquivo de certificados com base no tipo de certificado e, em seguida, clique em seguinte .
    3. Clique em Concluir para concluir o assistente.
  3. Fechar a caixa de mensagem de confirmação e, em seguida, clique em OK para fechar o certificado.

Verificar se funciona

Esta secção, verifique que as aplicações cliente com certificados que especificar "MSDN" como o empresa pode ver o site SecureSite. Os utilizadores são mapeados para a conta especificadas na regra de mapeamento.
  1. Inicie o Internet Explorer e, em seguida, procure a seguinte página:
    https://localhost/SecureSite/WebForm1.aspx
  2. Confirme se:
    • É apresentada a página Web.
    • A conta de Windows adequada é utilizada.
    • A organização "MSDN" é lido do certificado.

Referências

Para obter informações adicionais sobre como utilizar Secure Sockets Layer (SSL) para proteger um Web site, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
298805COMO: Activar o SSL para todos os clientes que interacção com O Web Site no Internet Information Services

Propriedades

Artigo: 315588 - Última revisão: 3 de dezembro de 2007 - Revisão: 4.6
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
Palavras-chave: 
kbmt kbhowtomaster kbsecurity KB315588 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315588

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com