我正在查看为每个请求记录客户端ID的选项(如果可用),以便可以将其用于报告目的,以找出每个客户端的请求数。当LogLevel为Information时,Ids会记录令牌请求的客户端ID。查看IDS代码,我们需要从AuthenticationHeader或请求的Body中提取客户端ID。想知道是否有任何已经内置到id中的内容来执行此操作。还有其他方法吗?
答案 0 :(得分:3)
绝对!
实施IEventService就是您追求的目标。
可以在这些内部扩展方法的源代码中查看传输到IEventService的所有事件的概述; IEventServiceExtensions
AccessTokenIssuedEvent
,AuthorizationCodeDetails
和RefreshTokenDetails
事件将包含ClientId接收令牌 - 因此您可以创建审核日志。
IEventService
的默认实现是DefaultEventService,它将使用您为IdentityServer使用的日志记录机制,但如果您愿意,可以将其交换为登录到数据库。