Я недавно разработал услугу Фасад WCF. Я новичок в WCF и у меня проблемы с пониманием элементов реализации безопасности.
Услуга выглядит следующим образом:
- На общедоступном веб-сайте asp.net есть клиент WCF, который обращается к:
- Услуга Фасад WCF в демилитаризованной зоне, которая, в свою очередь, действует как клиент для доступа:
- Служба внутренней сети WCF
Все службы в настоящее время используют WSHttpBinding.
Я хотел бы использовать сертификаты X.509 для аутентификации клиент / сервер между всеми 3 серверами (т.е. общедоступное клиентское приложение и служба фасадов аутентифицируют друг друга с использованием сертификатов, клиент фасада и внутренний сервис аутентифицируют друг друга с использованием сертификатов).
Может ли кто-нибудь объяснить шаг за шагом, что нужно сделать, чтобы обезопасить себя в производственной среде? В каждой статье и книге, на которые я ссылался, объясняется использование makecert.exe, но не объясняется использование производственных сертификатов из реального ЦС. Я знаю, что это, вероятно, легко, но я не могу обернуть голову вокруг требуемых концепций.
Из доверенного центра сертификации у меня есть сертификат SSL для доступа пользователей к общедоступному веб-сайту и сертификат SSL SAN, который можно применить к 4 доменным именам через альтернативные имена субъектов. Я все еще не уверен в том, что мне нужно использовать makecert.exe и т. Д. Для создания клиентских сертификатов и т. Д.
В идеале все настройки службы / клиента должны быть в app / web.config (без кода). У меня есть полный административный доступ ко всем трем серверам (общедоступный веб-сервер, сервер фасадов / dmz, внутренний веб-сервер).
Буду очень признателен за любые идеи или рекомендации!
Изменения для предоставления более подробной информации на основе комментариев:
- IIS 6 для всех серверов
- аутентификация пользователя не требуется на общедоступном сайте. По сути, публичные посетители вводят информацию в формах, которые обрабатываются и обрабатываются службами. Аутентификация не требуется.
- Платный сертификат EV SSL будет использоваться для обеспечения безопасности взаимодействия между публичным посетителем и веб-сайтом.
Меня интересует, как реализовать взаимную аутентификацию / идентификацию сертификата между различными клиентами / сервисами WCF. Итак:
- Клиент WCF на общедоступном сервере и служба WCF на сервере Facade / DMZ взаимно идентифицируются и аутентифицируются друг с другом с использованием сертификатов
- Клиент WCF на сервере Facade / DMZ и служба WCF на внутреннем сервере затем также взаимно идентифицируют и аутентифицируют друг друга с использованием сертификатов.
У меня есть гибкий сертификат SAN от доверенного CA (DigiCert), который я хотел бы использовать, если это возможно, для аутентификации. Он может поддерживать до 4 записей DNS через альтернативные имена субъектов.
Спасибо за любую помощь, которая может быть оказана!