我的任务是编写一个将使用ADFS进行身份验证的asp.net Web应用程序。但是,在应用程序的一个阶段,用户必须重新进行身份验证并再次提供其用户名和密码。
这可以用ADFS完成吗?
答案 0 :(得分:3)
ASP.NET应用程序可以是STS的活动客户端,也可以是被动客户端。当您需要升级时,请提供一些输入字段并要求用户提供其他人的详细证明。使用WSTrustChannelFactory,将此信息(可能还有原始令牌)传递给STS,以获得更新鲜的新令牌,并包含足以授权更高价值交易的声明。
答案 1 :(得分:1)
重新认证的目标是什么,即用户需要证明什么?
我假设应用程序想要一个具有最近身份验证时间戳的登录令牌(例如,在最后10秒内),以便应用程序可以合理地确定客户端系统确实仍在同一用户的控制之下
(顺便提一下,请注意您的Web服务器和AD FS服务器之间的时钟差异。)
在接下来的几个月里,我将调查类似的情况,我目前的想法是使用the SessionAuthenticationModule.SessionSecurityTokenReceived Event,如this blog post by Vittorio Bertocci中所述。但是,这不能是整个解决方案,因为这只会强制AD FS发出令牌,但它不会强制AD FS发出带有最新身份验证时间戳的令牌。
所以还没有答案,但也许这些提示有帮助。
答案 2 :(得分:1)
此article描述了可在此方案中帮助您的“升级”过程。我没有用它,所以我不能详细评论。它看起来非常接近你想要做的事情。
答案 3 :(得分:0)
减少TokenLifetime属性使您可以重新验证用户身份。假设TokenLifetime默认为60分钟,但在20分钟之前显示弹出窗口。但可能会有数据丢失