COMO: Proteger um aplicativo ASP.NET usando certificados do lado do cliente

Traduções deste artigo Traduções deste artigo
ID do artigo: 315588 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Para aplicativos Web altamente seguros, como sites da Internet banking, talvez queira implementar uma solução mais segura para a autenticação do usuário que a combinação de nome e senha do usuário. Você pode usar certificados digitais do lado do cliente para verificar a identidade do usuário. Além disso, você pode mapear certificados digitais do lado do cliente para contas do Windows no servidor se necessário.


Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Servidor do Windows 2000 Service Pack 2
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
  • Serviços de certificados Microsoft (se você deve gerar seus próprios certificados)
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Desenvolvimento do ASP.NET com Visual Basic ou Visual translation from VPE for Csharp
  • Configuração de IIS (Serviços de informações da Internet)

Criar o aplicativo ASP.NET

Nesta seção, você cria um aplicativo ASP.NET simples. As seções a seguir, você usará a autenticação de certificado de cliente para proteger este aplicativo.
  1. Inicie o Visual Studio.NET e crie um novo projeto ASP.NET Web Application chamado SecureSite.
  2. Arraste um controle Label da caixa de ferramentas para o formulário da Web WebForm1.aspx e defina sua propriedade ID para greetingLabel .
  3. Arraste um segundo controle Label para WebForm1.aspx e defina sua 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 salvar o projeto e, em seguida, feche o Visual Studio.
  6. Inicie o Internet Explorer e navegue até a página a seguir:
    http://localhost/SecureSite/WebForm1.aspx
    Observe que a página exibe o "Bem-vindo" e "nenhum certificado foi encontrado" mensagens. Observe que a página não exibe um nome de usuário porque o usuário não foi autenticado.
  7. Feche o Internet Explorer.

Configurar o servidor Web para a autenticação com base em certificado

Nesta seção, você configurará o projeto SecureSite para usar certificados para autenticação. Para usar certificados de cliente, você deve instalar um certificado de servidor. Você pode usar um certificado de servidor existente de qualquer autoridade de certificação, ou você pode gerar um certificado de servidor com serviços de certificados Microsoft.


Para criar uma solicitação de certificado do servidor

  1. No menu Iniciar , aponte para programas , aponte para Ferramentas administrativas e clique em Gerenciador de serviços de Internet .
  2. Expanda o nó para o servidor e, em seguida, clique em Default Web Site .
  3. No menu ação , clique em Propriedades .
  4. Na guia Directory Security , clique em Certificado do servidor . Siga estas etapas no Assistente:
    1. Clique em Avançar na primeira página do assistente.
    2. Na página Certificado de servidor , clique em criar um novo certificado e, em seguida, clique em Avançar .
    3. Na página Solicitação atrasada ou imediata , clique em preparar a solicitação agora, mas enviá-la posteriormente e, em seguida, clique em Avançar .
    4. Na página configurações de nome e segurança , aceite as configurações padrão e, em seguida, clique em Avançar .
    5. Na página Informações da organização , digite MSDN para a organização, digite Como para artigos para a unidade organizacional e, em seguida, clique em Avançar .
    6. Na página Nome comum do site , digite localhost e, em seguida, clique em Avançar .
    7. Na página Informações geográficas , digite o seu país, região e cidade detalhes e, em seguida, clique em Avançar .
    8. Na página Nome de arquivo solicitação do certificado , aceite o nome de arquivo padrão (geralmente c:\certreq.txt) e, em seguida, clique em Avançar .
    9. Na página Resumo do arquivo de solicitação , confirme se todos os detalhes estão corretos e, em seguida, clique em Avançar .
    10. Clique em Concluir para fechar o assistente.
  5. Abra o arquivo de certificado que é gerado e copie todo o conteúdo do arquivo de certificado para a área de transferência.

