Teilen über


Exemplarische Vorgehensweise: Verwenden des Sicherheitsmodus „Nachricht“ für den WCF-NetTcp-Adapter

Hinweis

Weitere Informationen zu Adaptern finden Sie unter Adapter in BizTalk Server.

Einführung

In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie den WCF-NetTcp-Adapter für die Verwendung des Windows Communication Foundation-Nachrichtensicherheitsmodus (WCF) konfigurieren, der die WS-Security-Spezifikation verwendet, um nachrichten zu schützen, die der Adapter überträgt. In dieser Spezifikation sind die am SOAP-Messagingprotokoll vorgenommenen Verbesserungen beschrieben, die dazu beitragen, Vertraulichkeit, Integrität und Authentifizierung auf der SOAP-Nachrichtenebene zu erreichen. Für den Sicherheitsmodus Nachricht muss das Dienstzertifikat für bestimmte Vorgänge wie das Verschlüsseln/Entschlüsseln und Signieren/Überprüfen abhängig von den jeweiligen Sicherheitsmoduskombinationen angegeben werden.

Für die Kommunikation zwischen WCF-Clients und WCF-Remotediensten wird vom WCF-NetTcp-Adapter die Bindung NetTcpBinding verwendet. Der Adapter bietet Vollzugriff auf die SOAP-Sicherheit, Zuverlässigkeit und Transaktionsfunktionen. Er ermöglicht die Veröffentlichung von Orchestrierungen und Schemas als WCF-Dienste und sorgt außerdem dafür, dass eine Orchestrierung externe WCF-Dienste in Anspruch nehmen kann. Von diesem Adapter wird der TCP-Transport verwendet. Nachrichten werden binär codiert. Der WCF-NetTcp-Adapter besteht aus einem Sendeadapter und einem Empfangsadapter.

Im Rahmen dieser exemplarischen Vorgehensweise wird das Erstellen von Zertifikaten für den Sicherheitsmodus Nachricht mithilfe des Active Directory-Zertifikatdiensts erläutert. Sie erstellen Zertifikate für den Server und den Client und konfigurieren dann einen WCF-NetTcp-Empfangsspeicherort für die Verwendung von Zertifikaten im Sicherheitsmodus Nachricht. Mithilfe eines WCF-Clients senden Sie Nachrichten gemäß XML-Verschlüsselungssyntax und -verarbeitung in einem verschlüsselten Zustand an diesen Empfangsspeicherort.

In dieser exemplarischen Vorgehensweise erwerben Sie Kenntnisse zu den folgenden Aufgaben:

  • Verwenden des Active Directory-Zertifikatdiensts zum Erstellen einer Zertifikatanforderung und Abschließen des Vorgangs durch Ausstellen des Zertifikats

  • Konfigurieren Sie in der BizTalk Server-Verwaltungskonsole den WCF-NetTcp-Adapter für die Verwendung des Nachrichtensicherheitsmodus.

Voraussetzungen

Um die Schritte in diesem Beispiel auszuführen, stellen Sie sicher, dass Ihre Umgebung die folgenden Voraussetzungen installiert:

  • Sowohl der Computer, auf dem die Assemblys erstellt und der Bereitstellungsprozess ausgeführt wird, als auch der Computer, auf dem das Beispiel ausgeführt wird, erfordern Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 und Microsoft BizTalk Server.

  • Auf dem Computer, auf dem Sie die Assemblys erstellen und den Bereitstellungsvorgang ausführen, muss Microsoft Visual Studio installiert sein.

  • Der Computer, auf dem das Beispiel ausgeführt wird, erfordert die WCF-Adapter und die WCF-Verwaltungstools. Dies sind Optionen, die während des Setups von Microsoft BizTalk Server installiert werden.

  • Auf den Computern, die Sie zum Ausführen von Verwaltungsaufgaben verwenden, müssen Sie als Benutzerkonto ausführen, das Mitglied der Gruppe BizTalk Server Administratoren ist, um die BizTalk Server Anwendungseinstellungen in der BizTalk Server Verwaltungskonsole zu konfigurieren. Dieses Benutzerkonto muss auch zu den lokalen Administratoren gehören, damit Sie Anwendungen bereitstellen, Hostinstanzen verwalten sowie andere gegebenenfalls erforderliche Aufgaben ausführen können.

  • Führen Sie auf jedem Computer, der WCF-Funktionen erfordert, das einmalige Setupverfahren für die WCF-Beispiele unter aus https://go.microsoft.com/fwlink/?LinkId=135510.

  • Stellen Sie auf dem Computer, auf dem das Beispiel ausgeführt wird und eine Bindung oder eine .msi-Datei in BizTalk Server importiert, sicher, dass der Host kein vertrauenswürdiger Host ist oder der Import fehlschlägt.

  • Stellen Sie auf dem Computer, auf dem das Beispiel ausgeführt wird, sicher, dass die Active Directory-Zertifikatdienste installiert sind.

  • Sie müssen den Code für diese exemplarische Vorgehensweise herunterladen und auf dem Computer extrahieren. Diese exemplarische Vorgehensweise ist Teil des gesamten WCF-Adapterpakets Exemplarische Vorgehensweise. Sie können die DateiWCFAdapterWalkthroughs.exe aus dem BizTalk Server Developer Center unter https://go.microsoft.com/fwlink/?LinkId=194140herunterladen.

