Аутентификация сертификата клиента WCF

У нас есть типичный клиент-серверный сервис WCF, и я хотел бы следующее:

  • Клиент передает сертификат на сервер через свойство ClientCredentials
  • Сервер просматривает сертификат и видит, что он был выдан нашим доверенным центром сертификации.
  • Клиент отклонен, если он использует сертификат, который не выдан нашим CA.

На клиенте установлен сертификат clientAuthentication вместе с нашим доверенным центром сертификации. На сервере установлен наш доверенный сертификат CA Я не хочу устанавливать какие-либо другие сертификаты.

Я гибок в привязке, однако он должен работать в веб-сценарии.

Я думал об использовании BasicHttpBinding с TransportCredentialOnly, однако он не поддерживает сертификаты:(.

Я пытался использовать wsHttpBinding в режиме сообщений, однако для этого требуется ServerCertificate для выполнения аутентификации сервера и шифрования сообщений... чего я не хочу!

Есть ли какой-нибудь встроенный способ добиться этого?

1 ответ

Все встроенные привязки позволяют использовать клиентские сертификаты только при использовании серверного сертификата - взаимная проверка подлинности и безопасность сертификатов. Чтобы поддержать ваш сценарий, вам придется справиться с ним полностью самостоятельно. Если вы хотите внедрить свой механизм аутентификации в WCF, вам нужно будет сделать собственный токен и пользовательские учетные данные.

Другие вопросы по тегам