Аутентификация сертификата клиента WCF
У нас есть типичный клиент-серверный сервис WCF, и я хотел бы следующее:
- Клиент передает сертификат на сервер через свойство ClientCredentials
- Сервер просматривает сертификат и видит, что он был выдан нашим доверенным центром сертификации.
- Клиент отклонен, если он использует сертификат, который не выдан нашим CA.
На клиенте установлен сертификат clientAuthentication вместе с нашим доверенным центром сертификации. На сервере установлен наш доверенный сертификат CA Я не хочу устанавливать какие-либо другие сертификаты.
Я гибок в привязке, однако он должен работать в веб-сценарии.
Я думал об использовании BasicHttpBinding с TransportCredentialOnly, однако он не поддерживает сертификаты:(.
Я пытался использовать wsHttpBinding в режиме сообщений, однако для этого требуется ServerCertificate для выполнения аутентификации сервера и шифрования сообщений... чего я не хочу!
Есть ли какой-нибудь встроенный способ добиться этого?
1 ответ
Все встроенные привязки позволяют использовать клиентские сертификаты только при использовании серверного сертификата - взаимная проверка подлинности и безопасность сертификатов. Чтобы поддержать ваш сценарий, вам придется справиться с ним полностью самостоятельно. Если вы хотите внедрить свой механизм аутентификации в WCF, вам нужно будет сделать собственный токен и пользовательские учетные данные.