5

Szenario:für IIS App Pool Konto

  • Ein Client ruft WebService A im LAN. WebService A läuft unter einem App Pool mit Identity "Network Service".
  • WebService A erledigt die Arbeit, bereitet den Aufruf von WebService B vor.
  • WebService B benötigt einen Client cert (* .cer) und SSL.
  • WebService A befindet sich auf einem dedizierten Windows 2003-Server.
  • Alles funktioniert in der Umgebung Dev wie es sein sollte (aber der Entwickler mit Administratorrechten ist immer lokal angemeldet (keine Überraschung!).
  • Die Zertifikate auf der Festplatte gespeichert sind, bei C:\MyCertificates\
  • Das Zertifikat wird angewendet wird erfolgreich Laufzeit in Dev mit diesem Schnipsel: myWebService.ClientCertificates.Add(new X509Certificate.CreateFromCertFile(certPath));

Problem: WebService eine Webservice B anruft, und die zurückgegebene Ausnahme ist:

Fehler bei der Anforderung mit HTTP-Status 403: Verbotene

Das ist wirklich bedeutet, dass das Zertifikat nicht in der Anfrage an WebService B.

ich unter der Annahme bin gesandt wurde, dass die Installation dieses cert in Der Browser ist keine Lösung. Die Browsereinstellungen sind normalerweise pro Benutzer, und ich muss das Zertifikat dem Benutzer geben, dessen Anmeldeinformationen der Webdienst unter ausführt. (z. B. Netzwerkdienst, System oder was auch immer in den IIS AppPool-Einstellungen ist).

Frage: Wie kann ich dem Netzwerkdienst oder einem anderen Benutzerkonto den Zugriff oder die Zuordnung zu meinem Zertifikat gewähren, das am angegebenen Verzeichnis gespeichert ist?

Antwort