Erstellen der Zertifikate für diese exemplarische Vorgehensweise

  1. In diesem Abschnitt fordern Sie Dienst- und Clientzertifikate an, stellen die Zertifikate aus und installieren sie dann in den entsprechenden Verzeichnissen. Die Active Directory-Zertifikatdienste werden zum Erstellen eines Zertifikats mit einer vertrauenswürdigen Zertifikatkette verwendet. Wenn Sie die Installation der Active Directory-Zertifikatdienste nicht im Rahmen der Voraussetzungen ausgeführt haben, müssen Sie die Active Directory-Zertifikatdienste auf dem Computer installieren. Wenn die Active Directory-Zertifikatdienste bereits installiert sind, fahren Sie mit Schritt 2 fort.

    1. Klicken Sie auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Server-Manager.

    2. Klicken Sie unter dem Knoten Server-Manager auf Hinzufügen, und klicken Sie dann auf Rollen.

    3. Dadurch wird das Dialogfeld Vor Beginn des Assistenten zum Hinzufügen von Rollen angezeigt. Klicken Sie auf Weiter.

    4. Wählen Sie auf der Seite Serverrollen auswählendie Option Active Directory-Zertifikatdienste aus, klicken Sie auf Weiter, und befolgen Sie dann die Anweisungen auf dem Bildschirm, um die Installation abzuschließen.

  2. Erstellen Sie eine Zertifikatanforderung für die Dienstauthentifizierung, und gehen Sie dabei folgendermaßen vor:

    1. Besuchen Sie unter Internet Explorer die Website http://localhost/certsrv. Klicken Sie auf der Seite Willkommen auf Zertifikat anfordern, und klicken Sie dann auf der Seite Zertifikat anfordern auf Erweiterte Zertifikatanforderung.

      Hinweis

      Wenn Sie Windows Server 2008 SP2 als Zertifizierungsstelle verwenden und eine Zertifikatanforderung von einem Windows Server 2008 SP2-Computer anfordern, erhalten Sie möglicherweise die Fehlermeldung "Um die Zertifikatregistrierung abzuschließen, muss die Website für die Zertifizierungsstelle für die Verwendung der HTTPS-Authentifizierung konfiguriert sein". Wenn dieser Fehler auftritt, muss die Registrierungswebsite mit einem Webzertifikat (SSL) konfiguriert werden. Details zum Ausführen dieser Aufgabe finden Sie unter den folgenden Links:

      AD CS: Webregistrierung

      Installationsanleitung für IIS-Serverzertifikate

    2. Klicken Sie auf der Seite Erweiterte Zertifikatanforderung auf Erstellen und Senden einer Anforderung an diese Zertifizierungsstelle.

    3. Geben localhost Sie auf der Seite Erweiterte Zertifikatanforderung in das Textfeld Name ein, wählen Sie in der Dropdownliste Typ des erforderlichen Zertifikatsserverauthentifizierungszertifikat aus, und klicken Sie dann auf Übermitteln.

  3. Erstellen Sie eine Zertifikatanforderung für die Clientauthentifizierung, und gehen Sie dabei folgendermaßen vor:

    1. Besuchen Sie unter Internet Explorer die Website http://localhost/certsrv. Klicken Sie auf der Seite Willkommen auf Zertifikat anfordern, und klicken Sie dann auf der Seite Zertifikat anfordern auf Erweiterte Zertifikatanforderung.

    2. Klicken Sie auf der Seite Erweiterte Zertifikatanforderung auf Erstellen und Senden einer Anforderung an diese Zertifizierungsstelle.

    3. Geben contoso Sie auf der Seite Erweiterte Zertifikatanforderung in das Textfeld Name ein, wählen Sie in der Dropdownliste Typ des erforderlichen Zertifikatsclientauthentifizierungszertifikat aus, und klicken Sie dann auf Übermitteln.

    Hinweis

    Das Clientauthentifizierungszertifikat wird verwendet, wenn Sie BizTalk Server auf einem anderen Computer als dem Domänencontroller ausführen. Dies wird im Eigenschaftendialogfeld des Adapters konfiguriert.

  4. Stellen Sie die Zertifikate mithilfe der Zertifizierungsstellen-Verwaltungskonsole aus, und gehen Sie dabei folgendermaßen vor:

    1. Klicken Sie auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Zertifizierungsstelle.

    2. Erweitern Sie im Verwaltungskonsole Zertifizierungsstelle den Namen Ihrer Zertifizierungsstelle, und doppelklicken Sie dann auf Ausstehende Anforderung.

    3. Klicken Sie im rechten Bereich des Verwaltungskonsole Zertifizierungsstelle mit der rechten Maustaste auf die Anforderung für das Dienstauthentifizierungszertifikat, zeigen Sie auf Alle Aufgaben, und klicken Sie dann auf Problem.

    4. Klicken Sie im rechten Bereich des Verwaltungskonsole Zertifizierungsstelle mit der rechten Maustaste auf die Anforderung für das Clientauthentifizierungszertifikat, zeigen Sie auf Alle Aufgaben, und klicken Sie dann auf Problem.

    5. Schließen Sie die Verwaltungskonsole Zertifizierungsstelle.

  5. Installieren Sie die ausgestellten Zertifikate auf dem Computer, und gehen Sie dabei folgendermaßen vor:

    1. Besuchen Sie unter Internet Explorer die Website http://localhost/certsrv.

    2. Klicken Sie auf der Seite Willkommen auf Status ausstehender Zertifikatanforderungen anzeigen.

    3. Klicken Sie auf der Seite Status einer ausstehenden Zertifikatanforderung anzeigen auf das Serverauthentifizierungszertifikat.

    4. Klicken Sie auf der Seite Zertifikat ausgestellt auf Dieses Zertifikat installieren.

    5. Besuchen Sie unter Internet Explorer die Website http://localhost/certsrv.

    6. Klicken Sie auf der Seite Willkommen auf Status ausstehender Zertifikatanforderungen anzeigen.

    7. Klicken Sie auf der Seite Status einer ausstehenden Zertifikatanforderung anzeigen auf das Clientauthentifizierungszertifikat.

    8. Klicken Sie auf der Seite Zertifikat ausgestellt auf Dieses Zertifikat installieren.

  6. Überprüfen Sie, ob die ausgestellten Zertifikate ordnungsgemäß installiert wurden, und gehen Sie dabei folgendermaßen vor:

    1. Öffnen Sie die Microsoft Management Console (MMC). Klicken Sie hierzu auf Start, klicken Sie auf Ausführen, geben Sie ein mmc, und klicken Sie dann auf OK.

    2. Klicken Sie in der MMC im Menü Datei auf Snap-In hinzufügen/entfernen.

    3. Klicken Sie im Dialogfeld Snap-In hinzufügen/entfernen auf Hinzufügen.

    4. Wählen Sie im Dialogfeld Eigenständiges Snap-In hinzufügen die Option Zertifikate aus der Liste Verfügbares eigenständiges Snap-In aus, und klicken Sie dann auf Hinzufügen.

    5. Wählen Sie im Dialogfeld Zertifikat-Snap-In die Option Mein Benutzerkonto aus, und klicken Sie dann auf Fertig stellen.

    6. Schließen Sie alle geöffneten Dialogfelder.

    7. Erweitern Sie im MMC im Fenster Konsolenstamm die Optionen Zertifikate – Aktueller Benutzer, Persönlich, Zertifikate, und stellen Sie dann sicher, dass die Zertifikate angezeigt werden, die Sie im vorherigen Schritt installiert haben.

