Я создаю веб-приложение, которое использует CouchDB в качестве своей базы данных.Как только пользователь создает учетную запись (т. Е. Он создал документ в базе данных _user
), я хочу иметь возможность изменять свои роли для отражения выполненных задач.Например, когда пользователь создает учетную запись, отправляется электронное письмо, чтобы они могли проверить свой адрес электронной почты.После проверки я хочу добавить пользователю verified
роль, чтобы только тогда он мог писать в свою базу данных (через приложение).
Проблема, с которой я сталкиваюсь, заключается в том, что только администратор можетизменить роль пользователя, так что, насколько мне известно, для автоматизации этого в какой-то момент требуются учетные данные администратора, которые будут использоваться процессом автоматизации.Я думал об эмуляции решения в этом потоке и создании службы проверки, которая получает подтверждение по электронной почте и имеет учетные данные администратора для базы данных CouchDB.Затем возникает вопрос, как предоставить учетные данные администратора этой службы.
Этот поток , кажется, указывает, что учетные данные администратора могут храниться в виде открытого текста в файле, доступном для службы проверки (но не для чего-либо еще).Это кажется ... опасным.Но это может быть просто сочетание моей паранойи и отсутствия глубокого понимания безопасности.
Итак, несколько вопросов:
Хранит учетные данные администратора в открытом текстовом файле дляслужба проверки в порядке безопасности?
Есть ли другой способ изменить роль пользователя без необходимости хранения учетных данных администратора?Другими словами, есть ли способ сделать то, что предлагает этот поток , и дать только некоторые права администратора (например, изменение ролей) без фактического использования администратора?
Еслиэто помогает, все веб-приложение, couchDB и служба проверки запускаются в отдельных контейнерах Docker, объединенных в сеть с docker-compose
, и предоставляются только через обратный прокси-сервер NGINX, а также в отдельном контейнере.
Кроме того, по разным причинамрешение, не включающее изменение роли пользователя, не будет работать в моем случае.Я должен иметь возможность отслеживать статус verified
в роли пользователя.