Код события AD FS 3.0 364 при создании MFA (и SSO)

У меня есть чистая установка AD FS 3.0 на сервере Windows 2012. Я пытаюсь создать MFA в моей внутренней сети, используя этот Codeplex .

Управление AD FS> Политики аутентификации

  • Многофакторные местоположения: Интранет
  • Выбранное расширение многофакторной аутентификации (имя из codeplex)

Когда я перехожу на свой сайт 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]

Доступна новая версия с исправленными ошибками. Сообщения об ошибках исправлены.

2
задан 29 February 2016 в 10:51
3 ответа

В справочнике Microsoft TechNet для ADFS 2.0 для события 364 указано следующее:

Это событие может быть вызвано чем угодно, что неверно в пассивном запросе. Это может произойти во время единого входа (SSO) или выхода из системы для сценариев SAML и WS-Federation.

https://technet.microsoft.com/en-us/library/adfs2-troubleshooting-fedpassive-request-failures (v = ws.10) .

Я понимаю, что вы используете более новую версию 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.

Наконец, если ничего из вышеперечисленного не помогает, я бы перепроверьте документацию расширения, чтобы убедиться, что вы не пропустили ни одного шага в настройке. Надеюсь, это поможет!

2
ответ дан 3 December 2019 в 10:40

Я столкнулся с этой проблемой в 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
1
ответ дан 3 December 2019 в 10:40

У меня была такая же проблема в Windows Server 2016. Оказалось, что поставщик MFA определил доступные LCID (языки) только для en-US , но мой браузер этого не сделал отправьте en или en-US в качестве допустимого языка.

Установка en-US в качестве допустимого языка в браузере временно помогла.

Но поскольку я сам написал поставщика MFA, я определил по крайней мере CultureInfo.InvariantCulture.LCID как один из AvailableLcids в моей реализации IAuthenticationAdapterMetadata . Это решило проблему.

0
ответ дан 3 December 2019 в 10:40

Теги

Похожие вопросы