Nachdem ich einige MSDN-Artikel verfolgt hatte, hatte ich Client-Zertifikate und Benutzernamen-Kennwörter für meinen WCF-Dienst. Der Client benötigte ein Zertifikat sowie einen Benutzernamen und ein Passwort, um auf meinen Dienst zugreifen zu können.WCF-Client-Zertifikat funktioniert nicht mehr
Kürzlich, das Zertifikat funktioniert nicht mehr, ich kann auf den Dienst zugreifen, ohne das Clientzertifikat zu liefern. Ich verwende die SOAP-Benutzeroberfläche, um den Client zu testen. Normalerweise muss ich das Client-Zertifikat dem Schlüsselspeicher hinzufügen und dann angeben, welcher Schlüssel für die Anfrage verwendet werden soll.
Kürzlich habe ich einen Test eingerichtet und ich musste das Client-Zertifikat nicht liefern. Nichts in meinem Conifg hat sich geändert. Habe ich das richtig eingerichtet?
Vielen Dank.
Meine Bindung Config:
<wsHttpBinding>
<binding name="BasicBinding">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate" />
<message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
Mein Service:
<service behaviorConfiguration="APIServiceBehaviour" name="Service">
<endpoint address="api" binding="wsHttpBinding" bindingConfiguration="BasicBinding" name="soap-api" bindingNamespace="https://myserver.com" contract="IAIService" />
<host>
<baseAddresses>
<add baseAddress="https://myserver.com" />
</baseAddresses>
</host>
</service>
Das Verhalten:
<serviceAuthorization principalPermissionMode="Custom">
<authorizationPolicies>
<add policyType="MyAuthorizationPolicy,MyProject" />
</authorizationPolicies>
</serviceAuthorization>
<serviceCredentials>
<serviceCertificate findValue="tempSClient" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
<userNameAuthentication userNamePasswordValidationMode="Custom" includeWindowsGroups="false" customUserNamePasswordValidatorType="MyProject.UserAuth,MyProject" />
</serviceCredentials>
</behavior>
Warum glaubst du, hat es vorher funktioniert? – Evk
Ich bekam 403 Fehler. Wenn ich das client cert hinzufügte, ließ es mich mit der Webservice-Sicherheit authentifizieren – Allan
Wie sieht 'MyProject.UserAuth' aus? – sc3w