У меня есть встроенное веб-приложение, которое теперь требует хранения учетных данных пользователя для доступа к другой системе.(Как бы мне ни хотелось, чтобы не делал это, к сожалению, у меня нет выбора.)
Мое веб-приложение взаимодействует с контроллером домена Windows через LDAP для проверки учетных записей пользователей.Поэтому, когда пользователь входит в мое приложение, приложение проверяет LDAP, чтобы убедиться, что он является действительным пользователем и его пароль правильный.После проверки подлинности пользовательские разные данные загружаются из базы данных MySQL.
Теперь мне нужно как-то сохранить имя пользователя и пароль для этой другой системы в этой базе данных, и я изучаю наиболее безопасный способ сделать это.it.
Один из методов, которые я рассмотрел, заключался в шифровании учетных данных для этой другой системы с использованием пароля домена пользователя (проверенного LDAP) в качестве ключа шифрования.Таким образом, если кто-то каким-то образом получит базу данных, она будет бесполезна, поскольку каждая запись будет зашифрована с использованием другого (в любом случае, надеюсь) ключа, и этот ключ нигде не будет присутствовать в самом веб-приложении.Проблема этого метода заключается в том, что когда пользователь меняет свой пароль, сохраненные учетные данные для другой системы больше не действительны.Затем мне нужно будет снова запросить другие учетные данные системы.Я не против этого, при условии, что нет другого метода.
Есть мысли?Спасибо за потраченное время.
Редактировать: Еще одна вещь, о которой я только что подумал, это шифрование на основе некоторых других данных, представленных для LDAP.Одно значение, которое выглядит многообещающим (и, вероятно, небезопасным для любого в домене), - это objectGUID
, который, как я полагаю, является GUID для учетной записи.Я мог бы использовать этот ключ шифрования.Легко ли это найти пользователям домена или другим пользователям?
Редактировать # 2: Я обнаружил, что любой пользователь домена может легко найти GUID через LDAP, поэтому я решил, что методиз.Возможно, мне придется шифровать на основе пароля пользователя, если нет других рекомендаций.