Единый вход WIF и проверка подлинности с помощью форм - PullRequest
2 голосов
/ 14 декабря 2011

У меня есть приложение, которое работает на основе аутентификации форм.Я хочу включить дополнительный единый вход в моем приложении.Я хочу создать на дополнительной странице входа в систему (login_sso.aspx), которая будет использовать STS для проверки подлинности пользователя, и если пользователь прошел проверку подлинности успешно, то он создаст файл cookie проверки подлинности формы таким образом, что остальная часть приложения будет работать без изменений.В моей аудитории я буду использовать страницу login_sso.aspx

<audienceUris>
<add value="https://www.myapp.com/login_sso.aspx" />
</audienceUris>

, для этого мне нужно сохранить режим аутентификации = "Нет", но тогда моя исходная страница входа не будет работать, и если я сохраню режим аутентификации = "Формы "тогда мой login_sso.aspx не будет перенаправлять на STS.Это работает, только если я установлю режим аутентификации = "Нет".

Есть ли способ обойти это?где я могу сохранить свой режим аутентификации = "Forms" и по-прежнему использовать STS (только для login_sso.aspx)

1 Ответ

2 голосов
/ 14 декабря 2011

Есть много решений для этого.Одна вещь, чтобы рассмотреть, что вы подразумеваете под «необязательным SSO».Если под этим вы подразумеваете, что ваше приложение теперь будет принимать идентификационные данные от сторонних поставщиков (STS, LiveID или Google Ids клиента), в дополнение к вашим собственным именам пользователей / паролям;тогда самый чистый и элегантный подход заключается в следующем:

  1. Заявки включают ваше приложение (которое, если вы сегодня используете Forms AuthN, скорее всего, будет иметь нулевое влияние на ваш код)
  2. Представьте STS (ваше собственное), которое будет одновременно «провайдером федерации» (это означает, что это будет мост между вашим приложением и всеми сторонними провайдерами идентификации);и сам Identity Provider (аутентификация ваших пользователей, как вы делаете сейчас).

1 сравнительно легко.Для # 2 вам нужно приобрести STS.В зависимости от того, где вы размещаете хостинг, вы можете использовать стандартные STS, такие как ADFS (v2), или вам может потребоваться пользовательский (например, IdentityServer на CodePlex)

Менее элегантный (и менее перспективный в будущем).) решение, вероятно, потребует некоторых программных манипуляций с WIF (как описано в в этом посте ).

Кстати, "URI аудитории" - это не URL в вашем приложении.Он предназначен для идентификации потребителя токена, выданного STS.

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