У меня есть чистая установка AD FS 3.0 на сервере Windows 2012. Я пытаюсь создать MFA в моей внутренней сети, используя этот Codeplex .
Управление AD FS> Политики аутентификации
Когда я перехожу на свой сайт adfs ( https: // adfs .xx.com / adfs / ls / IdpInitiatedSignon.aspx ) и войдите в систему с действительными учетными данными, я получаю следующую ошибку:
На сайте
- Идентификатор действия: Safari / 537.36
На сервере (Средство просмотра событий> Журналы приложений и обслуживания> AD FS> Администратор)
Уровень: Ошибка, Источник: AD FS, Идентификатор события: 364 , Категория задачи: Нет
.
Обнаружена ошибка во время пассивного запроса федерации.
Дополнительные данные
Имя протокола: Saml
Проверяющая сторона: http://adfs.xx.com/adfs/services/trust
Сведения об исключении: System.FormatException: входная строка не была в правильный формат. в System.Text.StringBuilder.AppendFormat (поставщик IFormatProvider, Формат строки, Object [] args) в System.String.Format (поставщик IFormatProvider, строковый формат, Object [] args) в Neos.IdentityServer.MultiFactor.AuthenticationProvider.IsAvailableForUser (Утверждение identityClaim, контекст IAuthenticationContext) в Microsoft.IdentityServer.Web.Authentication.External.ExternalAuthenticationHandler.IsAvailableForUser (Утверждение identityClaim, IAuthenticationContext authContext) в Microsoft.IdentityServer.Web.Authentication.External.ExternalAuthenticationHandler.ProcessContext (ProtocolContext контекст, IAuthenticationContext authContext, IAccountStoreUserData userData) на Microsoft.IdentityServer.Web.Authentication.External.ExternalAuthenticationHandler.Process (ProtocolContext контекст) в Microsoft.IdentityServer.Web.Authentication.AuthenticationOptionsHandler.Process (ProtocolContext контекст) в Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext (WrappedHttpListenerContext context)
Я попытался решить проблему, проверив сертификаты SSL; все они установлены правильно. Ошибок пинга нет. Я также проверил код из проекта , и также нет никаких ошибок.
Кто-нибудь знает об этой ошибке или подтолкнет меня в правильном направлении? Любая помощь очень ценится!
[Обновление 1]
Уровень ведения журнала - уровень 2; основная ошибка.
[Обновление 2]
См. Проблемы Codeplex .
[Обновление 3]
Доступна новая версия с исправленными ошибками. Сообщения об ошибках исправлены.
В справочнике Microsoft TechNet для ADFS 2.0 для события 364 указано следующее:
Это событие может быть вызвано чем угодно, что неверно в пассивном запросе. Это может произойти во время единого входа (SSO) или выхода из системы для сценариев SAML и WS-Federation.
Я понимаю, что вы используете более новую версию ADFS, но мне не удалось найти обновленную ссылку в документации 2012 R2. Однако описание в любом случае не так уж и полезно.
Ссылки из некоторых других источников обычно указывают на проблемы с сертификатом (проверка отзыва, отсутствие сертификата в цепочке) или временной сдвиг.
http: //www.gfi. com / blog / how-to-resolve-adfs-issues-with-event-id-364 /
Я знаю, что вы сказали, что сертификаты были установлены правильно, но вы можете дважды проверить, можете ли вы выполнить проверку отзыва и цепь проверяет. Самый простой способ сделать это - открыть сертификат на сервере из оснастки «Сертификаты» и убедиться в отсутствии ошибок - предупреждения на вкладках «Общие» и «Путь сертификации».
У меня были проблемы с перекосом времени, укусившие меня в других сценариях аутентификации, поэтому обязательно убедитесь, что все ваши часы совпадают.
В другом потоке, с которым я столкнулся, упоминалась проблема с именами SPN. Я знаю, что при настройке среды ADFS 2012 R2 у меня возникла проблема с регистрацией имени участника-службы, поскольку полное доменное имя моего сервера было таким же, как предполагаемое имя службы федерации (adfs.domain.com), поэтому зарегистрировать имя участника-службы для ADFS не удалось. Я исправил это, изменив имя хоста на другое и вручную зарегистрировав SPN. К сожалению, я не помню, вызвала ли эта проблема событие 364.
Мне любопытно, что вы не упомянули, если пытались, - проверяли ли вы аутентификацию в ADFS без расширения MFA. Имя расширения, отображаемое в стеке исключений, похоже, указывает на то, что это часть проблемы, но этот тест может помочь вам исключить проблемы с другими аспектами вашего развертывания ADFS.
Наконец, если ничего из вышеперечисленного не помогает, я бы перепроверьте документацию расширения, чтобы убедиться, что вы не пропустили ни одного шага в настройке. Надеюсь, это поможет!
Я столкнулся с этой проблемой в Windows Server 2016, и она оказалась довольно базовой в моей установке. Проблема в том, что страница не была включена. Когда я попытался подписаться, я получил ошибку 364.
Ссылка на ответ на мою проблему: https://blogs.technet.microsoft.com/rmilne/2017/06/20/how-to-enable-idpinitiatedsignon-page-in-ad-fs-2016/
Set-AdfsProperties –EnableIdpInitiatedSignonPage $True
У меня была такая же проблема в Windows Server 2016. Оказалось, что поставщик MFA определил доступные LCID (языки) только для en-US
, но мой браузер этого не сделал отправьте en
или en-US
в качестве допустимого языка.
Установка en-US
в качестве допустимого языка в браузере временно помогла.
Но поскольку я сам написал поставщика MFA, я определил по крайней мере CultureInfo.InvariantCulture.LCID
как один из AvailableLcids
в моей реализации IAuthenticationAdapterMetadata
. Это решило проблему.