Сначала логика, потом безопасность WCF? - PullRequest
5 голосов
/ 28 января 2009

Я работаю над службой WCF, которая будет взаимодействовать через net.tcp с n экземплярами клиентского приложения (которое разрабатывается другим программистом в моем офисе).

В настоящее время я использую net.tcp без какой-либо защиты, так как я чувствовал, что настройка на этом этапе не нужна, по крайней мере, пока мы не приблизимся к развертыванию.

При разработке приложения WCF есть какой-либо вред при использовании стандартной привязки (в моем случае net.tcp) без защиты, а затем, когда бизнес-логика будет завершена, реализовать все требования безопасности? Есть ли какие-то вещи, о которых мне нужно знать, которые могут не функционировать после внедрения безопасности?

Ответы [ 3 ]

5 голосов
/ 28 января 2009

Хотя ваш общий дизайн должен учитывать безопасность с самого начала, я не думаю, что будет хорошей идеей связать ваши компоненты с какой-либо конкретной стратегией безопасности. Возможно, вы захотите использовать некоторые из ваших компонентов небезопасным способом или по другому протоколу, который предлагает различные варианты безопасности.

Так что мой ответ - да и нет. Да, вы должны думать об этом с самого начала, но нет, вы не должны связывать свои компоненты с вашими требованиями безопасности.

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

Для получения дополнительной информации см. Фантастический Юваль Лоуи Программирование служб WCF , глава 10. Лоуи в своей библиотеке ServiceModelEx (подробно обсуждаемой в книге) предоставляет действительно хорошую среду, которую можно подключить после Вы создали свои компоненты. Даже если это не совсем то, что вы ищете, вы можете настроить его под свои нужды.

3 голосов
/ 28 января 2009

Безопасность должна рассматриваться с самого начала, а не добавляться в конце.

Разработайте план для вашей безопасности и реализуйте его по ходу, а не в конце.

Ссылка: Microsoft .NET: Разработка приложений для предприятия

http://www.amazon.com/Microsoft®-NET-Architecting-Applications-PRO-Developer/dp/073562609X

2 голосов
/ 28 января 2009

У вас есть два варианта: запечь его с самого начала или дать ему пощечину в конце. Что касается безопасности в целом, я бы сказал, что она действительно не работает в обледенении, так что вам нужно испортить свой пирог, чтобы получить его там.

Однако, как я вижу твой вопрос, ты уже знаешь, что нужно что-то сделать, чтобы решить проблему безопасности, ты просто не решил, что делать. В этом случае я бы согласился с Терри, что вы должны разработать абстракцию, которая позволит вам добавить окончательное решение.

На вашем месте я бы, вероятно, разработал модель угрозы и использовал бы ее для учета входных данных и рисков, связанных с вашей службой. Это поможет вам решить, что вы должны делать в конечном итоге, и будет ли ваша абстракция охватывать все основы.

...