WPF & WCF Security - имя пользователя и пароль = STS - PullRequest
0 голосов
/ 25 августа 2011

Я собираюсь начать проект с WPF, который использует веб-сервис для получения информации и т. Д.

Имя пользователя и пароль требуются для аутентификации вас и получения данных, которые принадлежат вам.

Я бы хотел, чтобы мое приложение WPF сохраняло имя пользователя и пароль. Но я не хочу хранить это. Так я и думал. Было бы здорово, если бы после первого входа в систему он генерировал сертификат на конце WCF и передавал его приложению WPF, которое можно использовать для каждого вызова.

Возможно ли то, что я думаю? Другая проблема, которую я хотел бы решить, - как избежать копирования и вставки сертификата?

Обновление

На основании предложения @zamd. Это то, что я хотел бы решить.

  1. Веб-сервис использует WCF Web Api
  2. Сайт имеет формы проверки подлинности
  3. Сайт выполняет вход с именем пользователя и паролем, которые подтверждаются службой токенов
  4. Webservice может аутентифицировать токен пользователя, предоставленный Token Service

Я нашел эту очень полезную статью в блоге http://weblogs.asp.net/cibrax/archive/2011/02/04/authenticating-clients-in-the-new-wcf-http-stack.aspx, но я хотел бы использовать проверку подлинности с помощью форм для получения токена SAML

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Вы должны изучить безопасность на основе утверждений и токен SAML.

При входе в систему ваше приложение должно перейти к вашей службе или «службе безопасности», также известной как «Служба токена безопасности», и получить токен SAML в обмен на пару имя пользователя / пароль. Жетоны SAML обычно защищены для получателя и могут безопасно храниться на стороне клиента до истечения срока их действия.

Каждый раз, когда вам нужно вызвать службу WCF, вы можете использовать этот токен SAML для расширенной аутентификации и авторизации.

0 голосов
/ 01 сентября 2011

Если вам нужно использовать комбинацию «имя пользователя / пароль», вы можете заставить Windows хранить ее для вас под Windows 7, Windows Server 2008 (и, возможно, Vista) с помощью диспетчера учетных данных Windows.Вам нужно переключиться на вызовы p / invoke (http://pinvoke.net/default.aspx/advapi32/CredRead.html и http://pinvoke.net/default.aspx/advapi32/CredWrite.html) для этого.

Единственная проблема, с которой я столкнулся, это то, что она не работала на Windows Server2003, хотя в документации сказано, что это поддерживаемая ОС.

0 голосов
/ 25 августа 2011

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

  1. Проверка подлинности формы ASP.Net с запущенной службой WCF в режиме совместимости ASP.Net.В этом случае после проверки подлинности после этого будет проходить только файл cookie аутентификации.
  2. Посмотрите на этот вопрос и другие способы Аутентификация пользователя / пароля с использованием RESTful WCF и Windows Forms
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...