Identificativo articolo: 901183 - Ultima modifica: giovedì 13 dicembre 2007 - Revisione: 3.2 Come chiamare un servizio Web utilizzando un certificato di client per l'autenticazione in un'applicazione Web ASP.NETIn questa paginaSommario questo articolo viene descritto come passare un certificato client a un servizio Web per l'autenticazione da un'applicazione Web ASP.NET. Nota I passaggi descritti in questo articolo anche validi per quando si effettua una richiesta HTTP diretta utilizzando la classe di HttpWebRequest , se non richiama un servizio Web. INTRODUZIONEServizi Web devono spesso autenticare applicazioni che chiamano i servizi Web. I servizi Web è necessario eseguire autenticazioni della chiamata di applicazioni prima che i servizi Web è possono eseguire le autorizzazioni. Una tecnica di autenticazione consiste nel richiedere applicazioni che chiamano il servizio Web per presentare un certificato client. Quando un'applicazione Web ASP.NET tenta di chiamare un servizio Web che utilizza l'autenticazione basata su certificati, potresti ricevere un messaggio di errore di "accesso negato". Quando un'applicazione console o un'applicazione Microsoft Windows Form chiama lo stesso servizio Web, non visualizzato un messaggio. Questo comportamento si verifica perché il computer mantiene due archivi di certificati differenti:
InformazioniPer abilitare un'applicazione Web ASP.NET utilizzare un certificato client, è necessario installare il certificato client nell'archivio locale del computer. Quando si installa un certificato client nell'archivio locale del computer, il certificato client è disponibile solo per gli account utente del gruppo Administrators e per l'utente che ha installato il certificato client. Di conseguenza, è necessario concedere l'accesso al certificato client per l'account utente utilizzato per eseguire l'applicazione Web ASP.NET. Nota È necessario disporre di Microsoft .NET Framework 1.1 Service Pack 1 (SP1) per poter utilizzare i certificati client di archivio del computer locale. Inoltre, quando l'applicazione Web ASP.NET chiama il servizio di Web, l'applicazione deve esportare il certificato di client dall'archivio certificati e quindi aggiungere il certificato client chiamata al servizio Web. Installare il certificato client e concedere l'accesso per l'account utentePer installare il certificato client e per concedere l'accesso al certificato client per l'account utente che viene utilizzato per eseguire l'applicazione Web ASP.NET, attenersi alla seguente procedura.Passaggio 1: Installare il certificato client nell'archivio locale del computerSe si dispone di un certificato client in un file PKCS # 12 (PFX), è possibile utilizzare lo strumento di configurazione di Microsoft Windows HTTP Services certificati (WinHttpCertCfg.exe) per installare il certificato del client e per concedere l'accesso al certificato client per altri account utente ad esempio l'account servizio di rete. Per effettuare questa operazione, attenersi alla seguente procedura:
Passaggio 2: Configurare accesso il certificato clientIn questo passaggio, è necessario concedere le autorizzazioni per l'account ASP.NET accedere al certificato client memorizzato nell'archivio del computer locale. L'account di servizio di rete è l'account predefinito per l'esecuzione di applicazioni Web su Windows Server 2003. Di conseguenza, è necessario concedere l'accesso al certificato per account di servizio di rete. Se è stato configurato un account personalizzato per l'esecuzione di ASP.NET, è necessario concedere l'accesso per l'account personalizzato.Nota In Microsoft Internet Information Server (IIS) 5.0, viene eseguito ASP.NET sotto il ASPNET account e non sono sotto il servizio di rete dell'account. Di conseguenza, è necessario per concedere autorizzazioni per l'account ASPNET in un computer che esegue IIS 5.0. Per concedere l'accesso per un account utente specifico, il seguente comando al prompt dei comandi: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s "IssuedToName" - a "AccountName" Nota AccountName è il nome di un account di computer locale o un account di dominio. IssuedToName è il nome della società o del dominio a cui è stato rilasciato il certificato del client. Questo comando contiene una stringa di ricerca senza distinzione tra maiuscole e minuscole. La stringa di ricerca trova il primo certificato enumerato con un nome oggetto che contiene la stringa.Il comando della riga di comando riportato di seguito è un esempio di come concedere l'accesso al certificato client per l'account servizio di rete in Microsoft Internet Information Services (IIS) 6.0: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s "IssuedToName" - a "NetworkService" Il comando della riga di comando riportato di seguito è un esempio su come concedere l'accesso al certificato client per l'account ASPNET in IIS 5.0: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s "IssuedToName" - a "ASPNET" Nota Quando si utilizza lo strumento di configurazione di Windows HTTP Services certificati, è possibile combinare il processo di importazione del certificato client e il processo di configurazione dell'accesso al certificato client in un passaggio. Ad esempio, il comando della riga di comando riportato di seguito esegue entrambi i processi: Winhttpcertcfg.exe PFXFile -i - c LOCAL_MACHINE\My - a ? AccountName ? Passaggio 3: Copiare il certificato client dall'archivio utente locale archivio del computer localeSe un'applicazione interattiva, ad esempio un'applicazione di Windows Form o di un'applicazione della riga di comando è possibile accedere il certificato client, il certificato di client già viene memorizzato nell'archivio utente locale. Tuttavia, se un'applicazione di servizio come un'applicazione Web ASP.NET non è in grado di accedere lo stesso certificato client, il certificato del client potrebbe non essere archiviato nell'archivio locale del computer.Questo passaggio viene illustrato come copiare un certificato client nell'archivio utente locale archivio del computer locale utilizzando l'esportazione guidata certificati. Nota Se il certificato client è già nell'archivio locale del computer o se è possibile installare il certificato client direttamente nell'archivio computer locale come nel passaggio 1, andare al passaggio 4. Tuttavia, se si utilizza il passaggio 3, è necessario quindi tornare al passaggio 2 per concedere accesso il certificato client. Per copiare il certificato client in archivio del computer locale, attenersi alla seguente procedura:
Passaggio 4: Installare il certificato principale dell'autorità di certificazioneSe il certificato client è già firmato da una CA esterna, ad esempio VeriSign, o se è già stato installato il certificato principale per la CA, è possibile omettere il passaggio 4.Per impostazione predefinita, Windows ha i certificati principali di molte CA esterne già preinstallato nell'archivio certificati radice attendibili. Verificare che sia installato il certificato principalePer verificare che il certificato principale per la CA è installato, attenersi alla seguente procedura:
Installare il certificato principaleSe il certificato principale dell'autorità di certificazione che si desidera utilizzare non è elencato, è necessario installare il certificato principale. Se il certificato principale dell'autorità di certificazione che si desidera utilizzare è stato emesso per l'utente in un file di certificato ad esempio un file con estensione cer, un file DER o un file pfx, attenersi alla seguente procedura:
Richiesta del certificato principaleSe la CA che si desidera utilizzare è incluso nel database di installazione di Servizi certificati Microsoft, è possibile richiedere il certificato principale. Per effettuare questa operazione, attenersi alla seguente procedura:
Chiamare il servizio WebDopo aver installato il certificato client nell'archivio del computer locale o l'archivio utente locale, è possibile accedere il certificato client dall'applicazione Web ASP.NET per chiamare il servizio Web. La procedura per accedere al certificato client è lo stesso per un'applicazione Windows Form o per un Web di ASP.NET dell'applicazione.Se si utilizza .NET Framework 1.1, è necessario esportare la chiave in un file con codifica DER. È necessario esportare la chiave perché la classe System.Security.Cryptography.X509Certificates.X509Certificate non contiene metodi per accedere direttamente i dettagli di un certificato da un archivio certificati. Di conseguenza, l'applicazione deve leggere il dei dettagli di un certificato da un file con codifica DER. Nota Web Services Enhancements 2.0 per Microsoft .NET (WSE) fornisce un modo per un'applicazione per recuperare i dettagli di un certificato direttamente da un archivio certificati. Nel codice di esempio C# riportato di seguito viene illustrato come chiamare un servizio Web passando un certificato client per l'autenticazione. Web Services Enhancements 2.0 per Microsoft .NETWeb Services Enhancements 2.0 per Microsoft .NET (WSE) è un Microsoft .NET classe libreria per la creazione di servizi Web con i protocolli più recenti dei servizi Web. Questi protocolli includono:
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)
Non è necessario utilizzare uno di questi protocolli per un Web di accedere a servizio che richiede l'autenticazione dei certificati client. È possibile tuttavia utilizzare la classe Microsoft.Web.Services2.Security.X509 . La classe Microsoft.Web.Services2.Security.X509 contiene metodi per accedere direttamente a un certificato client nell'archivio certificati. Se si utilizzano questi metodi, non è necessario esportare il certificato in un file.Il codice di esempio C# riportato di seguito viene illustrato come trovare il certificato primo è denominato SecureMathClient nell'archivio locale del computer. Quindi, questo codice di esempio utilizza il certificato per chiamare il metodo Add del servizio Web math. Il servizio Web math richiede certificati client. RiferimentiPer ulteriori informazioni sulla classe System.Security.Cryptography.X509Certificates.X509Certificate , visitare il seguente sito Web MSDN (informazioni in lingua inglese): 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)
Per ulteriori informazioni su come chiamare un sito Web con protezione avanzata utilizzando un'applicazione Web ASP.NET, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato: 817854
(http://support.microsoft.com/kb/817854/
)
FIX: Applicazione Web ASP.NET non può inviare un certificato client a un sito Web con protezione avanzata Le informazioni in questo articolo si applicano a:
Traduzione automatica articoliIl presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica. Clicca qui per visualizzare la versione originale in inglese dell?articolo: 901183
(http://support.microsoft.com/kb/901183/en-us/
)
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO. | Traduzione articoli
|


Torna all'inizio
