Windows Identity Foundation отличается аутентификацией для раздела сайта - PullRequest
0 голосов
/ 03 июня 2011

Я новичок в WIF - заранее извините, если мои вопросы кажутся очень простыми ...

У меня есть 1 веб-сайт, позволяющий сказать localhost, который требует аутентификации по имени пользователя / паролю.Доступ к // localhost / ForSecuredClientsOnly должен требовать только клиентский сертификат для доступа к сайту.
Проверка подлинности клиентских сертификатов AFAIK осуществляется IIS. Как мне решить эту проблему, если я хочу использовать STS?

Мои идеи:

  1. Использование1 STS, установите IIS на Принять сертификат (не требуется) и прочитайте сертификат в STS и выясните, может ли пользователь получить доступ к ресурсу.Я читал http://msdn.microsoft.com/en-us/library/ff359105(v=PandP.10).aspx и http://blogs.msdn.com/b/eugeniop/archive/2010/04/03/wif-and-mvc-how-it-works.aspx, но когда я уже вошел в систему // localhost и попытался получить доступ к // localhost / ForSecuredClientsOnly, STS считает, что я действительный пользователь.
    Я возвращаю новый результат перенаправления из ForSecuredClientsOnly (путь от SignInRequestMessage, поскольку пользователь не принадлежит к группе X), но область всегда: // localhost / (вероятно, это ожидаемое поведение и причина, по которой пользователь являетсяauthenticated ...)
  2. Используйте 2 STS и переместите // localhost / ForSecuredClientsOnly в //securedClients.localhost.Мне не очень нравится идея иметь 2 STS, хотя
  3. Иметь 1 STS и создавать сайты, указывающие на одну и ту же STS.
    Я надеюсь, что тогда в STS я увижу, что запрос на вход идет из другой области, и затем выполню либо имя пользователя / пароль аутентификации сертификата клиента?
    Я также предпочел бы не использовать эту опцию, поскольку она неидеально, если мне нужно создать новый веб-сайт для каждого раздела сайта, требующего другой аутентификации.

Вопросы:

  1. Я хотел бы сделать идеюномер 1 работает, но как я могу передать другую область в зависимости от подраздела сайта, я вижу, что я могу установить свойство HomeRealm на SignInRequestMessage, но как позже я могу прочитать его в STS?(User.Identity.IsAuthenticated всегда является true в STS, если я уже вошел в систему //localhost).
    Должен ли я вообще использовать HomeRealm, чтобы различать разделы сайта?
  2. Если у вас есть идеиКаков наилучший подход для чтения и проверки клиентского сертификата в STS, пожалуйста, дайте мне знать.
    В настоящее время я думаю, что мне следует проверить, является ли сертификат Thumbnail одним из сертификатов, которые я разрешаю - сохранить коллекцию на клиентском сертификате Миниатюры в базе данных?

Я ценю все ваши комментарии.

1 Ответ

0 голосов
/ 19 марта 2012

Думаю, стоит взглянуть на проект сообщества Starter STS в Codeplex.

...