Настройка параметров безопасности WCF - PullRequest
2 голосов
/ 22 декабря 2008

У меня есть служба WCF, которая размещена в приложении Windows. Служба использует netMsmqBinding. Клиент и хост находятся в разных доменах. У меня вопрос, как мне настроить параметры безопасности?

Данные, которые передаются, являются конфиденциальными, поэтому я хотел бы защитить связь между клиентом и хостом службы. Единственная проблема в том, что я не знаю, как это сделать ... (я не хочу использовать сертификаты) Любая помощь будет оценена!


Джеймс Шек : Он отлично работает, когда я запускаю его без защиты (независимо от того, где находится MSMQ). В моем случае MSMQ размещается на сервере, и если он не работает - тогда клиентские сообщения остаются в своей исходящей очереди, а когда MSMQ снова работает и все сообщения отправляются - это сила MSMQ и ожидаемое поведение (именно поэтому все сообщения, отправляемые через MSMQ, должны быть OneWay, потому что мы не знаем, когда сервер или клиент находятся в сети - мы просто хотим, чтобы сообщения доставлялись).

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

Я в режиме рабочей группы, а не в режиме домена! Поэтому я не могу использовать домен ... и там вообще нет AD.

Ответы [ 5 ]

1 голос
/ 22 декабря 2008

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

1 голос
/ 22 декабря 2008

MSMQ, как правило, не подходит для использования через Интернет (если это то, что вы планируете делать). В противном случае я не думаю, что вы можете избежать сертификатов, если вы хотите безопасности на уровне сообщений.

0 голосов
/ 23 декабря 2008

Я предлагаю получить копию «Программирования WCF-услуг» Ювала Лоуи от О'Рейли. У него есть целая глава, посвященная использованию WCF с MSMQ.

0 голосов
/ 23 декабря 2008

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

0 голосов
/ 22 декабря 2008

У меня есть сомнения, что WCF будет работать так, как вы ожидаете в этом сценарии. Где находится MSMQ? На «сервере» или на «клиенте»? Или есть независимый хост MSMQ? Я полагаю, что при отключении единственная система, которая будет работать, - это система, на которой установлен MSMQ. Другая система не сможет инициализировать WCF.

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

Если заголовок не является чувствительным (то есть имя вызываемой функции, кто ее вызывает и т. Д.), То вы можете вручную зашифровать полезную нагрузку. то есть сериализовать ваши данные в двоичный или XML, зашифровать сериализованный объект, а затем вызвать ваш метод WCF с результирующим байтовым массивом в качестве аргумента.

Вы не объяснили, почему вы хотите избежать сертификатов. Очевидно, есть еще одно ограничение, о котором вы нам не сказали. Почему бы не использовать сертификаты?

...