Аутентификация/шифрование Windows в WCF с NetTcpBinding

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


person Tallek    schedule 17.12.2009    source источник


Ответы (2)


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

Что касается шифрования: вы даже можете выбирать, какое хотите! :-) TripleDES, AES - что угодно, тоже с разной длиной ключа.

См. статью Основы безопасности WCF — в ней рассказывается обо всех аспектах. безопасности и шифрования; также см. документацию MSDN по Securing Services, в которой содержится более подробная информация; здесь можно найти хороший обзор, показывающий свойства элемента безопасности транспорта basicHttp.

person marc_s    schedule 17.12.2009

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

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

Преимущества:

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

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

person Padu Merloti    schedule 17.12.2009
comment
Это звучит очень интересно. Есть ли у вас какие-либо примеры или ссылки, на которые вы могли бы указать мне, чтобы реализовать это? Были ли первоначальные данные для входа зашифрованы? (имя пользователя и пароль) - person Lewray; 04.05.2011