Можно ли защитить секрет на основе аутентификации Active Directory (или другого единого входа)?

У меня есть приложение, где, в идеале, пользователи будут входить в систему с помощью AD. Мне также нужно хранить ключ шифрования для каждого пользователя, который должен быть зашифрован перед сохранением.

Существует ли какой-либо механизм, который AD, Kerberos или любой из социальных SSO предоставляют, который может дать мне секрет на основе моей аутентификации / авторизации, который я мог бы использовать для шифрования ключа?

В качестве альтернативы любой API похож на DPAPI, но который будет надежно работать на разных устройствах?

Наконец, будет ли считаться плохой практикой хранить ключ шифрования, незашифрованный в AD? Мне кажется, что BitLocker эффективно это делает.

3 ответа

Решение

Лучшее, что я могу найти на данный момент, - это использовать что-то вроде Hashicorp Vault, которое позволяет хранить ключи против пользователей AD и шифровать их, в конечном счете, на основе резидентного ключа памяти.

Вы ищете ключи Kerberos, не так ли?

Hashicorp Vault поддерживает несколько аутентификационных бэкэндов. LDAP является одним из них. Также посмотрите на T-Vault. Он построен поверх Hashicorp Vault, он даст вам приятный интерфейс, а также более высокий уровень абстракции, называемый безопасным. Вы можете создавать сейфы для каждого пользователя в AD. Предоставить доступ к сейфу пользователю или группе ldap.

Вы можете посмотреть краткое демо T-Vault здесь.

Другие вопросы по тегам