Вопрос

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

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

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

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

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

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

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

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

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

Редактировать:

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

Редактировать:

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

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

Это было полезно?

Решение

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

  1. безопасность транспортировки означает, что во время транспортировки сообщение шифруется, поэтому его невозможно прочитать и / или подделать.Безопасность сообщения означает, что содержимое самого сообщения зашифровано, однако передача не обязательно.Безопасность сообщений может, например, использоваться с HTTP, в то время как безопасность транспорта потребует использования HTTPS (или других привязок).
  2. Основной IPrincipal = поток.Текущий основной;
  3. никакого ответа
  4. Да, хотя сам SSL использует сертификаты, это не одно и то же.Вы можете попросить клиента отправить сертификат, который известен службе или который подписан доверенным центром, чтобы служба знала, кто такой клиент и разрешать ли ему совершать вызов или нет.Использование SSL гарантирует только то, что третьи стороны не смогут прочитать сообщение между клиентом и службами путем перехвата сетевых пакетов.
  5. Основной IPrincipal = поток.Текущий основной;директор.Identity.Name;
  6. Нет.
    • В качестве опций у вас есть None, Transport, Message и Mixed security, однако для обеспечения транспортной безопасности потребуется вызвать конечную точку с использованием HTTPS, поскольку это защищенная версия протокола
    • Редактировать:Ознакомьтесь с обсуждением на этот форум.

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

P.S.Я могу порекомендовать эту книгу программирование сервисов WCF автор: Ювал Лоуи, это действительно глубокое и поставляется с действительно полезной структурой, расширяющей WCF / упрощающей определенные вещи.

Другие советы

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

Также проверьте эти Общие сценарии безопасности WCF

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top