Windows Identity Foundation - программный вход на RP для единого входа - PullRequest
0 голосов
/ 23 марта 2012

Я уже некоторое время пытаюсь выяснить WIF и могу заставить пользователя войти через мой STS с помощью passiveRedirectEnabled и ограничить доступ к моему сайту для известных пользователей.

Теперь я хочувместо этого используйте мою собственную страницу просмотра входа на моем RP и программным способом зарегистрируйте пользователя на всех моих сайтах, доверяя одному и тому же STS.

Пользователи должны иметь возможность полностью просматривать мой сайт, но иметь возможность входачерез ссылку в навигации моего сайта.

Я искал несколько часов и не могу найти простой рабочий ответ для достижения этой цели.

Есть ли что-то вроде WSFederationAuthenticationModule.FederatedSignOutдля входа тоже?

Как бы я поступил так, если это вообще возможно.

С уважением.

Ответы [ 2 ]

1 голос
/ 24 марта 2012
0 голосов
/ 26 марта 2012

Похоже, вы просто хотите, чтобы пользователи вошли в систему один раз и прошли аутентификацию на нескольких сайтах проверяющей стороны. Таким образом, при условии, что у вас есть STS с несколькими доверительными отношениями, настроенными с помощью RP1, RP2, RP3.

  1. Пользователь просматривает RP1
  2. RP1 перенаправляет пользователя на STS
  3. Пользователь входит в систему STS, которая устанавливает сеанс, теперь у пользователя есть файл cookie сеанса STS.
    • обратите внимание, что это единственный шаг, при котором требуется интерактивная аутентификация пользователя, остальное - автоматические перенаправления
  4. STS перенаправляет обратно на RP1, а RP1 устанавливает сеанс, теперь у пользователя также есть файл cookie сеанса RP1

После аутентификации на вашей STS ваш пользователь также прошел аутентификацию на RP2 и RP3. Вот что происходит:

  1. Пользователь просматривает RP2
  2. RP2 перенаправляет на STS
  3. STS видит, что у пользователя уже есть файл cookie сеанса STS, поэтому немедленно выдает токен для RP2 и перенаправляет туда пользователя
  4. RP2 принимает токен от STS и устанавливает сеанс, пользователь теперь имеет cookie сеанса RP2

Это очень распространенный механизм, и это основной сценарий, поддерживаемый WIF. Например, после того, как вы использовали свой действующий идентификатор для входа на hotmail.com, вам не нужно повторно проходить аутентификацию, когда вы переходите на manage.dev.live.com. Это связано с тем, что у вас есть файл cookie сеанса liveID, начиная с шага 3 выше.

Это то, что вы ищете? Если это так, я могу обновить более подробно.

...