Win 2012 上的 ADFS 3.0 生成 1 小时过期的 SAML 断言

ADFS 3.0 on Win 2012 generates 1 hour expired SAML assertions

我正在使用 Win 2012 并在其上安装了 ADFS 3.0。服务器配置为从现在开始为单个依赖方生成 SAML 2.0 断言(我的测试应用程序)。

我在依赖方端收到断言已过期错误,因此我使用 SAML Tracer 检查生成的断言,发现 Win 2012 服务器本身生成的断言从当前服务器时间起 1 小时后过期。

来自 SAML 断言的部分:NotBefore="2016-05-05T12:19:15.789Z" NotOnOrAfter="2016-05-05T13:19:15.789Z"

当时我的服务器时间是系统时钟下午 2 点 29 分。

知道是什么导致了这个时差以及如何解决它吗?

这通常意味着您的应用服务器与 ADFS 服务器存在明显的时间偏差,并且您的应用的验证库不允许这样做。我认为 ADFS 中时间偏差的默认允许值为 5 分钟,但我可能弄错了。

首先,尝试同步时间。如果您从 NTP 服务器同步,这通常应该没问题。

您也可以尝试更改 ADFS 中的 SKEW 设置。不建议这样做,因为这有助于确保服务器时间同步。

Set-ADFSRelyingPartyTrust -NotBeforeSkew "5" -targetname "your app name"