Подтвердить что ты не робот

Безопасность WCF - список того, что я не понимаю

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

  • Может кто-нибудь, пожалуйста, дайте мне простое объяснение на английском языке в отношении безопасности сообщений и сообщений.

  • Я думаю, что у меня есть служба, работающая под SSL, которая будет аутентифицировать пользователя на основе их учетных данных Windows. Я также думаю, что я понимаю, как ограничить доступ к сервисному методу через PrincipalPermission. Но как я могу получить текущий IPrinciple, поэтому я могу возвращать разные результаты, зависящие от того, кто вызывает эту услугу?

  • Я выяснил, как включить трассировку, и я могу видеть журналы трассировки с помощью "Средство просмотра журналов Microsoft Service Trace Log Viewer", но, черт возьми, я буду проклят, если смогу выяснить, что отображается на дисплее. Есть ли достойный ресурс, объясняющий, как использовать эту вещь?

  • При использовании "Certificate" clientCredentialType это отличается от SSL?

  • При использовании "client" clientCredentialType "Windows", как я могу видеть, через какие окна пользователя проходит?

  • Мои требования означают, что я должен использовать basicHttpBindings. Правильно ли я предполагаю:

    • У меня есть только безопасность уровня транспорта для меня?
    • Я не могу реализовать пользовательское имя пользователя/пароль для этой привязки?

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

EDIT:

  1. Как добавить пользовательские заголовки SOAP к моей службе в аналогичной усадьбе сервисам .asmx? Это действительный подход?

ИЗМЕНИТЬ:

В дополнение к вышеуказанным вопросам я хотел бы узнать, можно ли аутентифицировать мобильное устройство Windows на основе его пользователя Windows, проверив Active Directory. Для всего, что я нашел до сих пор, это кажется маловероятным.

N.B. Для тех, кто не знает, что доступно для Windows CE версии WCF, это: только уровень безопасности транспортного уровня, а также none/certificate для типа учетных данных клиента. Таким образом, кажется, что CE WCF не разрешает это по умолчанию, но могу ли я безопасно отправить эту информацию в сообщении (через подпись метода) и будет ли это приемлемым способом отправки такого рода информации?

4b9b3361

Ответ 1

Я не знаю всех ответов, но вот те, которые я знаю

  • Транспортная безопасность означает, что связь зашифровывается, пока сообщение транспортируется, поэтому его нельзя читать и/или подделывать. Безопасность сообщений означает, что содержимое самого сообщения зашифровывается, но это не обязательно. Безопасность сообщений может, например, использоваться с HTTP, в то время как для безопасности транспорта потребуется использование HTTPS (или других привязок).
  • IPrincipal main = Thread.CurrentPrincipal;
  • нет ответа
  • Да, хотя сам SSL использует сертификаты, это не то же самое. Вы можете отправить клиенту сертификат, который известен службе или подписанный доверенным органом, чтобы служба узнала, кто является клиентом, и разрешить ли им совершать вызов или нет. Использование SSL гарантирует, что третьи стороны не смогут прочитать связь между клиентом и службами, перехватив сетевые пакеты.
  • IPrincipal main = Thread.CurrentPrincipal; principal.Identity.Name;
  • Нет.
    • У вас есть None, Transport, Message и Mixed security в качестве ваших параметров, однако для безопасности транспорта потребуется вызывать конечную точку с использованием HTTPS, поскольку это защищенная версия протокола
    • EDIT: просмотрите обсуждение этот форум.

И вопросы, конечно, не глупы.

P.S. Я могу рекомендовать книгу программирование WCF-сервисов Juval Lowy по-настоящему глубоко и поставляется с действительно полезной структурой, расширяющей WCF/Упрощение некоторых вещей.

Ответ 2

Отъезд Руководство по безопасности WCF. Если вам нужна дополнительная информация, вы сможете найти все там, что вполне достаточно. Хотя это похоже на то, что @olle дал довольно полный ответ....