У меня есть многослойная asp.net MVC приложение, состоящее из следующих уровней:Лучший способ обезопасить службу WCF при использовании из ASP.NET MVC приложения
- базы данных (хранимые процедуры, представления и таблицы)
- WCF сервис (содержащий бизнес-логику и подключение к базе данных через Entity Framework)
- ASP.NET MVC приложения, связываясь со службой WCF и генерации HTML
- Browser
Конечные пользователи аутентифицируются на уровне asp.net mvc, используя Identity 2.0.
Веб-сервер является единственным клиентом службы WCF.
Есть ли лучшие практики для этого сценария?
Веб-сервер и служба WCF могут работать в разных местах, поэтому мы не можем использовать протоколы интрасети.
Поскольку мы контролируем как веб-сервер, так и службу WCF, мы знаем, что связь будет двухточечной. Это означает, что мы можем использовать безопасность транспорта, чтобы избежать дополнительных накладных расходов с защитой сообщений.
В соответствии с этим, Improving Web Services Security: Scenarios and Implementation Guidance for WCF, есть два варианта для обеспечения транспортной безопасности по сети Интернет:
- Базовая аутентификация с BasicHttpBinding аутентификации
- сертификат с WsHttpBinding
Какой бы лучше всего подходит для этот сценарий, где в основном есть только один клиент для службы WCF?
В связи с отсутствием характера безгражданства http для каждого нового запроса на веб-сервер создается экземпляр нового прокси-сервера.
Есть ли способ кэшировать информацию аутентификации из службы WCF на вызывающем веб-сервере для повышения производительности?