Я новичок в WIF - заранее извините, если мои вопросы кажутся очень простыми ...
У меня есть 1 веб-сайт, позволяющий сказать localhost, который требует аутентификации по имени пользователя / паролю.Доступ к // localhost / ForSecuredClientsOnly должен требовать только клиентский сертификат для доступа к сайту.
Проверка подлинности клиентских сертификатов AFAIK осуществляется IIS. Как мне решить эту проблему, если я хочу использовать STS?
Мои идеи:
- Использование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 STS и переместите // localhost / ForSecuredClientsOnly в //securedClients.localhost.Мне не очень нравится идея иметь 2 STS, хотя
- Иметь 1 STS и создавать сайты, указывающие на одну и ту же STS.
Я надеюсь, что тогда в STS я увижу, что запрос на вход идет из другой области, и затем выполню либо имя пользователя / пароль аутентификации сертификата клиента?
Я также предпочел бы не использовать эту опцию, поскольку она неидеально, если мне нужно создать новый веб-сайт для каждого раздела сайта, требующего другой аутентификации.
Вопросы:
- Я хотел бы сделать идеюномер 1 работает, но как я могу передать другую область в зависимости от подраздела сайта, я вижу, что я могу установить свойство
HomeRealm
на SignInRequestMessage
, но как позже я могу прочитать его в STS?(User.Identity.IsAuthenticated
всегда является true
в STS, если я уже вошел в систему //localhost).
Должен ли я вообще использовать HomeRealm
, чтобы различать разделы сайта? - Если у вас есть идеиКаков наилучший подход для чтения и проверки клиентского сертификата в STS, пожалуйста, дайте мне знать.
В настоящее время я думаю, что мне следует проверить, является ли сертификат Thumbnail одним из сертификатов, которые я разрешаю - сохранить коллекцию на клиентском сертификате Миниатюры в базе данных?
Я ценю все ваши комментарии.