Erstellen der BizTalk-Anwendung für diese exemplarische Vorgehensweise

  1. Klicken Sie auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Microsoft BizTalk Server 20xx, und klicken Sie dann auf BizTalk Server Verwaltung.

  2. Erweitern Sie in der BizTalk Server Verwaltungskonsole die Option BizTalk-Gruppe, klicken Sie mit der rechten Maustaste auf Anwendungen, zeigen Sie auf Neu, und klicken Sie dann auf Anwendung.

  3. Geben Sie im Dialogfeld Anwendungseigenschaften auf der Registerkarte Allgemein die Zeichenfolge ein WcfMessageSecurity, und klicken Sie dann auf OK.

  4. Erstellen Sie für die BizTalk-Anwendung einen Empfangsspeicherort mithilfe des WCF-NetTcp-Adapters, und gehen Sie dabei folgendermaßen vor:

    1. Erweitern Sie in der BizTalk Server Verwaltungskonsole wcfMessageSecurity, klicken Sie mit der rechten Maustaste auf Empfangsports, zeigen Sie auf Neu, und klicken Sie dann auf Unidirektionale Empfangsport.

    2. Geben Sie im Dialogfeld Eigenschaften des Empfangsports im Textfeld Name den Namen ein WcfMessageSecurity.OrderRequest.Receive, und klicken Sie dann auf OK. Der Name dieses Empfangsports wurde ganz willkürlich gewählt, er ist jedoch logisch und ergibt somit Sinn.

    3. Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf Empfangsspeicherorte, klicken Sie auf Neu, und klicken Sie dann auf Unidirektionale Empfangsadresse. Der WCF-Client sendet eine WCF-Nachricht an diesen Empfangsspeicherort. Wählen Sie den Reciveport WcfMessageSecurity.OrderRequest.Receive aus, und klicken Sie dann auf OK.

    4. Geben Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts im Textfeld Name die Zeichenfolge ein WcfMessageSecurity.OrderRequest.Receive.NetTcp. Der Name dieses Empfangsspeicherorts wurde ganz willkürlich gewählt, er ist jedoch logisch und ergibt somit Sinn.

    5. Wählen Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts im Abschnitt Transport neben Typ die Option WCF-NetTcp aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.

    6. Geben net.tcp://localhost/WcfMessageSecuritySie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Allgemein im Textfeld Adresse (URI) ein.

    7. Wählen Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Sicherheit die Option Nachricht aus der Dropdownliste Sicherheitsmodus und dann zertifikat aus der Dropdownliste Nachrichtenclientanmeldeinformationstyp aus. Dadurch wird der WCF-NetTcp-Adapter für die Verwendung des Sicherheitsmodus Nachricht konfiguriert.

    8. Konfigurieren Sie das Dienstzertifikat für die Verwendung des Sicherheitsmodus Nachricht. Klicken Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften im Abschnitt Dienstzertifizierung auf Durchsuchen. Wählen Sie im Dialogfeld Dienstzertifikat auswählen das Serverauthentifizierungszertifikat aus, das Sie im vorherigen Verfahren installiert haben, und klicken Sie dann auf OK , um das Dialogfeld zu schließen und die Änderungen zu speichern.

    9. Schließen Sie alle geöffneten Dialogfelder.

      Hinweis

      Um die Clientzertifikate mit den WCF-Empfangsadaptern zu authentifizieren, muss die Zertifizierungsstellen-Zertifikatkette für die Clientzertifikate im Zertifikatspeicher der vertrauenswürdigen Stammzertifizierungsstellen des Computers installiert werden, auf dem die Hostinstanzen für die WCF-Adapter ausgeführt werden. Da bei dieser exemplarischen Vorgehensweise davon ausgegangen wird, dass der Zertifikatdienst auf demselben Computer wie der WCF-Client und die WCF-Adapter installiert ist, müssen Sie die Zertifizierungsstellenzertifikatkette nicht auf Ihrem Computer installieren.

  5. Erstellen Sie einen Dateisendeport für die BizTalk-Anwendung. Dies ist der Speicherort, an dem die Ausgabenachricht der Auftragsanforderung von der Orchestrierung gesendet wird, die den WCF-Dienst darstellt.

    1. Erweitern Sie in der BizTalk Server Verwaltungskonsole wcfMessageSecurity, klicken Sie mit der rechten Maustaste auf Ports senden, zeigen Sie auf Neu, und klicken Sie dann auf Statischer unidirektionale Sendeport.

    2. Geben Sie im Dialogfeld Porteigenschaften senden auf der Registerkarte Allgemein im Textfeld Name den Namen ein WcfMessageSecurity.OrderRequest.Send.FILE.

    3. Wählen Sie im Dialogfeld Porteigenschaften senden im Abschnitt Transport neben Typ die Option DATEI aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.

    4. Geben C:\WCFMessageSecurity\OrderRequestOut Sie im Dialogfeld DATEItransporteigenschaften auf der Registerkarte Allgemein das Textfeld Zielordner ein, und klicken Sie dann auf OK.

    5. Wählen Sie im Dialogfeld Porteigenschaften senden auf der Registerkarte Filter die Option BTS aus. ReceivePortName für das Feld Eigenschaft geben Sie WcfMessageSecurity.OrderRequest.Receive für das Feld Wert ein, und klicken Sie dann auf OK. Dieser Filterausdruck leitet die eingehenden WCF-Nachrichten vom Client an den WcfMessageSecurity.OrderRequest.Receive-Empfangsport an diesen Sendeport weiter.

