WCF hizmetimde istemci sertifikalarını kontrol etmek istiyorum.WCF hizmetinde özel sertifika doğrulaması
Amacım, yalnızca belirli bir parmak izine sahip sertifikaları olan istemcilerin hizmetimle iletişim kurabilmelerini sağlamaktır.
WCF hizmetim IIS'de barındırılıyor, basicHttpBinding ve security mode = "Aktarım" kimlik bilgisiyle "aktarım" kullanıyorum. IIS, hizmetle iletişim için istemci sertifikaları gerektirir.
Yardım için şimdiden teşekkür ederiz.
GÜNCELLEME: Benim yapılandırma:
<basicHttpBinding>
<binding
name="testBinding"
maxReceivedMessageSize="2147483647">
<readerQuotas
maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</basicHttpBinding>
Davranış:
<serviceBehaviors>
<behavior name="SomeServiceBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="Custom" customCertificateValidatorType="SomeService.CustomCertificateValidator,SomeService" />
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
Hizmet yapılandırması:
<service
behaviorConfiguration="SomeServiceBehavior"
name="SomeService">
<endpoint
address=""
binding="basicHttpBinding"
bindingConfiguration="testBinding"
contract="ISomeService">
</endpoint>
</service>
Ve Kontrol amaçlı bu yolla doğrulayıcı uygulanan:
public class CustomCertificateValidator : X509CertificateValidator
{
public override void Validate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate)
{
throw new SecurityTokenValidationException("TEST Certificate was not issued by a trusted issuer TEST");
}
}
Ve bu işe yaramıyor. Hizmetime geçerli herhangi bir sertifika ile bağlanabilirim.
Ben ClientCertificate özel doğrulayıcı eklemek çalıştı ama çalışmıyor. Hizmetin çift yönlü modda kullanacağı istemci sertifikasını doğrulamak üzere tasarlanmış gibi görünüyor. Gelen sertifikayı doğrulamam gerekir (istemcinin gönderdiği sertifika). Bu senaryoda bu seçeneği denediniz mi? – empi
Bu, istemci veya hizmet tarafında çalışabilir ve gelen ileti sertifikasını doğrulamak için kullanılır. İstediğini olduğu hizmette doğrulamak için müşteriye bu eklemek emin olun –
Maurice
., yalnızca hizmeti doğrulamak için istemcide kullanılır. –
Maurice