Para enviar uma solicitação de certificado do servidor

  1. Inicie o Internet Explorer e navegue até a página a seguir:
    http://localhost/CertSrv
    Observação : O Microsoft Certificate Services deve ser instalado.
  2. Siga estas etapas no Assistente:
    1. Clique em Solicitar um certificado e, em seguida, clique em Avançar .
    2. Na página Choose Request Type , clique em solicitação avançada e, em seguida, clique em Avançar .
    3. Na página Solicitações de certificado avançado , clique em arquivo PKCS # 10 codificado na enviar uma solicitação de certificado usando um base64 e em seguida, clique em Avançar .
    4. Na página Enviar uma solicitação salva , clique na caixa solicitação de certificado de codificado Base64 (PKCS # 10 or # 7) e, em seguida, pressione a combinação de teclas CTRL + V para colar a solicitação de certificado que você copiou para a área de transferência anteriormente. Clique em Enviar .
  3. Feche o Internet Explorer.

Para emitir um certificado do servidor

  1. No menu Iniciar , aponte para programas , aponte para Ferramentas administrativas e clique em Autoridade de certificação .
  2. Expanda o nó para sua autoridade de certificação e, em seguida, selecione Solicitações pendentes .
  3. Selecione a solicitação de certificado enviado apenas. No menu ação , aponte para Todas as tarefas e, em seguida, clique em questão .
  4. Confirme se o certificado é exibido na pasta certificados emitidos e clique duas vezes o certificado para exibi-lo.
  5. Na guia detalhes , clique em Copiar para arquivo . Salve 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 do servidor

  1. No menu Iniciar , aponte para programas , aponte para Ferramentas administrativas e clique em Gerenciador de serviços de Internet .
  2. Expanda o nó para o servidor e, em seguida, clique em Default Web Site .
  3. No menu ação , clique em Propriedades .
  4. Na guia Directory Security , clique em Certificado do servidor . Siga estas etapas no Assistente:
    1. Clique em Avançar na primeira página do assistente.
    2. Clique em processar a solicitação pendente para instalar o certificado e, em seguida, clique em Avançar .
    3. Procure o arquivo de certificado C:\Servercert.cer que você salvou anteriormente. Clique em Avançar duas vezes e clique em Concluir .
  5. Clique em OK para fechar a caixa de diálogo Propriedades .

Configurar Site SecureSite para SSL e certificados do lado do cliente

  1. No Gerenciador de serviços de Internet, selecione a subweb SecureSite e exiba suas propriedades.
  2. Siga estas etapas no Assistente:
    1. Na guia Directory Security , clique em Editar na seção comunicações de segurança .
    2. Marque a caixa de seleção Exigir canal de segurança (SSL) . Isso garante que as comunicações para essa subweb são criptografadas.
    3. Marque a caixa de seleção exigir certificados de cliente . Isso garante que o site só pode ser exibido por usuários que tenham um certificado de cliente instalado.
    4. Marque a caixa de seleção Ativar mapeamento de certificado de cliente . Isso é usado para mapear certificados de cliente para contas de usuário do Windows.
    5. Clique em Editar . Observe que você pode mapear cada certificado para uma conta individual do Windows, ou você pode mapear vários certificados para a mesma conta do Windows.
    6. Na guia muitos-para-1 , clique em Adicionar para adicionar uma regra de mapeamento. Essa regra Regra de mapeamento de nome e, em seguida, clique em Avançar .
    7. Clique em novo para criar uma nova regra na qual o campo de sub-rotina O (organização) da seção do assunto do certificado tem os critérios "MSDN". Clique em OK para aplicar o mapeamento para os usuários cujos certificados contêm um atributo de organização de "MSDN". Em um ambiente de produção, a regra de mapeamento é mais rígida e geralmente valida o emissor do certificado, bem como o assunto. Clique em Avançar .
    8. Na página mapeamento , selecione aceitar este certificado para autenticação de logon . Clique em Procurar para selecionar a conta do Windows que você deseja mapear os usuários MSDN. Para este exemplo, use a conta de administrador. (Em um aplicativo real, criar uma conta dedicada do Windows com privilégios restritos.) Certifique-se de que você digite a senha correta.
    9. Clique em Concluir e, em seguida, confirme a senha.
  3. Clique em OK para fechar a caixa de diálogo Mapeamentos de conta .
  4. Clique em OK para fechar a caixa de diálogo Comunicações de segurança . Se você for solicitado a aplicar as configurações a filho arquivos e pastas, clique em Selecionar 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 certificado

  1. Inicie o Internet Explorer e navegue até a página a seguir:
    https://localhost/SecureSite/WebForm1.aspx
    Observe que você usar o protocolo seguro, https.
  2. Confirme se você recebe uma mensagem de que a página requer um certificado de cliente.
  3. Feche o Internet Explorer.

Instalar um certificado de cliente

Nesta seção, você instala um certificado de cliente. Você pode usar um certificado de qualquer autoridade de certificação, ou você pode usar serviços de certificados Microsoft para gerar seu próprio certificado.


Para solicitar um certificado do cliente

  1. Inicie o Internet Explorer e navegue até a página a seguir:
    http://localhost/CertSrv
  2. Siga estas etapas no Assistente:
    1. Clique em Solicitar um certificado e, em seguida, clique em Avançar .
    2. Na página Escolher tipo de solicitação , clique em Certificado de navegador da Web e, em seguida, clique em Avançar .
    3. Digite as informações necessárias. Certifique-se de que você digite MSDN na caixa de texto da empresa .
    4. Clique em Enviar para concluir a solicitação.
  3. Feche o Internet Explorer.

Para emitir um certificado do lado do cliente

  1. Inicie a ferramenta de autoridade de certificação no grupo de programas Ferramentas administrativas .
  2. Expanda o nó para sua autoridade de certificação e, em seguida, selecione Solicitações pendentes .
  3. Selecione a solicitação de certificado enviado apenas. No menu ação , aponte para Todas as tarefas e, em seguida, clique em questão .
  4. Confirme se o certificado é exibido na pasta certificados emitidos e clique duas vezes o certificado para exibi-lo.
  5. Na guia detalhes , clique em Copiar para arquivo . Salve 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 do lado do cliente

  1. Abra o Windows Explorer e clique duas vezes em Clientcert.cer para exibir o arquivo de certificado.
  2. Siga estas etapas no Assistente para importação de certificados:
    1. Na primeira página do assistente, clique em Instalar certificado e clique em Avançar .
    2. Marque a caixa de seleção Selecionar automaticamente o armazenamento de certificados com base no tipo de certificado e clique em Avançar .
    3. Clique em Concluir para concluir o assistente.
  3. Descartar a caixa de mensagem de confirmação e, em seguida, clique em OK para fechar o certificado.

Verificar se ele funciona

Nesta seção, você verificar que aplicativos de cliente com certificados que especificar "MSDN" como a empresa pode exibir o site SecureSite. Os usuários são mapeados para a conta que você especificou na regra de mapeamento.
  1. Inicie o Internet Explorer e navegue até a página a seguir:
    https://localhost/SecureSite/WebForm1.aspx
  2. Confirme que:
    • A página da Web será exibida.
    • A conta apropriada do Windows é usada.
    • A organização "MSDN" é lido do certificado.

Referências

Para obter informações adicionais sobre como usar Secure Sockets Layer (SSL) para proteger um site, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
298805COMO: Activar o SSL para todos os clientes que interaja com O Web Site no IIS

Propriedades

ID do artigo: 315588 - Última revisão: segunda-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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