Можно ли защитить секрет на основе аутентификации Active Directory (или другого единого входа)?
У меня есть приложение, где, в идеале, пользователи будут входить в систему с помощью AD. Мне также нужно хранить ключ шифрования для каждого пользователя, который должен быть зашифрован перед сохранением.
Существует ли какой-либо механизм, который AD, Kerberos или любой из социальных SSO предоставляют, который может дать мне секрет на основе моей аутентификации / авторизации, который я мог бы использовать для шифрования ключа?
В качестве альтернативы любой API похож на DPAPI, но который будет надежно работать на разных устройствах?
Наконец, будет ли считаться плохой практикой хранить ключ шифрования, незашифрованный в AD? Мне кажется, что BitLocker эффективно это делает.
3 ответа
Лучшее, что я могу найти на данный момент, - это использовать что-то вроде Hashicorp Vault, которое позволяет хранить ключи против пользователей AD и шифровать их, в конечном счете, на основе резидентного ключа памяти.
Hashicorp Vault поддерживает несколько аутентификационных бэкэндов. LDAP является одним из них. Также посмотрите на T-Vault. Он построен поверх Hashicorp Vault, он даст вам приятный интерфейс, а также более высокий уровень абстракции, называемый безопасным. Вы можете создавать сейфы для каждого пользователя в AD. Предоставить доступ к сейфу пользователю или группе ldap.
Вы можете посмотреть краткое демо T-Vault здесь.