Назад | Перейти на главную страницу

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

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

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

Когда я захожу на свой сайт adfs (https://adfs.xx.com/adfs/ls/IdpInitiatedSignon.aspx) и войдите с действующими учетными данными, я получаю следующую ошибку:

На месте

  • Идентификатор действия: 00000000-0000-0000-3d00-0080000000e9
  • Время ошибки: Mon, 01 Feb 2016 09:04:18 GMT
  • Cookie: включен
  • Строка пользовательского агента: Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 48.0.2564.97 Safari / 537.36

На сервере (Средство просмотра событий> Журналы приложений и обслуживания> AD FS> Администратор)

Уровень: ошибка, источник: AD FS, идентификатор события: 364, Категория задачи: Нет

.

Обнаружена ошибка во время пассивного запроса федерации.

Дополнительная информация

Имя протокола: Saml

Проверяющая сторона: http://adfs.xx.com/adfs/services/trust

Сведения об исключении: System.FormatException: входная строка имеет неправильный формат. в System.Text.StringBuilder.AppendFormat (поставщик IFormatProvider, формат String, аргументы Object []) в System.String.Format (поставщик IFormatProvider, формат String, аргументы Object []) в Neos.IdentityServer.MultiFactor.AuthenticationProvider.IsAvailableForUser(Утверждение identityClaim, контекст IAuthenticationContext) в Microsoft.IdentityServer.Web.Authentication.External.ExternalAuthenticationHandler.IsAvailableForUser (Claim identityClaim, IAuthenticationContext authContext) в Microsoft.IdentityServer.WebailableForUser (Claim identityClaim, IAuthenticationContext authContext), в Microsoft.IdentityServer.WebcessHouseContextContext, AuthenticationContextContext.AuthenticationContext.AuthenticationContext.AuthenticationContext. userData) в Microsoft.IdentityServer.Web.Authentication.External.ExternalAuthenticationHandler.Process (контекст ProtocolContext) в Microsoft.IdentityServer.Web.Authentication.AuthenticationOptionsHandler.Process (контекст ProtocolContext) в Microsoft.IdentityServer.Web.Authentication.AuthenticationOptionsHandler.

Я попытался решить проблему, проверив сертификаты SSL; все они установлены правильно. Ошибок пинга нет. Я также проверил код из проект и нет никаких недостатков.

Кто-нибудь знает об этой ошибке или подтолкнет меня в правильном направлении? Любая помощь очень ценится!

[Обновление 1]

Уровень логирования - уровень 2; основная ошибка.

[Обновление 2]

Увидеть Проблемы Codeplex.

[Обновление 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 у меня возникла проблема с регистрацией SPN, потому что полное доменное имя моего сервера было таким же, как и предполагаемое имя службы федерации (adfs.domain.com), поэтому зарегистрировать SPN для 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 реализация. Это решило проблему.