Как лучше всего защитить службы данных ADO.NET? Кто-нибудь использовал это в производстве, если да, какие параметры безопасности вы использовали?
Развертывание службы данных ADO.NET
Ответы (3)
Вот запись в блоге, в которой объясняется подробнее, как защитить службу данных ADO .NET.
@tbreffni публикует хорошую запись в блоге. В дополнение к этому в вашей службе данных ado.net вы устанавливаете правила доступа к сущностям, чтобы контролировать, как предоставляется доступ для различных сущностей в базовой модели данных сущностей.
Предполагая, что у вас есть следующий код:
public class Northwind : DataService<NorthwindEntities>
{
public static void InitializeService(IDataServiceConfiguration
config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
}
}
Метод SetEntitySetAccessRule позволяет ссылаться либо на всю модель сущности, либо только на определенный набор сущностей, а затем определять разрешения на основе перечисления EntitySetRights. В перечислении присутствуют следующие значения:
Нет Запрещает все права на доступ к данным.
ReadSingle Авторизация для чтения отдельных элементов данных.
ReadMultiple Авторизация для чтения наборов данных.
WriteAppend Авторизация для создания новых элементов данных в наборах данных.
WriteReplace Авторизация для замены данных.
WriteDelete Разрешение на удаление элементов данных из наборов данных.
WriteMerge Авторизация для объединения данных.
AllRead Разрешение на чтение данных.
AllWrite Разрешение на запись данных.
Все Авторизация для создания, чтения, обновления и удаления данных.
Пошаговое руководство по использованию служб Microsoft ADO.NET проходит через этот процесс здесь. Перечисление EntitySetRights задокументировано здесь.
Вы имеете в виду безопасные отдельные типы запросов или всю службу? Если весь сервис, то вы можете использовать стандартные методы защиты IIS, такие как Windows Authentication. В контролируемой среде Windows, где веб-служба использует службы, вы можете настроить один идентификатор домена в качестве авторизованного пользователя между полями. Разумеется, используйте SSL для обеспечения безопасности с точки зрения шифрования данных.