身份服务器 4 + AspNetCore.Identity:X 次尝试后如何锁定?



我正在使用 identityServer4 和 AspNetCore.Identity。 我的客户端正在使用RequestClientCredentialsTokenAsync函数登录。 如何保护自己免受过多的登录尝试?

MaxFailedAccessAttempts属性,但它不执行任何操作。

看来你把事情搞糊涂了。因此,让我从术语开始。

什么是客户端?

客户端是一种请求令牌的软件身份服务器。

什么是用户?

用户使用注册客户端访问的人 资源。

客户端已注册,允许某些授权类型:

机器对机器通信

令牌始终代表客户端请求,不存在交互式用户

涉及用户时:交互式客户端

这是最常见的客户端方案类型:Web 应用程序、 具有交互式用户的SPA 或本机/移动应用程序。

当您谈论RequestClientCredentialsTokenAsync时,这表明您正在使用客户端凭据流。注册客户端以允许客户端凭据授予类型的流。

如此流程中所述,不存在交互式用户。


现在关于MaxFailedAccessAttempts属性。这是锁定选项的一部分:

获取或设置在用户被锁定,假设已启用锁定。默认值为 5。

这是为什么此属性不起作用的答案。锁定选项与客户端凭据流无关,因为不存在用户。

现在回答您的问题:我如何保护自己免受过多的登录尝试?

客户端登录与用户登录不同。没有锁定客户端的机制。如果您希望客户端使用此功能,则必须扩展IdentityServer。

但是考虑到你的问题,提到AspNetCore.Identity,你似乎应该实现用户可以登录的正确流程。看看样本。

相关内容

  • 没有找到相关文章

最新更新