Artigo: 901183 - Última revisão: quinta-feira, 13 de Dezembro de 2007 - Revisão: 3.2 Como chamar um serviço Web utilizando um certificado de cliente para autenticação numa aplicação Web do ASP.NET
Nesta páginaSumário Este artigo descreve como transferir um certificado de cliente para um serviço Web para autenticação de uma aplicação Web do ASP.NET. Nota Os passos descritos neste artigo aplicam-se também o para quando efectua um pedido HTTP directo utilizando a classe HttpWebRequest se não invocar um serviço Web. INTRODUÇÃOFrequentemente, serviços Web tem de autenticar aplicações que chamam os serviços Web. Os serviços da Web tem de efectuar autenticações de chamar aplicações antes dos serviços Web podem efectuar autorizações. Uma técnica de autenticação é requerem aplicações que chamam o serviço Web para apresentar um certificado de cliente. Quando uma aplicação Web ASP.NET tenta contactar um serviço Web que utiliza a autenticação de certificados, poderá receber uma mensagem de erro "acesso negado". Quando uma aplicação de consola ou uma aplicação do Microsoft Windows Forms chama o mesmo serviço Web, não recebe uma mensagem de erro. Este comportamento ocorre porque o computador mantém dois arquivos de certificados diferente:
Mais InformaçãoPara activar uma aplicação Web do ASP.NET utilizar um certificado de cliente, tem de instalar o certificado de cliente no arquivo de computador local. Quando instala um certificado de cliente no arquivo de computador local, o certificado de cliente só está disponível para contas de utilizador no grupo Administradores e para o utilizador que instalou o certificado de cliente. Por conseguinte, tem de conceder acesso ao certificado de cliente para a conta de utilizador é utilizado para executar a aplicação Web do ASP.NET. Nota Tem de ter o Microsoft .NET Framework 1.1 Service Pack 1 (SP1) instalado para utilizar certificados de cliente no arquivo de computador local. Além disso, quando a aplicação Web ASP.NET chama o serviço Web, a aplicação deve exportar o certificado de cliente do arquivo de certificados e adicione o certificado de cliente para a chamada de serviço Web. Instalar o certificado de cliente e conceder acesso para a conta de utilizadorPara instalar o certificado de cliente e conceder acesso ao certificado de cliente para a conta de utilizador é utilizado para executar a aplicação Web do ASP.NET, siga estes passos.Passo 1: Instalar o certificado de cliente no arquivo de computador localSe tiver um certificado de cliente num ficheiro PKCS # 12 (.pfx), pode utilizar a ferramenta de configuração do Microsoft Windows HTTP dos serviços de certificados (WinHttpCertCfg.exe) para instalar o certificado de cliente e para conceder acesso ao certificado de cliente para contas de utilizador adicionais tais como a conta do serviço de rede. Para o fazer, siga estes passos:
Passo 2: Configurar o acesso ao certificado de clienteNeste passo, tem de conceder permissão para a conta ASP.NET aceder o certificado de cliente armazenado no arquivo de computador local. A conta de serviço de rede é a conta predefinida para executar aplicações Web no Windows Server 2003. Por este motivo, tem de conceder acesso ao certificado para a conta do serviço de rede. Se tiver configurado uma conta personalizada para executar o ASP.NET, tem de conceder acesso para a conta personalizada.Nota No Microsoft Internet informações Server (IIS) 5.0, ASP.NET é executado sob o ASPNET conta e não em serviço de rede da conta. Por conseguinte, terá de conceder permissões para a conta ASPNET num computador com o IIS 5.0. Para conceder acesso a uma conta de utilizador específica, execute o seguinte comando numa linha de comandos: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s "IssuedToName" - a "AccountName" Nota AccountName é o nome de uma conta de computador local ou uma conta de domínio. IssuedToName é o nome da empresa ou domínio ao qual o certificado de cliente foi emitido. Este comando contém uma cadeia de procura não sensível a maiúsculas e minúsculas. A cadeia de procura localiza o primeiro certificado enumerado que tenha um nome de requerente que contém a cadeia.O comando da linha de comandos seguinte é um exemplo de como conceder acesso ao certificado de cliente para a conta serviço de rede no Microsoft (IIS) 6.0: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s "IssuedToName" - a "Serviço de rede" A seguinte linha de comandos se um exemplo sobre como conceder acesso ao certificado de cliente para a conta ASPNET no IIS 5.0: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s "IssuedToName" - a "ASPNET" Nota Quando utiliza a ferramenta de configuração do Windows HTTP dos serviços de certificados, é possível combinar o processo de importar o certificado de cliente e o processo de configurar o acesso ao certificado de cliente de uma só vez. Por exemplo, a seguinte linha de comandos executa ambos os processos: Winhttpcertcfg.exe -i PFXFile - c LOCAL_MACHINE\My - a ? AccountName ? Passo 3: Copiar o certificado de cliente do arquivo de utilizador local para o arquivo de computador localSe o certificado de cliente pode aceder a uma aplicação interactiva, tal como uma aplicação Windows Forms ou uma aplicação da linha de comandos, o certificado de cliente já está armazenado no arquivo de utilizador local. No entanto, se uma aplicação de serviço, tal como uma aplicação Web do ASP.NET não é possível aceder o mesmo certificado de cliente, o certificado de cliente não poderá ser armazenado no arquivo de computador local.Este passo explica como copiar um certificado de cliente no arquivo de utilizador local para o arquivo de computador local, utilizando o Assistente para exportar certificados. Nota Se o certificado de cliente já estiver no arquivo de computador local ou se pode instalar o certificado de cliente directamente no arquivo de computador local como no passo 1, avance para o passo 4. No entanto, se utilizar o passo 3, tem, em seguida, devolver para o passo 2 para conceder acesso ao certificado de cliente. Para copiar o certificado de cliente para o arquivo de computador local, siga estes passos:
Passo 4: Instalar o certificado de raiz da ACSe o certificado de cliente já está assinado por uma AC externa como, por exemplo, VeriSign, ou se já tiver instalado o certificado de raiz para a AC, pode omitir o passo 4.Por predefinição, o Windows tem os certificados de raiz de várias AC externa já pré-instalado o arquivo de certificados raiz fidedignos. Verifique se o certificado de raiz está instaladoPara verificar se o certificado de raiz para a AC está instalado, siga estes passos:
Instalar o certificado de raizSe o certificado de raiz da AC que pretende utilizar não constar da lista, tem de instalar o certificado de raiz. Se tiver sido emitido o certificado de raiz da AC que pretende utilizar para o utilizador num ficheiro de certificado como um ficheiro .cer, um ficheiro .der ou um ficheiro .pfx, siga estes passos:
Pedir o certificado de raizSe a AC que pretende utilizar estiver incluída na base de dados de instalação do Microsoft Certificate Services, pode pedir o certificado de raiz. Para o fazer, siga estes passos:
Chamar o serviço WebDepois de instalar o certificado de cliente no arquivo computador local ou o arquivo de utilizador local, pode aceder o certificado de cliente da aplicação Web do ASP.NET para chamar o serviço Web. Os passos para o certificado de cliente de acesso são os mesmos para uma aplicação Windows Forms ou para uma Web do ASP.NET aplicação.Se estiver a utilizar o .NET Framework 1.1, tem de exportar primeiro a chave para um ficheiro codificado em DER. Tem de exportar a chave porque a classe System.Security.Cryptography.X509Certificates.X509Certificate não contém métodos para aceder directamente os detalhes de um certificado a partir de um arquivo de certificados. Por conseguinte, a aplicação tem leia os detalhes de um certificado de um ficheiro codificado em DER. Nota Web Services Enhancements 2.0 para o Microsoft .NET (WSE) fornece uma forma de uma aplicação obter os detalhes de um certificado directamente a partir de um arquivo de certificados. O código de exemplo do C# seguinte mostra como chamar um serviço Web transferindo um certificado de cliente para autenticação. Web Services Enhancements 2.0 para o Microsoft .NETWeb Services Enhancements 2.0 para o Microsoft .NET (WSE) é um Microsoft .NET classe biblioteca para criar serviços Web, utilizando os protocolos de serviços Web mais recentes. Estes protocolos incluem o seguinte:
http://www.microsoft.com/downloads/details.aspx?FamilyId=FC5F06C5-821F-41D3-A4FE-6C7B56423841
(http://www.microsoft.com/downloads/details.aspx?FamilyId=FC5F06C5-821F-41D3-A4FE-6C7B56423841)
Não é necessário utilizar qualquer um destes protocolos para aceder a uma Web do serviço que requer autenticação de certificados de cliente. No entanto, poderá utilizar a classe Microsoft.Web.Services2.Security.X509 . A classe Microsoft.Web.Services2.Security.X509 contém métodos para aceder directamente a um certificado de cliente no arquivo de certificados. Se utilizar estes métodos, não é necessário exportar o certificado para um ficheiro.O código de exemplo do C# seguinte mostra como localizar o primeiro certificado denominado SecureMathClient no arquivo de computador local. Em seguida, este código de exemplo utiliza o certificado para chamar o método Add da matemática serviço Web. Matemática serviço Web requer certificados de cliente. ReferênciasPara obter mais informações sobre a classe System.Security.Cryptography.X509Certificates.X509Certificate , visite o seguinte Web site da Microsoft Developer Network (MSDN): http://msdn2.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate(vs.71).aspx)
Para obter mais informações sobre como contactar um Web site com segurança avançada utilizando uma aplicação Web do ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base: 817854
(http://support.microsoft.com/kb/817854/
)
CORRECÇÃO: Uma aplicação Web do ASP.NET não consegue entregar um certificado de cliente a um Web site com segurança melhorada A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: 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: 901183
(http://support.microsoft.com/kb/901183/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo