Procedura dettagliata: Uso della modalità di sicurezza dei messaggi con l'adapter WCF-NetTcp
Nota
Per altre informazioni sugli adattatori, vedere Adapter in BizTalk Server.
Introduzione
Questa procedura dettagliata illustra come configurare l'adattatore WCF-NetTcp per l'uso della modalità di sicurezza dei messaggi di Windows Communication Foundation (WCF), che usa la specifica WS-Security per proteggere i messaggi trasmessi dall'adapter. Nella specifica sono descritti i miglioramenti apportati al protocollo di messaggistica SOAP per assicurare riservatezza, integrità e autenticazione al livello di messaggio SOAP. La modalità Sicurezza messaggio richiede la specifica del certificato del servizio per operazioni quali crittografia/decrittografia e firma/verifica, a seconda delle combinazioni della modalità.
L'adapter WCF-NetTcp utilizza il binding NetTcpBinding per le comunicazioni tra client WCF e servizi remoti WCF. Fornisce accesso completo alle funzionalità di sicurezza, affidabilità e transazioni SOAP. Consente la pubblicazione di orchestrazioni e schemi come servizi WCF e offre inoltre la possibilità di utilizzare servizi WCF esterni in un'orchestrazione. Questo adapter utilizza il trasporto TCP e i messaggi con codifica binaria. L'adapter WCF-NetTcp è costituito da un adapter di trasmissione e da uno di ricezione.
In questa procedura dettagliata viene illustrato come creare certificati per la modalità Sicurezza messaggio tramite Servizi certificati Active Directory. Verranno creati certificati per il server e per il client e quindi verrà configurato un indirizzo di ricezione WCF-NetTcp per l'utilizzo dei certificati in modalità Sicurezza messaggio. Usando un client WCF, si invieranno messaggi al percorso di ricezione in uno stato crittografato in base alla sintassi e all'elaborazione della crittografia XML.
Al termine della procedura dettagliata sarà chiaro come completare le attività seguenti:
Utilizzo di Servizi certificati Active Directory per creare una richiesta di certificato e completamento del processo con l'emissione del certificato.
Dalla console di amministrazione di BizTalk Server configurare l'adattatore WCF-NetTcp per l'uso della modalità di sicurezza dei messaggi.
Prerequisiti
Per eseguire la procedura illustrata in questo esempio, verificare che nell'ambiente siano installati i prerequisiti seguenti:
Sia il computer che compila gli assembly ed esegue il processo di distribuzione, sia il computer che esegue l'esempio, richiedono Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 e Microsoft BizTalk Server.
Nel computer utilizzato per compilare gli assembly ed eseguire il processo di distribuzione è richiesto Microsoft Visual Studio.
Il computer che esegue l'esempio richiede gli adapter WCF e gli strumenti di amministrazione WCF. Queste sono le opzioni da installare durante l'installazione di Microsoft BizTalk Server.
Nei computer usati per eseguire attività amministrative, è necessario eseguire come account utente membro del gruppo BizTalk Server Administrators per configurare le impostazioni dell'applicazione BizTalk Server all'interno della console di amministrazione di BizTalk Server. Questo account utente deve inoltre essere membro del gruppo Administrators locale per poter eseguire la distribuzione delle applicazioni, la gestione delle istanze dell'host e altre attività che potrebbero rivelarsi necessarie.
In qualsiasi computer che richiede la funzionalità WCF completare la procedura di installazione monouso per gli esempi WCF in https://go.microsoft.com/fwlink/?LinkId=135510.
Nel computer che esegue l'esempio e importa un'associazione o un file di .msi in BizTalk Server, verificare che l'host non sia un host attendibile o che l'importazione avrà esito negativo.
Nel computer utilizzato per eseguire l'esempio, assicurarsi che sia installato Servizi certificati Active Directory.
È necessario scaricare il codice della procedura dettagliata ed estrarlo nel computer. Questa procedura dettagliata fa parte dell'intero pacchetto della procedura dettagliata dell'adapter WCF. È possibile scaricare il fileWCFAdapterWalkthroughs.exe dal BizTalk Server Developer Center all'indirizzo https://go.microsoft.com/fwlink/?LinkId=194140.
Creare i certificati per questa procedura dettagliata
In questa sezione verranno richiesti certificati client e del servizio, che verranno quindi emessi e installati negli archivi appropriati. Servizi certificati Active Directory viene utilizzato per creare un certificato con una catena di certificati attendibile. Se Servizi certificati Active Directory non è stato installato come parte dei prerequisiti, eseguire l'installazione nel computer. Se è già installato, andare al passaggio 2.
Fare clic sul pulsante Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
Nel nodo Server Manager fare clic su Aggiungi e quindi su Ruoli.
Verrà visualizzata la finestra di dialogo Prima di iniziare per l'Aggiunta guidata ruoli. Fare clic su Avanti.
Nella pagina Selezione ruoli server selezionare Servizi certificati Active Directory, fare clic su Avanti e quindi seguire le istruzioni visualizzate per completare l'installazione.
Per creare una richiesta di certificato per l'autenticazione del servizio, eseguire le operazioni seguenti:
In Internet Explorer visitare il sito
http://localhost/certsrv
Web . Nella pagina iniziale fare clic su Richiedi un certificato e quindi su Richiesta di certificato avanzato nella pagina Richiedi un certificato .Nota
Quando si usa Windows Server 2008 SP2 come autorità di certificazione e si richiede una richiesta di certificato da un computer Windows Server 2008 SP2, è possibile che venga visualizzato l'errore "Per completare la registrazione del certificato, il sito Web per la CA deve essere configurato per l'uso dell'autenticazione HTTPS". Se si verifica questo errore, il sito Web di registrazione deve essere configurato con un certificato Web (SSL). Per informazioni su come eseguire questa attività, fare riferimento ai collegamenti seguenti:
Nella pagina Richiesta avanzata certificato fare clic su Crea e inviare una richiesta a questa CA.
Nella pagina Richiesta avanzata certificato digitare
localhost
nella casella di testo Nome , selezionare Certificato di autenticazione server nell'elenco a discesa Tipo di certificato necessario e quindi fare clic su Invia.
Per creare una richiesta di certificato per l'autenticazione client, eseguire le operazioni seguenti:
In Internet Explorer visitare il sito
http://localhost/certsrv
Web . Nella pagina iniziale fare clic su Richiedi un certificato e quindi su Richiesta di certificato avanzato nella pagina Richiedi un certificato .Nella pagina Richiesta avanzata certificato fare clic su Crea e inviare una richiesta a questa CA.
Nella pagina Richiesta avanzata certificato digitare
contoso
nella casella di testo Nome , selezionare Certificato di autenticazione client dall'elenco a discesa Tipo di certificato necessario e quindi fare clic su Invia.
Nota
Il certificato di autenticazione client viene usato se si esegue BizTalk Server nel computer diverso dal controller di dominio. Verrà configurato nella finestra di dialogo delle proprietà dell'adattatore.
Emettere i certificati eseguendo le operazioni seguenti nella console di gestione Autorità di certificazione:
Fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Autorità di certificazione.
Nella console di gestione autorità di certificazione espandere il nome dell'autorità di certificazione e quindi fare doppio clic su Richiesta in sospeso.
Nel riquadro destro della console di gestione autorità di certificazione fare clic con il pulsante destro del mouse sulla richiesta per il certificato di autenticazione del servizio, scegliere Tutte le attività e quindi fare clic su Problema.
Nel riquadro destro della console di gestione autorità di certificazione fare clic con il pulsante destro del mouse sulla richiesta per il certificato di autenticazione client, scegliere Tutte le attività e quindi fare clic su Problema.
Chiudere la console di gestione autorità di certificazione .
Eseguire le operazioni seguenti per installare nel computer i certificati emessi:
In Internet Explorer visitare il sito
http://localhost/certsrv
Web .Nella pagina iniziale fare clic su Visualizza lo stato di una richiesta di certificato in sospeso.
Nella pagina Visualizza lo stato di una richiesta di certificato in sospeso fare clic sul certificato di autenticazione server.
Nella pagina Certificato rilasciato fare clic su Installa questo certificato.
In Internet Explorer visitare il sito
http://localhost/certsrv
Web .Nella pagina iniziale fare clic su Visualizza lo stato di una richiesta di certificato in sospeso.
Nella pagina Visualizza stato di una richiesta di certificato in sospeso fare clic sul certificato di autenticazione client.
Nella pagina Certificato rilasciato fare clic su Installa questo certificato.
Eseguire le operazioni seguenti per verificare che il certificato emesso sia stato installato correttamente:
Aprire Microsoft Management Console (MMC). A tale scopo, fare clic su Start, fare clic su Esegui, digitare
mmc
e quindi fare clic su OK.Nella console MMC scegliere Aggiungi/Rimuovi snap-in dal menu File.
Nella finestra di dialogo Aggiungi/Rimuovi snap-in fare clic su Aggiungi.
Nella finestra di dialogo Aggiungi snap-in autonomo selezionare Certificati dall'elenco Snap-in autonomo disponibile e quindi fare clic su Aggiungi.
Nella finestra di dialogo Snap-in Certificato selezionare l'opzione Account utente personale e quindi fare clic su Fine.
Chiudere tutte le finestre di dialogo aperte.
Nella finestra Radice della console di MMC espandere Certificati - Utente corrente, Personale, Certificati, quindi assicurarsi che vengano visualizzati i certificati installati nel passaggio precedente.
Creare l'applicazione BizTalk per questa procedura dettagliata
Fare clic su Start, scegliere Tutti i programmi, Microsoft BizTalk Server 20xx e quindi fare clic su Amministrazione BizTalk Server.
Nella console di amministrazione di BizTalk Server espandere Gruppo BizTalk, fare clic con il pulsante destro del mouse su Applicazioni, scegliere Nuovoe quindi fare clic su Applicazione.
Nella scheda Generale della finestra di dialogo Proprietà applicazione digitare
WcfMessageSecurity
e quindi fare clic su OK.Creare un indirizzo di ricezione utilizzando l'adapter WCF-NetTcp per l'applicazione BizTalk come indicato di seguito:
Nella console di amministrazione di BizTalk Server espandere WcfMessageSecurity, fare clic con il pulsante destro del mouse su Porte di ricezione, scegliere Nuovoe quindi fare clic su Porta di ricezione unidirezionale.
Nella casella di testo Nome della finestra di dialogo Proprietà porta di ricezione digitare
WcfMessageSecurity.OrderRequest.Receive
e quindi fare clic su OK. Il nome di questa porta di ricezione è arbitrario ma appropriato.Nella console di amministrazione di BizTalk Server fare clic con il pulsante destro del mouse su Percorsi di ricezione, scegliere Nuovo e quindi fare clic su Posizione di ricezione unidirezionale. Il client WCF invierà un messaggio WCF a questo percorso di ricezione. Selezionare la porta di ricezione WcfMessageSecurity.OrderRequest.Receive e quindi fare clic su OK.
Nella casella di testo Nome della finestra di dialogo Proprietà posizione di ricezione digitare
WcfMessageSecurity.OrderRequest.Receive.NetTcp
. Il nome di questo indirizzo di ricezione è arbitrario ma appropriato.Nella finestra di dialogo Proprietà posizione di ricezione , nella sezione Trasporto accanto a Tipo selezionare WCF-NetTcp dall'elenco a discesa e quindi fare clic su Configura.
Nella finestra di dialogo Proprietà trasporto WCF-NetTcp digitare nella scheda Generale della casella
net.tcp://localhost/WcfMessageSecurity
di testo Indirizzo (URI) .Nella scheda Sicurezza della finestra di dialogo Proprietà trasporto WCF-NetTcp selezionare Messaggio dall'elenco a discesa Modalità di sicurezza e quindi selezionare Certificato dall'elenco a discesa Tipo di credenziale client messaggio. In questo modo l'adapter WCF-NetTcp verrà configurato per l'utilizzo della modalità Sicurezza messaggio.
Configurare il certificato del servizio da utilizzare con la modalità Sicurezza messaggio. Nella sezione Certificazione del servizio della finestra di dialogo Proprietà trasporto WCF-NetTcp fare clic su Sfoglia. Nella finestra di dialogo Seleziona certificato del servizio selezionare il certificato di autenticazione server installato nella procedura precedente e quindi fare clic su OK per chiudere la finestra di dialogo e salvare le modifiche.
Chiudere tutte le finestre di dialogo aperte.
Nota
Per autenticare i certificati client con gli adattatori di ricezione WCF, è necessario installare la catena di certificati CA per i certificati client nell'archivio certificati Autorità di certificazione radice attendibili del computer che esegue le istanze host per le schede WCF. Poiché questa procedura dettagliata presuppone che il servizio certificati sia installato nello stesso computer del client WCF e degli adattatori WCF, non è necessario installare la catena di certificati CA nel computer.
Creare una porta di trasmissione FILE per l'applicazione BizTalk. Si tratta del percorso in cui il messaggio di output della richiesta dell'ordine verrà inviato dall'orchestrazione che rappresenta il servizio WCF.
Nella console di amministrazione di BizTalk Server espandere WcfMessageSecurity, fare clic con il pulsante destro del mouse su Porte di trasmissione, scegliere Nuovoe quindi fare clic su Porta di trasmissione statica unidirezionale.
Nella casella di testo
WcfMessageSecurity.OrderRequest.Send.FILE
Nome della finestra di dialogo Proprietà porta di trasmissione digitare nella scheda Generale .Nella finestra di dialogo Proprietà porta di trasmissione, nella sezione Trasporto accanto a Tipo selezionare FILE dall'elenco a discesa e quindi fare clic su Configura.
Nella scheda Generale della finestra di dialogo Proprietà trasporto FILE digitare
C:\WCFMessageSecurity\OrderRequestOut
nella casella di testo Cartella di destinazione e quindi fare clic su OK.Nella scheda Filtri della finestra di dialogo Proprietà porta di trasmissione selezionare BTS. ReceivePortName per il campo Proprietà, immettere
WcfMessageSecurity.OrderRequest.Receive
per il campo Valore e quindi fare clic su OK. Questa espressione di filtro indirizza i messaggi WCF in ingresso dal client alla porta di ricezione WcfMessageSecurity.OrderRequest.Receive a questa porta di trasmissione.
Testare il client WCF sull'applicazione BizTalk
Nella console di amministrazione di BizTalk Server fare clic con il pulsante destro del mouse su WcfMessageSecurity e quindi scegliere Avvia. Nella finestra di dialogo Start fare clic su Start.
Nella console di amministrazione di BizTalk Server espandere Impostazioni piattaforma, istanze host, fare clic con il pulsante destro del mouse su BizTalkServerApplication o su un'altra istanza host appropriata e quindi scegliere Riavvia.
Creare una cartella denominata C:\WCFMessageSecurity per la cartella di lavoro per questa procedura dettagliata. Estrarre i file della procedura dettagliata in questa cartella.
In Visual Studio aprire il file WcfMessageSecurity.sln nella cartella C:\WCFMessageSecurity .
In Visual Studio, in Esplora soluzioni, espandere WcfClient e quindi aprire Program.cs per la revisione.
Il client invia un messaggio all'indirizzo di ricezione WCF-NetTcp creato nella procedura precedente.
Il client crea un canale con NetTcpBinding e quindi configura l'associazione per l'uso dei certificati per il tipo di credenziale client.
Il client configura il comportamento dell'endpoint per l'utilizzo del certificato di autenticazione client installato nella procedura precedente per l'autenticazione client.
La classe Program implementa le interfacce IClientMessageInspector e IEndpointBehavior per visualizzare i messaggi WCF in uscita da questo client al prompt dei comandi.
In Visual Studio, in Esplora soluzioni, fare clic con il pulsante destro del mouse sulla soluzione WcfMessageSecurity e quindi scegliere Ricompila.
In Visual Studio scegliere Avvia senza eseguire debug dal menu Debug per eseguire WcfClient per inviare un messaggio ai percorsi di ricezione WCF-NetTcp. Verrà visualizzato un prompt dei comandi in cui è illustrato il risultato dell'esecuzione.
Al prompt dei comandi esaminare il messaggio di richiesta di ordine. Prestare attenzione al campo OrderId e alla struttura del messaggio.
Al prompt dei comandi passare alla
C:\WCFMessageSecurity\OrderRequestOut
cartella e verificare che venga visualizzato il messaggio di richiesta dell'ordine inviato dal client WCF.Chiudere il prompt dei comandi.