首页 文章

SSO方案中的ADFS 2.0会话TimeOut

提问于
浏览
2

我们目前正在开发一个使用ADFS 2.0的SSO项目 . 作为IDP / CP信托 . w.r.t应用程序设计的基本要求之一是在空闲时段后重新验证用户(可以是任何东西) . 经过大量搜索后,我发现只有少数实现(除了SharePoint示例),这些实现与ADFS服务器中的WebSSOlifetime and TokenLifeTime设置有关 . 我知道WebSSOLifeTime是服务器范围设置(默认值:480),TokenLifeTime是令牌到期时的RP级别设置(默认值0 - 10小时) . 为了随机测试设置,我将WebSSOlifetime值更改为5分钟,将TokenLifeTime更改为3分钟,用于我的RP应用程序 . 但它在5分钟的空闲时间后没有触发重新认证(如WebSSOlifetime中所设置的) . 我测试的RP应用程序包括 - Google应用程序 - ADFS集成的SSO和单页应用程序来测试索赔值 . 如果有人可以发布任何指向ADFS 2.0会话维护功能的相关指针,那就太棒了 .

1 回答

  • 2

    经过一番汗水我找到了解决方法 . Stackoverflow中的This帖子确实为我提供了一个起点(非常感谢!) . 控制IP / STS登录提示的关键参数是新鲜度值(这是Oasis documentation中提到的可选参数) .

    当包含在web.config的federatedAuthentication部分中时,此参数(设置为fresh = "0")将提示IDP根据WCT参数中的当前时间检查令牌的新鲜度值 . 之后我发现(经过大量测试)TokenLifeTime set通过shell脚本进入画面 . 此(TokenLifeTime)控制用户在将其重定向到登录屏幕之前可以处于活动状态的时间 .

    正如您在请求网址中看到的那样: https://XXX/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2fXXX%2fXXX&wfresh=0&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fXXX%252fDefault.aspx&wct=2013-02-14T01%3a36%3a17Z

    wfresh和wctx值将传递给IDP进行验证 .

    我'm still unsure how everything (freshness,TokenLifetime and WebSSOLifetime) sync'在幕后 . 关于背景的一个很好的解释将是非常有帮助的(和of course will add some more reputation :)) .

相关问题