Ich verfüge über eine Webanwendung, die Clientzertifikat-Authentifizierung für eine API von Drittanbietern durchführt. Die Anwendung funktioniert, ich möchte sie jedoch in Azure App Services verschieben.Überschreiben der clientseitigen Zertifikatauthentifizierungsprüfung
Das für die Clientauthentifizierung verwendete Zertifikat wird nicht von einer Zertifizierungsstelle ausgestellt, die der Speicher vertrauenswürdiger Stammzertifikate ist. Azure erlaubt das Hinzufügen von Zertifikaten zum Speicher vertrauenswürdiger Stammzertifikate in App Services aus offensichtlichen Gründen nicht.
Soweit ich feststellen kann, ist das Standardverhalten auf dem Client nicht das Client-Zertifikat zu senden, wenn die Vertrauenskette nicht validiert werden kann. Gibt es eine Möglichkeit in .net, dieses Verhalten zu überschreiben und das Zertifikat trotzdem zu senden?
Ich weiß, dass ServicePointManager.ServerCertificateValidationCallback ermöglicht es Ihnen, das Überprüfen des Server-Zertifikats zu überschreiben, aber nichts zur Überprüfung des Client-Zertifikats.
Ich habe diesen Ansatz versucht. Es scheint nicht zu gelten, ein Client-Zertifikat zu senden. Das Problem, das ich habe ist, dass selbst wenn ich ein Client-Zertifikat zu einer Anfrage hinzufügen, es nie tatsächlich gesendet wird und ServerCertificateValidationCallback nie aufgerufen wird. – Jacob
Verweigert das nicht die Verwendung von Zertifikaten? Wenn Sie nur ein Zertifikat akzeptieren, unabhängig von der Gültigkeit, warum sollten Sie überhaupt Client-Zertifikate verwenden? –
Ich stimme @SimonW zu, wenn Sie jedoch nicht über die Stammzertifizierungsstelle verfügen (begrenzte Szenarios, die ich kenne), könnte sie immer noch gültig sein oder Sie verwenden selbstsignierte Zertifikate. Persönlich würde ich immer versuchen, Zertifikate richtig zu akzeptieren. –