WCF - Wird zur Authentifizierung von Clients ein Dienstzertifikat benötigt?

8

Ich denke, es gibt eine Lücke in meinem mentalen Modell der WCF-Authentifizierung, in der Hoffnung, dass jemand mir helfen kann, es auszufüllen.

Ich erstelle also einen WCF-Dienst und möchte, dass sich Clients mithilfe von Zertifikaten und der Sicherheit auf Nachrichtenebene authentifizieren. Ich möchte, dass der Dienst diese mithilfe der Kettenvertrauensstellung überprüft, damit nicht jedes Client-Zertifikat auf dem Dienst installiert werden muss. Im Moment bin ich nicht daran interessiert, dass sich der Dienst gegenüber dem Client authentifiziert.

Hier ist mein Verständnis davon, was dazu nötig ist:

  1. Der Client benötigt ein Zertifikat, das von einer Zertifizierungsstelle signiert wurde, die auf der Serviceseite vertrauenswürdig ist.
  2. Der Dienst benötigt eine CRL, die für diese CA installiert ist.
  3. In der Service-Konfiguration sollte die Nachrichtensicherheit aktiviert sein, clientCredentialType="Certificate" angeben und die Vertrauenswürdigkeit der Kette für die Überprüfung des Client-Zertifikats angeben.
  4. In der Clientkonfiguration sollte die Nachrichtensicherheit aktiviert sein, clientCredentialType="Certificate" angeben und ein Endpunktverhalten angeben, wie das Clientzertifikat im Speicher gefunden wird.

Der Client stellt eine Anfrage an den Dienst und sendet sein Zertifikat. Der Dienst erkennt, dass das Zertifikat des Clients von seiner vertrauenswürdigen Zertifizierungsstelle signiert wurde und die Anforderung durchläuft.

Nun haben alle Schritte dieses Prozesses, die ich gefunden habe, auch einen Schritt zum Erstellen eines Zertifikats für den Dienst. Keiner von ihnen erklärt, wofür das ist, was mich wirft. Warum wird ein Dienstzertifikat benötigt, wenn ich nur die Clients authentifizieren möchte?

    
user1454265 13.06.2012, 18:10
quelle

1 Antwort

7

Sie haben Recht. Theoretisch ist kein Serverzertifikat erforderlich, in der Praxis erzwingen Sie jedoch die Verwendung eines Serverzertifikats. Die gute Nachricht ist, dass Sie ein Dummy-Zertifikat für den Server verwenden und auch ProtectionLevel auf SignOnly festlegen sollten. Ich schlage vor, diesen Artikel zu lesen, der über ein ähnliches Szenario spricht und meistens relevant.

    
Yaron Naveh 13.06.2012, 19:14
quelle