Testen des WCF-Clients mit der BizTalk-Anwendung

  1. Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf WcfMessageSecurity, und klicken Sie dann auf Start. Klicken Sie im Dialogfeld Start auf Start.

  2. Erweitern Sie in der BizTalk Server Verwaltungskonsole Plattformeinstellungen, erweitern Sie Hostinstanzen, klicken Sie mit der rechten Maustaste auf BizTalkServerApplication oder einen anderen geeigneten Host instance, und klicken Sie dann auf Neu starten.

  3. Erstellen Sie einen Ordner mit dem Namen C:\WCFMessageSecurity für den Arbeitsordner für diese exemplarische Vorgehensweise. Extrahieren Sie die Dateien der exemplarischen Vorgehensweise in diesen Ordner.

  4. Öffnen Sie in Visual Studio die Datei WcfMessageSecurity.sln im Ordner C:\WCFMessageSecurity .

  5. Erweitern Sie in Visual Studio in Projektmappen-Explorer wcfClient, und öffnen Sie dann Program.cs zur Überprüfung.

    • Vom Client wird eine Nachricht an den WCF-NetTcp-Empfangsspeicherort gesendet, den Sie in den vorherigen Schritten erstellt haben.

    • Der Client erstellt einen Kanal mit netTcpBinding und konfiguriert dann die Bindung für die Verwendung von Zertifikaten für den Clientanmeldeinformationstyp.

    • Der Client konfiguriert das Endpunktverhalten für die Verwendung des Clientauthentifizierungszertifikats, das Sie in den vorherigen Schritten für die Clientauthentifizierung installiert haben.

    • Die Klasse Program implementiert die Schnittstellen IClientMessageInspector und IEndpointBehavior , um ausgehende WCF-Nachrichten von diesem Client an einer Eingabeaufforderung anzuzeigen.

  6. Klicken Sie in Visual Studio in Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe WcfMessageSecurity, und klicken Sie dann auf Neu erstellen.

  7. Klicken Sie in Visual Studio im Menü Debuggen auf Starten ohne Debuggen , um wcfClient auszuführen, um eine Nachricht an die WCF-NetTcp Empfangsspeicherorte zu senden. Das Ausführungsergebnis wird in einer Eingabeaufforderung angezeigt.

    1. Überprüfen Sie an der Eingabeaufforderung die Bestellanforderungsnachricht. Achten Sie auf das Feld OrderId und die Struktur der Nachricht.

    2. Wechseln Sie an der Eingabeaufforderung zum C:\WCFMessageSecurity\OrderRequestOut Ordner, und stellen Sie sicher, dass die vom WCF-Client gesendete Auftragsanforderungsmeldung angezeigt wird.

    3. Schließen Sie die Eingabeaufforderung.