Параметры брандмауэра Azure для надстройки VSTO и SQL

Я написал довольно простую надстройку VSTO Outlook с поддержкой SQL, которую в конечном итоге будут использовать около 20 человек в нескольких офисах компании, в которой я работаю. Все также будут периодически работать из дома.

В руководствах, которые я изучал до сих пор, добавляется «ваш собственный» IP-адрес в правила брандмауэра сервера: https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-get-started-portal-firewall

Как и аналогичный вопрос, с которым я столкнулся во время своего исследования по этому вопросу: Правила брандмауэра SQL Azure на новом портале

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

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

  1. Открытие брандмауэра для всех, но создание надежного пароля, хранящегося в приложении
  2. Создание шага инициализации в приложении для предоставления новым пользователям доступа через брандмауэр.
  3. Создайте прокси-сервер, чтобы все запросы SQL приходили с одного IP-адреса.

В случае (2) создания шага инициализации - настройки брандмауэра сервера azure sql, кажется, изменяет правило брандмауэра - не будет ли это означать, что только один человек может подключиться одновременно?

Надстройка установлена ​​на компьютерах людей? Разве тогда пароль базы данных не будет доступен любому, кто имеет доступ к этому компьютеру? Это звучит немного рискованно.

juunas 17.12.2018 18:09

Надстройка будет установлена ​​как часть их установки MS Outlook. Я не верю, что исходный код будет им виден? Учебники Azure кодируют имя пользователя и пароль базы данных в исходный код. docs.microsoft.com/en-us/azure/sql-database/…

Martin KS 17.12.2018 18:16

В этой статье предлагается приложение "среднего уровня" - подобное моему варианту (3), но не вдаваясь в подробности. Придется ли мне тогда также написать приложение для аутентификации пользователя, или есть простой способ аутентифицировать его с помощью Active Directory или аналогичного? social.msdn.microsoft.com/Forums/sqlserver/en-US/…

Martin KS 17.12.2018 18:21

Какой-нибудь API среднего уровня, вероятно, будет лучшим выбором. Я не могу сказать, какой метод аутентификации рекомендуется использовать.

juunas 17.12.2018 18:34
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
4
61
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Оптимальным вариантом будет:

1а. Открытие брандмауэра для всех, но требующее Аутентификация Azure Active Directory для пользователей.

Вы можете создать небольшое приложение, которое может удаленно обновлять правило брандмауэра Azure SQL с локальным IP-адресом ПК. Для этого вам потребуются возможности Библиотека Microsoft Management Fluent и Группа ресурсов и управление ресурсами (свободно) для Microsoft Azure. Здесь вы найдете образец приложения.

Вам также может потребоваться зарегистрировать приложение как приложение Azure Active Directory, как описано в здесь, и назначить ему соответствующую роль. После этого вы сможете создать файл авторизации для приложения, как описано здесь.

subscription=########-####-####-####-############
client=########-####-####-####-############
tenant=########-####-####-####-############
key=XXXXXXXXXXXXXXXX
managementURI=https\://management.core.windows.net/
baseURL=https\://management.azure.com/
authURL=https\://login.microsoftonline.com/
graphURL=https\://graph.windows.net/

Вы также можете предоставить всем пользователям сценарий PowerShell, который может самостоятельно пройти проверку подлинности в SQL Azure с помощью токена проверки подлинности Azure Active Directory, как описано здесь, а затем обновить правило брандмауэра или создать новое, используя следующий сценарий.

New-AzureRmSqlServerFirewallRule -ResourceGroupName "myResourceGroup" 
      -ServerName $servername -FirewallRuleName "AllowSome" -StartIpAddress "0.0.0.0" -EndIpAddress "0.0.0.0"

Другие вопросы по теме