Identificativo articolo: 901183 - Ultima modifica: giovedì 13 dicembre 2007 - Revisione: 3.2 Come chiamare un servizio Web utilizzando un certificato client per l'autenticazione in un'applicazione Web ASP.NETIn questa paginaSommario in 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 sono validi anche per quando si effettua una richiesta HTTP diretta utilizzare la classe HttpWebRequest se non si richiama un servizio Web. INTRODUZIONESpesso, servizi Web devono autenticare le applicazioni che chiamare i servizi Web. I servizi Web devono eseguire autenticazioni della chiamata applicazioni prima i servizi Web possono eseguire le autorizzazioni. Una tecnica di autenticazione consiste per richiedere le applicazioni che chiamare il servizio Web per presentare un certificato client. Quando un'applicazione Web ASP.NET tenta di chiamare un servizio Web che utilizza l'autenticazione di certificato, potresti ricevere un messaggio di errore "Accesso negato". Quando un'applicazione console o un'applicazione di Microsoft Windows Forms chiama lo stesso servizio Web, non verranno pertanto visualizzati un messaggio di errore. Questo comportamento si verifica perché il computer gestisce due archivi di certificati differenti:
InformazioniPer abilitare un'applicazione Web ASP.NET utilizzare un certificato client, è necessario installare il certificato client nell'archivio del computer locale. Quando si installa un certificato client nell'archivio del computer locale, il certificato client è disponibile solo per gli account utente del gruppo Administrators e per l'utente che ha installato il certificato del client. Di conseguenza, è necessario concedere l'accesso al certificato client per l'account utente utilizzato per eseguire l'applicazione Web ASP.NET. Nota È necessario il Microsoft .NET Framework 1.1 Service Pack 1 (SP1) installata per utilizzare client certificati nell'archivio del computer locale. Inoltre, quando l'applicazione Web ASP.NET chiama il servizio Web, l'applicazione necessario esportare il certificato del client dall'archivio certificati e quindi aggiungere il certificato client a chiamata al servizio Web. Installare il certificato del client e concedere l'accesso per l'account utentePer installare il certificato client e concedere l'accesso al certificato client per l'account utente utilizzato per eseguire l'applicazione Web ASP.NET, attenersi alla seguente procedura.Passaggio 1: installare il certificato client nell'archivio del computer localeSe 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 concedere l'accesso al certificato client altri account utente come l'account di servizio di rete. A tale scopo, attenersi alla seguente procedura:
Passaggio 2: configurazione accesso il certificato del clientIn questo passaggio è necessario concedere autorizzazioni per l'account ASP.NET accedere al certificato client archiviato in un 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 l'account di servizio di rete. Se è stato configurato un account personalizzato per eseguire ASP.NET, è necessario concedere l'accesso per l'account personalizzato.Nota In Microsoft Internet Information Server (IIS) 5.0, ASP.NET viene eseguito in ASP.NET il conto e non incluso nel servizio di rete del conto. Di conseguenza, è necessario per concedere autorizzazioni per l'account ASPNET in un computer in cui è in esecuzione IIS 5.0. Per concedere l'accesso per un account utente specifico, eseguire il comando seguente al prompt dei comandi: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s " IssuedToName " - a " AccountName " Nota AccountName è il nome di un account computer locale o un account di dominio. IssuedToName è il nome della società o del dominio a cui è stato rilasciato il certificato client. Questo comando contiene una stringa di ricerca senza distinzione tra maiuscole e minuscole. La stringa di ricerca trova il primo certificato enumerato ha un nome di oggetto che contiene la stringa.Il seguente comando da riga di comando è un esempio di come concedere l'accesso al certificato client per l'account di servizio di rete in Microsoft Internet Information Services (IIS) 6.0: WinHttpCertCfg.exe -g-c LOCAL_MACHINE\MY -s " IssuedToName " - a "NetworkService" Il seguente comando da riga di comando è un esempio su come concedere l'accesso al certificato client 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 il certificato del client e il processo di configurazione dell'accesso al certificato client in un passaggio. Ad esempio, il comando della riga di comando che segue consente di eseguire entrambi i processi: Winhttpcertcfg.exe -i PFXFile - c LOCAL_MACHINE\My - a ? AccountName ? Passaggio 3: copia il certificato del client dall'archivio utente locale all'archivio del computer localeSe un'applicazione interattiva ad esempio un'applicazione Windows Form o un'applicazione da riga di comando è possibile accedere al certificato client, il certificato client è già memorizzato nell'archivio utente locale. Se invece un'applicazione di servizio ad esempio un'applicazione Web ASP.NET non può accedere il certificato del client stesso, il certificato client potrebbe non essere memorizzato nell'archivio del computer locale.Questo passaggio viene illustrato come copiare un certificato client nell'archivio utente locale nell'archivio del computer locale di utilizzando Esportazione guidata certificati. Nota Se il certificato client è già nell'archivio del computer locale o se è possibile installare il certificato client direttamente nell'archivio computer locale come nel passaggio 1, eseguire il passaggio 4. Tuttavia, se si utilizza il passaggio 3, è necessario restituisce al passaggio 2 per concedere accesso il certificato del client. Per copiare il certificato del 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à installato il certificato principale per l'autorità di CERTIFICAZIONE, è possibile omettere passaggio 4.Per impostazione predefinita, Windows ha i certificati radice delle molte CA esterne preinstallato già nell'archivio certificati radice attendibili. Verificare che sia installato il certificato radicePer verificare che il certificato principale per l'autorità di CERTIFICAZIONE è installato, eseguire la procedura seguente:
Installare il certificato radiceSe 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 è stata emessa per l'utente in un file di certificato ad esempio un file cer, un file .DER o un file .pfx, eseguire la procedura seguente:
Richiesta del certificato radiceSe autorità di CERTIFICAZIONE che si desidera utilizzare è incluso nel database di installazione di Servizi certificati Microsoft, è possibile richiedere il certificato principale. A tale scopo, attenersi alla seguente procedura:
Chiamare il servizio WebDopo aver installato il certificato client nell'archivio del computer locale o nell'archivio di utente locale, è possibile accedere al certificato client dall'applicazione Web ASP.NET per chiamare il servizio Web. La procedura per accedere al certificato client è la stessa 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 codificato DER. È necessario esportare la chiave perché la classe System.Security.Cryptography.X509Certificates.X509Certificate non contiene metodi per accedere direttamente ai dettagli di un certificato da un archivio di certificati. Di conseguenza, l'applicazione deve informazioni dettagliate di un certificato da un file codificato DER. Nota Web Services Enhancements 2.0 per Microsoft .NET (WSE) fornisce un modo per un'applicazione recuperare i dettagli di un certificato direttamente da un archivio certificati. Il seguente codice di esempio C# 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 tramite i protocolli di servizi Web più recenti. Questi protocolli sono i seguenti:
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 del certificato client. Tuttavia, può si desidera 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 si dispone esportare il certificato in un file.Nel codice di esempio C# seguente viene illustrato come trovare il primo certificato è denominato SecureMathClient nell'archivio del computer locale. Quindi, questo codice di esempio utilizza il certificato per chiamare il metodo Add dell'matematiche servizio Web. La matematica di servizio Web richiede i certificati client. RiferimentiPer ulteriori informazioni sulla classe System.Security.Cryptography.X509Certificates.X509Certificate , visitare il seguente sito Web di 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 seguente numero dell'articolo per visualizzare l'articolo della Microsoft Knowledge Base: 817854
(http://support.microsoft.com/kb/817854/
)
Correzione: applicazione Web ASP.NET non può recapitare 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. Nel caso in cui si riscontrino degli errori e si desideri inviare dei suggerimenti, è possibile completare il questionario riportato alla fine del presente articolo. 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
