У меня есть служба WCF и клиент, который будет развернут в нескольких компаниях (сотни). Некоторые компании будут запускать программное обеспечение в своей сети, а некоторые будут запускать его через Интернет (сервер WCF на офисе, клиент WCF - на другой).
Мы хотим зашифровать связь между сервером WCF и клиентом. У нас нет никакой потребности в аутентификации пользователя/подписчика с использованием безопасности WCF, потому что у нас есть свое собственное имя пользователя/пароль, к которому клиенты будут использовать для входа на сервер.
- Мы не можем полагаться на Windows auth, потому что некоторые пользователи будут запускать его через Интернет, а сервер WCF может находиться не в том же домене, что и клиент WCF.
- Если мы используем "реальные" сертификаты *, компаниям, использующим программное обеспечение, придется приобретать сертификаты из ЦС и устанавливать их, а затем настраивать наше программное обеспечение для его использования, но это слишком сложно для большинства из них.
- Мы могли бы автоматически создавать сертификаты во время установки WCF-сервера, но тогда нам пришлось бы автоматически устанавливать его в хранилище сертификатов и как-то автоматически предоставлять разрешения IIS для чтения сертификата. Это сложнее, чем хотелось бы.
Короче говоря, нам нужно простое решение, в котором шифрование основано только на секретном, в нашем случае имя пользователя/пароль, с которым пользователь входит в систему. Я понимаю, что это не даст наилучшего доступного шифрования, но мы готовы обменять часть безопасности, чтобы упростить развертывание программного обеспечения.
Возможно ли это?
* С "реальными" сертификатами я имею в виду сертификаты, приобретенные у центра сертификации, а не те, которые я создал сам/самостоятельно.