我们设置了AD服务器和AD FS服务器。我们没有使用Azure AD FS。
我们想要更改tokenlifetime,当我们将其设置为: Set-ADFSRelyingPartyTrust -TargetIdentity -tokenlifetime我们看到tokenlifetime参数设置为我们设置它的分钟数。
问题是,在接收端,令牌过期时间是43200,相当于12小时。如果我们将其设置为高于或低于12小时的数字并不重要。即使将其设置为0(默认为60分钟)也会将其设置为12小时。
经过大量的挖掘和研究,我发现了这篇文章: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-configurable-token-lifetimes
有趣的部分是这句话:
“令牌最大年龄(针对撤销信息不足的联合用户1)发布刷新令牌(针对撤销信息不足的联合用户1)12小时 刷新令牌最长非活动时间(为机密客户端发放)刷新令牌(为机密客户端颁发)90天 刷新令牌最大年龄(为机密客户端发布)刷新令牌(为机密客户端颁发)直到被撤销 1没有足够撤销信息的联合用户包括没有同步“LastPasswordChangeTimestamp”属性的任何用户。这些用户被给予这么短的Max Age,因为AAD无法验证何时撤销与旧凭证绑定的令牌(例如已更改的密码),并且必须更频繁地检查以确保用户和相关联的令牌仍然信誉良好。为了改善这种体验,租户管理员必须确保他们正在同步“LastPasswordChangeTimestamp”属性(可以使用Powershell或通过AADSync在用户对象上设置)。“
就像我之前提到的,我们没有使用AAD,所以我们不能使用AADsync方法。 (我们可能会切换到AAD,但是现在我们希望将ADFS保留在内部)。但我确实怀疑上述引用是我们问题的原因,因为它是相同的行为(令牌生命时间为12小时),即使我们将它设置为少于12小时并不重要。
我们有办法在AD FS中以任何形式或形式同步LastPasswordChangeTimestamp吗?我已经向ADFS设置了对AD的声明,因此我可以从收到的令牌中查看密码更改时间的时间戳(LDAP时间格式)。所以它似乎以某种方式同步。我们至少假设现在是问题。或者有没有办法强制执行tokenlifetime并忽略lastpasswordchanged时间戳?
或者问题可能在其他地方?
提前致谢!