Какая информация регистрируется IdentityModel, когда ShowPii имеет значение true? - PullRequest
3 голосов
/ 09 июля 2020

IdentityModelEventSource имеет свойство под названием ShowPII, что означает, что личная информация будет добавлена ​​в журналы (в отношении безопасности). Это значение используется, чтобы решить, когда регистрировать некоторые конфиденциальные данные OAuth2.

Я пытаюсь понять, какая личная информация будет регистрироваться:

  • Идентификатор клиента? (он же клиентский ключ, потребительский ключ)
  • Client Secret? (он же Consumer Secret)
  • Json Веб-токены? (также известный как JWT)
  • токены доступа?
  • Refre sh токены?
  • билеты Kerberos?
  • значения PKCE?
  • авторизация Коды?

Я знаю, что он не может получить доступ к именам пользователей и паролям, потому что они обмениваются напрямую только с IDP.

Но мне нужно знать, нужно ли мне найти способ заблокировать мои файлы журналов, потому что они будут содержать данные, которые представляют собой уязвимость системы безопасности.

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Это возможные сообщения журнала 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)));

Если вы проследите путь, вы обнаружите, что encryptingCredentials.Key будет записан, если ShowPII = true, и не будет записан, если ShowPII = false.

Конечно , в зависимости от вашего варианта использования это конкретное сообщение может никогда не появиться в ваших журналах. И не все сообщения так безумно дырявые. Но вы никогда не знаете:

  1. ваш вариант использования может измениться
  2. вы можете ошибиться насчет набора сообщений IdentityModel может выдавать для вашего варианта использования
  3. Код IdentityModel может измениться, и вы можете забыть проверить, безопасен ли набор сообщений

Так что насчет

, если мне нужно чтобы найти способ заблокировать мои файлы журналов

Да, вам определенно нужно.

Или еще лучше - не используйте ShowPII = true в производстве для мониторинга, используйте его только в среде разработки для целей отладки.

1 голос
/ 15 июля 2020

Глядя на источник , кажется, что когда ShowPII включен - он будет делать две вещи:

  1. Заменить все параметры передаются в специфичные для библиотеки c исключения с именами их типов данных
  2. Для все системные исключения - заменить внутреннее сообщение на имя типа исключения

В этом контексте «специфическая библиотека c» является исключением, поскольку относится к типу Exception и его полное имя типа начинается с «Microsoft.IdentityModel.» (библиотека определяет несколько)

В зависимости от вашего варианта использования вы увидите множество параметров, которые можно регистрировать с настраиваемыми исключениями. Быстрый поиск для FormatInvariant дает довольно много на ваше рассмотрение.

Опять же, в зависимости от того, как вы его используете, вы можете лучше понять, что означают сообщения об ошибках, просмотрев соответствующие LogMessages.cs файл в вашем пространстве имен c.

PS: примечание: по умолчанию ShowPII настройка соответствует GDPR

...