WCF Security для веб, Windows и мобильных клиентов - PullRequest
0 голосов
/ 03 октября 2009

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

Как правило, я хотел бы повторно использовать как можно больше компонентов членства в ASP.Net, чтобы сэкономить мне время на написание этого кода, поскольку он утомителен и повторяется. Это хороший подход и какие есть альтернативы?

Может ли кто-нибудь дать мне руководство относительно того, как лучше всего достичь того, что я ищу?

Ответы [ 2 ]

1 голос
/ 03 октября 2009

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

У вас есть три варианта обеспечения безопасности обмена сообщениями между вашим клиентом и сервером:

  • ничто
  • транспортный уровень (например, защита всего сообщения непосредственно на уровне протокола)
  • уровень сообщения (например, защита / шифрование сообщения как такового)

Как правило, вы склонны использовать безопасность на транспортном уровне (на уровне TCP / IP), когда вы можете быть уверены, что между вашим клиентом и вашим сервисом существует только один скачок, например, в корпоративной среде локальной сети позадибрандмауэр.Это самый быстрый способ - использовать netTcpBinding в вашей корпоративной (Windows) локальной сети.

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

Теперь речь идет о защите сообщения в пути.

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

Как только вы узнаете, кто вам звонит, вы можете выполнить авторизацию - решить, что онисможет сделать.Здесь вы обычно используете членство в группе Active Directory в корпоративных / локальных сценариях или систему членства / роли ASP.NET в других сценариях.Или вы можете бросить свой собственный - это полностью ваше дело.

Надеюсь, что немного поможет и поможет вам начать сейчас!

Марк

1 голос
/ 03 октября 2009

Если вы запускаете WCF в «режиме совместимости ASP.NET» (это один атрибут в коде, чтобы разрешить его, и одна строка конфигурации, чтобы включить его), вы можете использовать все обычные механизмы безопасности ASP.NET с WCF как является. Смотри http://msdn.microsoft.com/en-us/library/aa702682.aspx

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