ADL SAML服务提供商login错误

我有一个已经开发了大约一个月的Spring SAML项目。 我已经集成了ADFS,一切都运行良好。 我得到了一个间歇性的错误,因为我不得不等待它似乎决定再次开始工作。 现在它比正常显示更多的错误。 在使用任意数量的testingAD帐户进行login后,我看到此错误。

错误ID 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).... 

ADFS事件日志中的错误364

 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断言的configuration是正确的。 当我没有得到这个错误时,至less他们有90%的时间工作。

我所尝试的是失败,但没有帮助

  1. 重新启动ADFS服务和虚拟服务器
  2. 同步代理服务器时间(不知道这意味着什么,确切地说,find一个MS文件,build议它的错误types111和364)在PowerShell中w32tm / config / manualpeerlist:pool.ntp.org / syncfromflags:手动/更新
  3. 与此相关的两个StackOverflow文章在断言元数据中显示错误,并且不支持SHA-256。 我已validation我的元数据,并使用SHA-1。
  4. 在任何Microsoft支持网站上找不到与此问题直接相关的任何文章,但是,我是新来处理这类问题,可能只是不知道在哪里看。

到现在为止,它每隔几个小时就会工作几分钟,然后再rest一段时间。

我真的难住,任何build议,以解决这个问题的方法将不胜感激。

更新我不能本地login到ADFS,这进一步表明,这不是服务提供商的问题,而是ADFS / AD本身。

基于Windowspipe理员的build议,我做了以下解决了这个问题。

  1. 确保W32Time服务使用NTP(不是)
  2. 确保所有更新都已安装(他们是)
  3. 确保所有服务都在服务帐户下运行,而不是域控制器帐户(他们不是)
  4. 确保ADFS在服务帐户下运行后,重新创build服务提供者

此时,错误只发生在AD用户的一个子集中。 在这些用户身上,我重置了他们的密码,然后解决了这个问题。

虽然我不完全确定为什么这开始发生或者这些步骤如何解决它,我的理论是,不使用一个服务帐户来pipe理所有这些文件导致写入的文件不能被运行在不同帐户下的进程读入。

希望这有助于某人。

更新:

错误的另一个可能的原因是如果您将Active Directory中的UPN更改为包含空格的string,则会显示此错误。