首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用IdentityServer添加审核日志记录

如何使用IdentityServer添加审核日志记录
EN

Stack Overflow用户
提问于 2019-02-21 04:18:39
回答 1查看 1.2K关注 0票数 1

我们正在使用IdentityServer4创建一个安全令牌服务。由于审计要求,我们希望记录每一次成功(和失败)的登录尝试,以及有关颁发的令牌的信息,特别是:令牌包括哪些声明。

最明显的部分似乎是打开(一些) IdentityServer中提供的the event types,并创建一个可以处理登录成功和失败的custom event sink (例如,记录到数据库中)。

我们已经创建了这样一个接收器,但是传递给PersistAsync方法的事件只包含有关尝试登录的用户的信息,而不包含有关颁发的令牌的信息。我还发现了各种发布的(hereherehere),它们都提到了支持令牌日志、自定义令牌日志等方面的安全问题,所有这些都让我相信,这可能并不像我们希望的那样简单。

所以问题是:在哪里,如果可能的话,是连接到IdentityServer i的正确/最佳位置,以便实现对已颁发令牌的审计日志记录?

EN

回答 1

Stack Overflow用户

发布于 2019-02-21 20:48:42

为此,我们将IDS4公开的现有事件与我们自己的事件结合使用,并通过Mediatr将它们分派给处理程序,然后处理程序可以记录或采取其他操作(例如,向最终用户发送电子邮件警报或调用外部集成)。我们还将Hangfire添加到混搭中,以处理某些事情的后台处理。

IDS4 --event--> IEventSink --publish--> Mediatr --dipatch--> IAsyncNotificationHandler(s) ---> action

Our custom events --publish--> Mediatr --dispatch--> IAsyncNotificationHandler(s) --> action

action可以调度hangfire命令或写入DB等。

至于当前请求的上下文-因为这些事件是在请求的上下文中调用的,所以您有相当多的环境信息可用-主要是针对有问题的用户的声明。

我们不会记录任何敏感内容,比如密码或令牌本身,但记录声明可能没问题,因为这些声明本身不应该特别敏感。

如果你需要比IDS4提供的更多的东西,那么你可能需要重写他们的代码并注入你自己的事件引发逻辑。例如,你可以扩展DefaultClaimsService并覆盖GetIdentityTokenClaimsAsync来插入你自己的逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54794608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档