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



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

我正在努力了解什么样的个人身份信息将被记录:

  • 客户端ID?(又名客户端密钥、消费者密钥(
  • 客户秘密?(又名消费者秘密(
  • Json网络代币?(又名JWT(
  • 访问令牌
  • 刷新令牌
  • Kerberos票证
  • PKCE值
  • 授权代码

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

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

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

关于

我正在努力了解将记录哪种个人身份信息

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

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

"IDX10615: Encryption failed. No support for: Algorithm: '{0}', SecurityKey: '{1}'."

这就是它的使用方式:

throw LogHelper.LogExceptionMessage(new SecurityTokenEncryptionFailedException(LogHelper.FormatInvariant(TokenLogMessages.IDX10615, encryptingCredentials.Enc, encryptingCredentials.Key)));

如果你遵循这条轨迹,你会发现如果ShowPII = trueencryptingCredentials.Key将被记录,如果ShowPII = false,则不会被记录。

当然,根据您的用例,此特定消息可能永远不会出现在您的日志中。并不是所有的信息都如此漏洞百出。但你永远不会知道:

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

关于

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

是的,你肯定需要。

或者更好的做法是,不要在生产中使用ShowPII = true进行监控,只在开发环境中使用它进行调试。

查看源代码,当ShowPII打开时,它会做两件事:

  1. 将传递给库特定异常的所有参数替换为其数据类型名称
  2. 对于所有系统异常-将内部消息替换为异常类型名称

在本文中;图书馆专用";是CCD_ 8类型的例外;微软IdentityModel;(库定义了一些(

根据您的用例,您会看到各种参数,这些参数可以与自定义异常一起记录。快速搜索FormatInvariant会产生很多值得您考虑的内容。

同样,根据您使用它的方式,通过查看特定命名空间上的相关LogMessages.cs文件,您可能会更好地了解错误消息是什么。


p.S.:在旁注中,默认ShowPII设置似乎是符合GDPR的

相关内容

  • 没有找到相关文章

最新更新