【发布时间】:2019-07-14 15:08:29
【问题描述】:
我们正在使用 IdentityServer4 创建一个安全令牌服务。由于审核要求,我们希望记录每次成功(和失败)的登录尝试,以及有关已颁发令牌的信息,特别是:令牌包括哪些声明。
最明显的部分似乎打开了(部分)IdentityServer 中提供的the event types,并创建了一个custom event sink,可以在其中处理登录成功和失败(例如登录到数据库)。
我们已经创建了这样的接收器,但是传递给 PersistAsync 方法的事件只包含有关尝试登录的用户的信息,而没有包含有关已颁发令牌的信息。我还发现各种问题(here、here 和 here)都提到了有关支持令牌记录、自定义令牌记录等的安全问题,所有这些都让我相信这可能不像我们希望的那样直接.
所以问题是:如果可能的话,在哪里连接到 IdentityServer 以实现对已发行令牌的审计日志记录的正确/最佳位置?
【问题讨论】:
-
这应该很容易通过扩展令牌的默认身份服务器服务并在 DI 中覆盖它们来完成。还可以使用一些自定义中间件来检查令牌的响应,这可能是一种侵入性较小的方法。但显然,根据您的研究,此类日志记录的安全性是一些人关心的问题,因此您需要评估它是否不适合您。
标签: identityserver4 audit-logging