Правильный способ проверки прав доступа к удаленному источнику данных в приложении HTTP - PullRequest
0 голосов
/ 06 мая 2019

Я создаю приложение HTTP, которое позволяет пользователю выполнять манипуляции с данными, хранящимися в удаленном источнике данных (например, Teradata или Oracle DB). Подробно, пользователь может предоставить имя базы данных, а затем приложение должно проверить, имеет ли пользователь read право доступа к этой базе данных в СУБД. Проверка таких знаний в СУБД требует имени пользователя и пароля. Приложение имеет аутентификацию, и для пользователя, вероятно, не требуется запрашивать повторный вход в систему. Так как же выполнить эту авторизацию? Видимо, клиентская сессия должна использоваться, но как именно?

Пока я могу придумать два пути:

1) Сохранение учетных данных пользователя в сеансе, чтобы их можно было использовать при необходимости для доступа к СУБД - не уверен, насколько хорошо он соответствует требованиям безопасности. Также я не совсем уверен, на какой стороне приложения они должны храниться - сохраняться / кэшироваться на стороне сервера или сохраняться на стороне клиента и повторно отправляться при каждом запросе к серверу.

2) При аутентификации получение всех доступных имен баз данных из СУБД и сохранение их в сеансе - возможно, гораздо более безопасное, но, похоже, имеет дело с, возможно, гораздо большим объемом информации для сохранения.

...