Сайт MVC3, использующий Azure ACS & ADFS, постоянно запрашивает учетные данные при использовании Firefox и Chrome
Я создал базовый веб-сайт MVC 3, который использует службу контроля доступа (ACS) Windows Azure для выполнения проверки подлинности пользователя по конечной точке федеративной службы Active Directory (ADFS). Я следовал мастеру "Добавить ссылку на STS", и сайт прекрасно работает и просто отлично аутентифицирует пользователей в IE. Однако, когда я использую Chrome или Firefox, он постоянно запрашивает мои учетные данные снова и снова.
Я нашел этот пост в technet, в котором упоминается проблема, связанная с Firefox, но в Chrome упомянуто не исправлено, и я не чувствую, что шаги, необходимые для исправления Firefox, практичны в реальном мире (то есть я не ожидаю, что конечные пользователи сделай это)
Кто-нибудь еще ударил эту загвоздку? Что я делаю неправильно?
2 ответа
С некоторой помощью от Microsoft Rep (Adam Conkle) из TechNet (прокрутите вниз до комментариев) у меня наконец есть ответ на эту проблему.
Оказывается, веб-сайт ADFS, который выполняет аутентификацию пользователей (этот веб-сайт настраивается в IIS во время установки ADFS v2.0), по умолчанию настроен для встроенной аутентификации Windows (IWA). IWA настроен в IIS для использования расширенной защиты для проверки подлинности (EPA), и в этом заключается проблема. По-видимому, большинство других браузеров пока не поддерживают EPA, поэтому Firefox и Chrome постоянно запрашивают учетные данные в цикле.
Два варианта...
- Продолжайте использовать IWA, но отключите EPA в IIS для веб-сайта ( описано здесь)
- Отключите IWA в пользу аутентификации на основе форм ( описано здесь)
У меня была такая же проблема, вроде. У меня был 1 человек, которому подсказывали в Chrome, а другой - нет. По догадке я посмотрел на доверенные сайты. У человека, который подвергался сомнению, был сайт интранета в списке доверенных сайтов. Я удалил его и попробовал еще раз. На этот раз они не были оспорены.
Думал, я бы это выполнил на случай, если у кого-то еще возникнет эта проблема