[英]identity server 4 + AspNetCore.Identity: how to lockout after X tries?
我正在将 identityServer4 与 AspNetCore.Identity 一起使用。 我的客户正在使用 RequestClientCredentialsTokenAsync 函数登录。 我如何保护自己免受过多的登录尝试?
MaxFailedAccessAttempts
属性,但它不执行任何操作。
看来你在混淆事情。 让我从 术语开始。
什么是客户?
客户端是一个从 IdentityServer 请求令牌的软件。
什么是用户?
用户是使用已注册的客户端访问的资源是人。
客户端注册允许某些授权类型:
机器对机器通信:
始终代表客户端请求令牌,不存在交互式用户。
当涉及用户时:交互式客户端。
这是最常见的客户端场景类型:具有交互式用户的Web 应用程序、SPA 或本机/移动应用程序。
当你谈论RequestClientCredentialsTokenAsync
则表明您使用的是ClientCredentials流动。 客户端注册以允许客户端凭据授予类型的流。
如本流程所述,不存在交互式用户。
现在关于MaxFailedAccessAttempts
属性。 这是锁定选项的一部分:
获取或设置在用户被锁定之前允许的失败访问尝试次数(假设已启用锁定)。 默认为 5。
这是为什么此属性不起作用的答案。 锁定选项与客户端凭据流无关,因为没有用户存在。
现在回答您的问题:我如何保护自己免受过多的登录尝试?
客户端登录与用户登录不同。 没有锁定客户端的机制。 如果您想为客户端提供此功能,则必须扩展 IdentityServer。
但是鉴于您的问题,提到AspNetCore.Identity ,您似乎更应该实现用户可以登录的正确流程。 看看样品。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.