WCF Security - список того, что я не понимаю - PullRequest
24 голосов
/ 19 января 2009

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

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

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

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

  4. При использовании clientCredentialType «Сертификат» это чем-то отличается от SSL?

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

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

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

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

EDIT:

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

РЕДАКТИРОВАТЬ:

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

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

Ответы [ 3 ]

15 голосов
/ 19 января 2009

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

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

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

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

4 голосов
/ 19 января 2009

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

0 голосов
/ 06 июля 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...