我在 ASP.NET 中有一个 OIDC 身份服务器,并且有一个客户端(也在 ASP.NET 中)连接到它以使用客户端凭据流进行授权。
当用户尝试登录并输入错误密码达到配置的次数时,其帐户将被锁定。发生这种情况时,客户端希望记录一些日志,包括用户名、锁定持续时间(例如锁定 X 分钟)以及锁定发生的时间(例如 Y 时间偏移)等详细信息。
向客户传达此信息的最佳方式是什么?
我正在考虑向客户端发送声明或参数,因为我们知道返回 URL。
处理此问题的建议方法是什么?
当您说
client
时,感觉您指的是客户组织而不是应用程序。您可能会澄清这一点并解释设置。当用户认证失败时,您无法颁发令牌。
在 OAuth 中,授权服务器 (AS) - 或者 OIDC 提供商(如果您愿意)应该处理安全审核和通知人员。以下是云原生部署中常见的一些使用模式。您可以调查您的提供商对他们的支持。
审核日志
AS 的实例写入审核日志,您将这些日志汇总并提供给感兴趣的人以供他们查询。这是最适合您的用例吗?
select * from login_attempts where ...
安全事件
AS 允许您订阅锁定等事件并执行通知人员等自定义操作。您也许还可以使用日志记录事件来检测事件并运行自定义操作。
指标
AS 在内部端点提供自定义指标,Prometheus 等监控系统可以将数据查询并记录为时间序列。如果像
login_lockout_rate
或 login_failure_rate
这样的指标超过阈值,您可能会向人们发出电子邮件等警报。