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:
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?
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.
Tags und Links wcf client-certificates certificate