【问题标题】:ADFS 2.0 token expiration timeADFS 2.0 令牌过期时间
【发布时间】:2012-04-17 03:49:23
【问题描述】:

我在客户端缓存一个由 ADFS 2.0 发出的令牌,并在调用服务时多次使用它。

在生产环境中,我想确保客户端可以缓存的令牌在几分钟后过期。 我已经读到 ADFS 2.0 中的令牌在 10 小时后过期,但我找不到可以更改依赖方令牌过期时间的地方。

这是我目前从 STS 请求令牌的方式:

WSTrustChannelFactory trustChannelFactory = new WSTrustChannelFactory(binding, http://adfs/adfs/services/trust/13/windows");

trustChannelFactory.TrustVersion = TrustVersion.WSTrust13;
WSTrustChannel channel = (WSTrustChannel)trustChannelFactory.CreateChannel();
RequestSecurityToken rst = new RequestSecurityToken(WSTrust13Constants.RequestTypes.Issue);

rst.RequestDisplayToken = true;
rst.AppliesTo = new EndpointAddress("http://*****/IService);
rstr = null;
SecurityToken token = channel.Issue(rst, out rstr);

我尝试将WEB SSO时间设置为两分钟,但似乎没有任何影响。

在 ADFS 上配置过期时间的正确位置是什么?

【问题讨论】:

    标签: c# adfs2.0 sts-securitytokenservice federation


    【解决方案1】:

    您可以使用 ADFS PowerShell 扩展模块来执行此操作:

    用途:

    Set-AdfsRelyingPartyTrust –TargetName "Relying party name" –TokenLifeTime 5
    

    将到期时间设置为 5 分钟。

    记得首先通过运行加载 ADFS PowerShell 管理单元

    Add-PSSnapin Microsoft.Adfs.PowerShell
    

    可在此处找到更多文档: http://technet.microsoft.com/en-us/library/adfs2-powershell-basics%28v=ws.10%29.aspx

    http://technet.microsoft.com/en-us/library/adfs2-help-using-windows-powershell%28v=ws.10%29.aspx

    【讨论】:

    • 感谢您的回答,我一直在寻找一种通过 UI 配置它的方法,但似乎使用 powershell 是唯一的方法。您的链接非常有用。