Мы создаем консольное приложение управления (службы REST API) для управления базами данных и серверами (виртуальными машинами и контейнерами). Службы API могут вызываться веб-интерфейсом (например, ReactJS) и удаленными клиентами http (например, SDK).
В силу различных причин нам потребуется реализовать «двухэтапную» аутентификацию с использованием Springзагрузочный MVC и пружинная охрана. Шаги таковы: 1) аутентификация на уровне приложения, 2) и затем аутентификация на уровне DB / OS.
Позвольте мне кратко описать два шага:
Пользователь приложения или клиенты http могут войти в систему, используя имя пользователя / пароль, которые хранятся в репозитории центрального управления. После входа в систему пользователям / клиентам разрешается просматривать информацию об управляемых целях (БД и Серверы). Информация может быть собрана определенными инструментами и хранится в хранилище управления.
Когда пользователь / клиент приложения хочет подключиться к управляемым целям, необходимо установить удаленное соединение икэшируется - следовательно, требуется аутентификация DB / OS.
Мои вопросы:
a. В целом, какое решение / передовой опыт вы рекомендуете для удовлетворения требований?
b. Какие методы аутентификации могут использоваться для проверки подлинности на уровне приложения: обычная проверка подлинности, вход в форму или их сочетание? и как реализовать?
c. На втором этапе (аутентификация на уровне БД / ОС) я понятия не имею, как его реализовать. Пожалуйста, прокомментируйте или укажите мне некоторые документы / фрагменты кода.
d. При наличии нескольких целей нам нужно проверить, можно ли получить существующее соединение из «кэша», прежде чем запрашивать учетные данные для создания нового соединения. Как мы можем проверить и решить, требуется ли аутентификация для каждой цели? Каков наилучший способ кэширования соединения - сеанс http, SecurityContex или другое?
Пожалуйста, помогите. Любые идеи, комментарии, направления очень ценятся! Спасибо.