Являются ли WCF Data Services (Astoria) хорошим выбором для бизнес-приложений? - PullRequest
2 голосов
/ 02 августа 2010

Один из наших архитекторов создает новую эталонную архитектуру для следующего поколения приложений нашей компании.Прототип представляет собой веб-приложение ASP.NET MVC 2, которое расположено поверх служб данных WCF (Astoria) и использует EntityFramework 4 для доступа к данным и сопоставления объектов.

Прототип приложения управляет ролями пользователей, поэтому службыделать такие вещи, как создание / обновление / удаление пользователей, добавление доступа к приложениям / возможностей / ролей для пользователей и т. д. Таким образом, с точки зрения безопасности, никто не должен иметь возможность подключиться к службе данных вне приложения и выполнить любое из этих действий..

Первоначально я думал, что службы данных WCF предназначены для реализаций OData и «открытых» служб в Интернете, и что линейка бизнес-приложений должна все еще использовать традиционные службы WCF для их адаптивности, безопасности и других функций.Я здесь далеко от базы?Являются ли службы данных WCF хорошим выбором для вызова с контроллеров MVC?Могут ли они обрабатывать такие вещи, как аутентификация и безопасность, так же легко, как традиционные службы WCF?

Ответы [ 2 ]

1 голос
/ 15 августа 2012

OData - это протокол для доступа к данным, а не для защиты данных.Не существует стандартного решения, ограничивающего доступ к определенным частям данных только определенными ролями или учетными записями, как в любой обычной базе данных SQL.Большинство мер безопасности основаны на том, что «все видно, и все операции разрешены, если не указано иное для конкретных случаев», а не «безопасны по умолчанию».

Это большое препятствие, когда вы хотите использовать OData для доступаданные компании из линейки бизнес-приложений.Если вы планируете использовать Ajax-вызовы, ваши OData должны быть видны из Интернета и, таким образом, становятся уязвимыми для всех видов атак.OData, кажется, является отличным протоколом для общедоступных данных, уже доступных в Интернете, но, насколько мне известно, в настоящее время ни один поставщик OData не реализует разрешения на основе ролей из коробки.

Возможно расширить стандартные данные WCFСервис с такого рода разрешениями, но это идет с ценой.По своему опыту я знаю, что безопасность не может быть добавлена ​​впоследствии, она должна быть неотъемлемой частью любой прикладной инфраструктуры и средства хранения данных.Вы можете надеяться на лучшее, но вам всегда нужно планировать худшее, и скоро кто-то начнет искать в Интернете незащищенные источники OData, содержащие конфиденциальные данные отдельных лиц и компаний.

1 голос
/ 02 августа 2010

Обновление:

Новый вопрос в основном "Может ли Служба данных WCF ограничивать доступ?", Да.


На эти вопросы сложно ответить, потому что вы не опубликовали свои требования, SLA или требования безопасности.Службы данных WCF подходят для моего LoB, но могут не подходить для вас, в зависимости от того, какие подробности вы не опубликовали.

Две мысли:

1) Службы данных WCF предназначены только для REST и не имеют такой же защиты параметров, как служба WCF, развернутая вручную.Вы должны заблокировать все как Кремль?Службы данных WCF могут не быть вашей чашкой чая.

2) Службы данных WCF идеально подходят для методов доступа типа «ВЫБРАТЬ ТОП-50 * ИЗ ПРОДУКТА» только для чтения.Обычно вам нужно написать пару методов WCF Service для каждого типа сущности вашего приложения.Используя WCF Data Services поверх обычной службы WCF, вы можете сэкономить много времени, переписывая одни и те же методы чтения снова и снова.

...