Можно ли реализовать двухфакторную (или многофакторную) пользовательскую аутентификацию в WCF?Например, я хочу аутентифицировать клиента, используя два разных типа учетных данных:
1) Пользователь вводит логин и пароль
2) Служба WCF проверяет логин + пароль
3) Еслипредыдущий шаг успешен, сервер возвращает секретный запрос (или номер пароля OTP)
4) Пользователь вводит ответ на полученный запрос и отправляет его на сервер
5) Если ответ правильный - пользовательавторизован на сервере.Он может выполнять методы сервера.
Аутентифицированный пользователь имеет токен безопасности.При следующем вызове сервера клиент отправляет только токен безопасности сервера без явных учетных данных.
Я нашел только одну ссылку об этом в msdn - http://msdn.microsoft.com/en-us/library/ms788756.aspx
В .NET Framework 3.5, клиентские сообщенияможет содержать несколько токенов определенного типа, а также токены разных типов.
Эта функция позволяет использовать несколько сценариев, включая следующие:
Инкрементная отправка претензий.Для всех операций над службой может потребоваться наличие набора утверждений, но для некоторых операций могут потребоваться дополнительные утверждения.Вместо использования отдельных выданных токенов для каждой операции клиент может получить один выданный токен с начальным набором утверждений и использовать другой выданный токен с остальными утверждениями, необходимыми для вызываемой операции.
Многофакторная проверка подлинности.Когда клиент должен получить выданные токены от нескольких эмитентов или выданные токены с различными наборами требований, прежде чем ему будет разрешено выполнить операцию.WCF считает, что выданный токен является типом токена, поэтому для этого сценария требуется наличие в сообщении двух поддерживающих выданных токенов.
Но реальных примеров того, как его реализовать, не существует :(Я могу аутентифицироваться только с использованием пользовательских учетных данных.