Правила доступа к таблицам Azure - PullRequest
0 голосов
/ 16 марта 2019

Извините за простой вопрос.Я не имел опыта разработки серверных приложений.Недавно я изучаю Azure и создаю простое мобильное приложение, которое подключается к базе данных Azure.Это делает некоторые тривиальные операции над таблицами, такие как добавление элементов и выполнение запросов выбора SQL.Теперь я хочу добавить авторизацию в приложение и ограничить некоторые операции с таблицами в БД на его основе.Каков наилучший способ сделать это?Я думаю, что это хорошая идея написать бэкэнд на сервере Azure с правилами на основе авторизации, но я не узнаю об этом из документации Azure.Например, чего я хочу добиться:

  1. Пользователь мобильного приложения без авторизации ограничен для выполнения каких-либо операций изменения и может выбирать только предварительно определенные столбцы.
  2. Пользователь авторизации может выполнять операции добавления / обновления внекоторые таблицы основаны на информации пользователя (uid / login и т. д.).

Если я создаю правила базы данных на стороне внешнего интерфейса (мобильного приложения), то не составит труда написать другое приложение, которое сможет создавать что-либо с базой данных в обход моего приложения.Не так ли?

1 Ответ

1 голос
/ 16 марта 2019

Если я создаю правила базы данных на стороне внешнего приложения (мобильного приложения), то нетрудно написать другое приложение, которое может сделать что-либо с базой данных в обход моего приложения. Не так ли?

Это очень верно; безопасность не должна быть (просто) во внешнем интерфейсе. Убедитесь, что ваш бэкэнд настроен таким образом, что он проверяет правила доступа каждый раз, когда кто-то пытается что-то сделать в бэкенде.

Теперь, что касается вашего вопроса: пожалуйста, реализуйте API, который подключается к вашей базе данных. С каждым клиентом, напрямую подключающимся к вашей базе данных, вы потеряете весь контроль. Если вы реализуете API спереди, вы можете делать такие вещи, как кэширование и асинхронная обработка, если вам нужно.

При реализации API вы можете сделать методы GET незащищенными, в то время как POST, PUT и DELETE используют (например) токен JWT, полученный из Azure Active Directory. Этот репо и презентация, на которую он ссылается, могут дать вам некоторую ссылку.

...