Я написал довольно простую надстройку 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-адреса и настраивать каждый из них на брандмауэре.
Это будет мое первое приложение, использующее удаленные ресурсы, поэтому я не уверен, что делать дальше с брандмауэром, и поэтому изо всех сил пытаюсь найти руководство. Должна ли я быть:
В случае (2) создания шага инициализации - настройки брандмауэра сервера azure sql, кажется, изменяет правило брандмауэра - не будет ли это означать, что только один человек может подключиться одновременно?
Надстройка будет установлена как часть их установки MS Outlook. Я не верю, что исходный код будет им виден? Учебники Azure кодируют имя пользователя и пароль базы данных в исходный код. docs.microsoft.com/en-us/azure/sql-database/…
В этой статье предлагается приложение "среднего уровня" - подобное моему варианту (3), но не вдаваясь в подробности. Придется ли мне тогда также написать приложение для аутентификации пользователя, или есть простой способ аутентифицировать его с помощью Active Directory или аналогичного? social.msdn.microsoft.com/Forums/sqlserver/en-US/…
Какой-нибудь API среднего уровня, вероятно, будет лучшим выбором. Я не могу сказать, какой метод аутентификации рекомендуется использовать.
Оптимальным вариантом будет:
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"
Надстройка установлена на компьютерах людей? Разве тогда пароль базы данных не будет доступен любому, кто имеет доступ к этому компьютеру? Это звучит немного рискованно.