ws federation -在ADFS自定义身份验证适配器中存储重试计数器的位置



我通过在。net中实现IAuthenticationAdapter来为ADFS 3.0设置一个自定义MFA提供程序。这个自定义适配器生成一个随机代码,该代码传输到用户的移动电话。

我想限制用户可以输入随机码的次数,以帮助防止暴力攻击。我使用存储在传递给BeginAuthentication()TryEndAuthentication()的上下文中的重试计数器来完成此操作。

我刚刚发现,然而,这个上下文不是一个服务器端的东西,而是在一个隐藏的html字段中加密并传输到客户端。

用户现在可以绕过重试限制,只需导航到具有先前重试计数值的上一页,并使用新代码重新提交该页。

我相信我只需要存储重试计数服务器端,但在哪里?在文档中找不到任何相关内容

我希望ADFS本身能以某种方式支持重试限制。

我还没有找到在身份验证过程中存储数据的服务器端位置。我相信没有。

因此,我决定删除重试功能,从而消除了对服务器端会话数据的需求。我的定时密码身份验证模块可以不使用此功能。

但是,这确实让我困惑。当然,更复杂的身份验证模块需要一些地方来跟踪服务器端的身份验证进程。

最新更新