Аутентификация WCF - Аутентификация пользователя / прохода один раз, а затем аутентификация другим способом? - PullRequest
2 голосов
/ 26 мая 2011

В основном, у меня есть следующий сценарий и информация:

  • Мы используем HTTPS.
  • Мы хотим аутентифицировать пользователя по пользователю / паролю при первом входе в систему.
  • После того, как они аутентифицированы, я хочу, чтобы любые будущие вызовы ДРУГИМ сервисам (не сервису входа в систему) использовали имя пользователя и какой-либо сеанс (в случае, если пароль меняется в середине сеанса).
  • Я хочу убедиться, что мои сеансы могут превышать время ожидания и контролировать их таким образом, чтобы, если пользователь пытается вызвать службу и у него не было сеанса, он получает ошибку (потому что он не вошел в систему). Не уверен, есть ли встроенный способ WCF для выполнения сеансов таким образом, или мне придется что-то настраивать с помощью базы данных.
  • Я думаю, что мы хотим использовать WSHttpBinding (не BasicHttpBinding), в этом 90% уверены.

Я просто не могу понять, как это сделать. Часто время я найду информацию о клиентском коде, выполняющем client.ClientCredentials.UserName.UserName = username и client.ClientCredentials.UserName.Password = password. Но это просто не работает, потому что мой сервер проверяет? Я пытаюсь получить эту информацию и проверить ее по базе данных пользователей / пропусков. Я не собираюсь использовать проверку подлинности Windows или тому подобное (потому что мне все равно, кто входит в компьютер, а кто входит в приложение).

1 Ответ

2 голосов
/ 26 мая 2011

Вы хотите использовать службу Secure Token Service (STS) для аутентификации и получения токена безопасности (возможно, SAML), который идентифицирует пользователя, которого затем можно передать другим вашим службам, и они могут просто использовать идентификационную информацию для идентификации и авторизовать , потому что они доверяют STS, предварительно проверившей личность пользователя.

Это большая тема для обсуждения, поэтому я предлагаю найти WCF STS и провести еще несколько исследований, но я определенно рекомендую пойти в этом направлении. Если вы собираетесь создать собственную реализацию STS, я также рекомендую изучить использование компонентов Windows Identity Foundation (WIF) , чтобы упростить разработку.

Вот ссылка на скачивание для WIF v1.0 , которая является последней версией на момент ответа.

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