当 ShowPii 设置为 true 时,IdentityModel 会记录哪些信息?

Vac*_*ano 6 oauth-2.0 openid-connect asp.net-core .net-standard .net-standard-2.0

IdentityModelEventSource有一个名为的属性ShowPII,这意味着个人身份信息将被添加到日志中(与安全相关)。此值用于决定何时记录某些 OAuth2 敏感数据。

我试图了解将记录什么样的个人身份信息:

  • 客户身份?(又名客户端密钥,消费者密钥)
  • 客户机密?(又名消费者秘密)
  • Json 网络令牌?(又名 JWT)
  • 访问令牌?
  • 刷新令牌?
  • Kerberos 票证?
  • PKCE 值?
  • 授权码?

我知道它无法访问用户名和密码,因为它们只能直接与 IDP 交换。

但是我需要知道我是否需要找到一种方法来锁定我的日志文件,因为它会包含构成安全漏洞的数据。

x00*_*x00 8

这是IdentityModel可能的日志消息:LogMessages.cs

关于

我试图了解将记录哪种个人身份信息

我不会从那里复制粘贴日志消息(特别是,因为它们随时可能更改)。您可以自行检查并决定什么应被视为 PII。

但这里有一个有趣的例子:

"IDX10615: Encryption failed. No support for: Algorithm: '{0}', SecurityKey: '{1}'."
Run Code Online (Sandbox Code Playgroud)

就是它的使用方式:

"IDX10615: Encryption failed. No support for: Algorithm: '{0}', SecurityKey: '{1}'."
Run Code Online (Sandbox Code Playgroud)

如果您跟踪跟踪,您会发现encryptingCredentials.Keyif 将会被记录ShowPII = true,而 if 则不会被记录ShowPII = false

当然,根据您的使用情况,此特定消息可能永远不会出现在您的日志中。并不是所有的消息都如此严重泄露。但你永远不知道:

  1. 您的用例可能会改变
  2. 您可能会误解IdentityModel可以为您的用例发出的消息集
  3. IdentityModel代码可能会更改,并且您可能会忘记检查消息集是否仍然安全

那么关于

如果我需要找到一种方法来锁定我的日志文件

是的,你绝对需要。

或者更好的是 - 不要ShowPII = true在生产中用于监控,仅在开发环境中用于调试目的。