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

Ошибка ADFS при входе в систему для поставщика услуг SAML

У меня есть Spring SAML Project, который разрабатывается около месяца. Я интегрировался с ADFS, и все работает хорошо. Я получаю прерывистый ошибка, которая становится проблематичной, потому что мне нужно ждать, пока она, казалось бы, решать чтобы снова начать работать. Теперь он чаще показывает ошибку, чем работает. Я вижу эту ошибку после входа в систему с любым количеством тестовых учетных записей AD.

Идентификатор ошибки 111 в журнале событий

The Federation Service encountered an error while processing the WS-Trust request. 
Request type: http://schemas.microsoft.com/idfx/requesttype/issue 

Additional Data 
Exception details: 
System.ArgumentOutOfRangeException: Not a valid Win32 FileTime.
Parameter name: fileTime
   at System.DateTime.FromFileTimeUtc(Int64 fileTime)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetPasswordExpiryDetails(SafeLsaReturnBufferHandle profileHandle, DateTime& nextPasswordChange, DateTime& lastPasswordChange)....

Ошибка 364 в журнале событий ADFS

Encountered error during federation passive request. 

Additional Data 

Protocol Name: 
Saml 

Relying Party: 
https://localhost:8443/elsso/saml/metadata/alias/serviceprovider

Exception details: 
System.ArgumentOutOfRangeException: Not a valid Win32 FileTime.
Parameter name: fileTime
   at System.DateTime.FromFileTimeUtc(Int64 fileTime)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetPasswordExpiryDetails(SafeLsaReturnBufferHandle profileHandle, DateTime& nextPasswordChange, DateTime& lastPasswordChange)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUserInfo(SafeHGlobalHandle pLogonInfo, Int32 logonInfoSize, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String authenticationType, String issuerName)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUser(UserNameSecurityToken token, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String issuerName)....

Конфигурация поставщика услуг, AD, ADFS, сертификатов и утверждений SAML верна. По крайней мере, они работают в 90% случаев, когда я не получаю эту ошибку.

То, что я пробовал, пока он терпит неудачу, не помогло

  1. Перезапуск службы ADFS и виртуального сервера
  2. Синхронизация времени прокси-сервера (не уверен, что именно это означает, нашел документ MS, который предлагал это для типов ошибок 111 и 364) в powershell w32tm / config /manualpeerlist:pool.ntp.org / syncfromflags: manual / update
  3. Две статьи StackOverflow, связанные с этим, показали ошибку в метаданных утверждения и что SHA-256 не поддерживается. Я проверил свои метаданные и использую SHA-1.
  4. Я не могу найти статей, непосредственно связанных с этой проблемой, на любом сайте поддержки Microsoft, однако я новичок в решении такого рода проблем и, возможно, просто не знаю, где искать.

На данный момент он работает несколько минут каждые несколько часов, а в остальное время выходит из строя.

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

ОБНОВИТЬ Я не могу войти в ADFS изначально, что еще раз указывает мне, что это проблема не с поставщиком услуг, а с самим ADFS / AD.

Основываясь на предложениях администратора Windows, я сделал следующее, что устранило проблему.

  1. Гарантированная служба W32Time использует NTP (это не так)
  2. Убедитесь, что все обновления установлены (они были)
  3. Убедитесь, что все службы работают под учетной записью службы, а не под учетной записью контроллера домена (это не так)
  4. Убедившись, что ADFS работает под учетной записью службы, воссоздайте поставщика услуг.

На этом этапе ошибка возникала только у части пользователей AD. Для этих пользователей я сбросил их пароли, что затем устранило проблему.

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

Надеюсь, это кому-то поможет.

Обновить:

Другая возможная причина ошибки: если вы измените UPN в Active Directory на строку, содержащую пробел, эта ошибка появится.

2-е обновление:

Использование недействительного домена также может вызвать эту ошибку.