Перенос приложения .NET для использования бессерверных подключений с База данных SQL Azure
Применимо к: База данных SQL Azure
Запросы приложений к База данных SQL Azure должны проходить проверку подлинности. Хотя существует несколько вариантов проверки подлинности в База данных SQL Azure, вы должны по возможности определить приоритеты подключений без пароля в приложениях. Традиционные методы проверки подлинности, использующие пароли или секретные ключи, создают риски безопасности и осложнения. Ознакомьтесь с бессерверными подключениями для центра служб Azure, чтобы узнать больше о преимуществах перехода на бессерверные подключения. В следующем руководстве объясняется, как перенести существующее приложение для подключения к База данных SQL Azure использовать бессерверные подключения вместо решения имени пользователя и пароля.
Настройка База данных SQL Azure
Подключения без пароля используют проверку подлинности Microsoft Entra для подключения к службам Azure, включая База данных SQL Azure. Проверка подлинности Microsoft Entra позволяет управлять удостоверениями в центральном расположении, чтобы упростить управление разрешениями. Дополнительные сведения о настройке проверки подлинности Microsoft Entra для База данных SQL Azure:
В этом руководстве по миграции убедитесь, что администратор Microsoft Entra назначен вашему База данных SQL Azure.
Перейдите на страницу Microsoft Entra логического сервера.
Выберите "Задать администратора", чтобы открыть всплывающее меню идентификатора Microsoft Entra.
В всплывающем меню идентификатора Microsoft Entra id найдите пользователя, которого вы хотите назначить администратором.
Выберите пользователя и нажмите кнопку "Выбрать".
Настройка локальной среды разработки.
Бессерверные подключения можно настроить для работы как для локальных, так и для размещенных сред Azure. В этом разделе описано, как применить конфигурации, чтобы разрешить отдельным пользователям проходить проверку подлинности в База данных SQL Azure для локальной разработки.
Вход в Azure
Для локальной разработки убедитесь, что вы вошли с той же учетной записью Azure AD, которую вы хотите использовать для доступа к База данных SQL Azure. Вы можете пройти проверку подлинности с помощью популярных средств разработки, таких как Azure CLI или Azure PowerShell. Средства разработки, с помощью которых можно пройти проверку подлинности на разных языках.
Войдите в Azure с помощью Azure CLI, выполнив следующую команду:
az login
Создание пользователя базы данных и назначение ролей
Создайте пользователя в База данных SQL Azure. Пользователь должен соответствовать учетной записи Azure, которая использовалась для локального входа с помощью таких средств разработки, как Visual Studio или IntelliJ.
В портал Azure перейдите к базе данных SQL и выберите редактор запросов (предварительная версия).
Нажмите кнопку "Продолжить" в
<your-username>
правой части экрана, чтобы войти в базу данных с помощью учетной записи.В представлении редактора запросов выполните следующие команды T-SQL:
CREATE USER [user@domain] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user@domain]; ALTER ROLE db_datawriter ADD MEMBER [user@domain]; ALTER ROLE db_ddladmin ADD MEMBER [user@domain]; GO
При выполнении этих команд роль участника базы данных SQL назначается указанной учетной записи. Эта роль позволяет удостоверению считывать, записывать и изменять данные и схему базы данных. Дополнительные сведения о назначенных ролях см. в разделе "Предопределенная база данных".
Обновление конфигурации локального подключения
Существующий код приложения, который подключается к База данных SQL Azure с помощью Microsoft.Data.SqlClient
библиотеки или Entity Framework Core, будет продолжать работать с бессерверными подключениями. Однако необходимо обновить базу данных строка подключения, чтобы использовать формат без пароля. Например, следующий код работает как с проверкой подлинности SQL, так и с бессерверными подключениями:
string connectionString = app.Configuration.GetConnectionString("AZURE_SQL_CONNECTIONSTRING")!;
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand("SELECT * FROM Persons", conn);
using SqlDataReader reader = command.ExecuteReader();
Чтобы обновить указанный строка подключения (AZURE_SQL_CONNECTIONSTRING
) для использования формата без пароля строка подключения:
Найдите строка подключения. Для локальной разработки с приложениями .NET это обычно хранится в одном из следующих расположений:
appsettings.json
Файл конфигурации проекта.launchsettings.json
Файл конфигурации для проектов Visual Studio.- Переменные локальной системы или среды контейнера.
Замените значение строка подключения следующим форматом без пароля.
<database-server-name>
<database-name>
Обновите заполнители с собственными значениями:Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication="Active Directory Default";
Тестирование приложения
Запустите приложение локально и убедитесь, что подключения к База данных SQL Azure работают должным образом. Помните, что для изменения пользователей и ролей Azure может потребоваться несколько минут. Теперь приложение настроено на локальное выполнение без необходимости управлять секретами в самом приложении.
Настройка среды размещения Azure
После локального использования бессерверных подключений приложение может пройти проверку подлинности в База данных SQL Azure после развертывания в Azure. В следующих разделах объясняется, как настроить развернутое приложение для подключения к База данных SQL Azure с помощью управляемого удостоверения. Управляемые удостоверения предоставляют автоматическое управляемое удостоверение в идентификаторе Microsoft Entra (прежнее название — Azure Active Directory) для приложений, используемых при подключении к ресурсам, поддерживающим проверку подлинности Microsoft Entra. Дополнительные сведения об управляемых удостоверениях:
Создание управляемого удостоверения
Создайте управляемое удостоверение, назначаемое пользователем, с помощью портал Azure или Azure CLI. Приложение использует удостоверение для проверки подлинности в других службах.
- В верхней части портал Azure найдите управляемые удостоверения. Выберите результат управляемых удостоверений.
- Нажмите кнопку " + Создать " в верхней части страницы обзора управляемых удостоверений.
- На вкладке "Основные сведения" введите следующие значения:
- Подписка: выберите нужную подписку.
- Группа ресурсов: выберите нужную группу ресурсов.
- Регион: выберите ближайший регион.
- Имя: введите распознаваемое имя удостоверения, например MigrationIdentity.
- В нижней части страницы выберите Review + create (Проверить и создать).
- По завершении проверки нажмите кнопку "Создать". Azure создает новое удостоверение, назначаемое пользователем.
После создания ресурса выберите "Перейти к ресурсу ", чтобы просмотреть сведения об управляемом удостоверении.
Связывание управляемого удостоверения с веб-приложением
Настройте веб-приложение для использования созданного управляемого удостоверения, назначаемого пользователем.
Выполните следующие действия в портал Azure, чтобы связать управляемое удостоверение, назначаемое пользователем, с приложением. Эти же действия применяются к следующим службам Azure:
- Azure Spring Apps
- Приложения-контейнеры Azure
- Виртуальные машины Azure
- Служба Azure Kubernetes
- Перейдите на страницу обзора веб-приложения.
Выберите удостоверение в области навигации слева.
На странице "Удостоверение" перейдите на вкладку "Назначаемый пользователем".
Нажмите кнопку +Добавить, чтобы открыть всплывающее окно добавления управляемого удостоверения, назначаемого пользователем.
Выберите подписку, используемую ранее для создания удостоверения.
Найдите идентификатор migrationIdentity по имени и выберите его из результатов поиска.
Нажмите кнопку "Добавить ", чтобы связать удостоверение с приложением.
Создание пользователя базы данных для удостоверения и назначение ролей
Создайте пользователя базы данных SQL, который сопоставляется с управляемым удостоверением, назначенным пользователем. Назначьте пользователям необходимые роли SQL, чтобы разрешить приложению читать, записывать и изменять данные и схему базы данных.
В портал Azure перейдите к базе данных SQL и выберите редактор запросов (предварительная версия).
Нажмите кнопку "Продолжить" в
<username>
правой части экрана, чтобы войти в базу данных с помощью учетной записи.В представлении редактора запросов выполните следующие команды T-SQL:
CREATE USER [user-assigned-identity-name] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_datawriter ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_ddladmin ADD MEMBER [user-assigned-identity-name]; GO
При выполнении этих команд роль участника базы данных SQL назначается управляемому удостоверению, назначаемого пользователем. Эта роль позволяет удостоверению считывать, записывать и изменять данные и схему базы данных.
Внимание
Используйте осторожность при назначении ролей пользователей базы данных в рабочих средах предприятия. В этих сценариях приложение не должно выполнять все операции с использованием одного удостоверения с повышенными привилегиями. Попробуйте реализовать принцип наименьшей привилегии, настроив несколько удостоверений с определенными разрешениями для определенных задач.
Дополнительные сведения о настройке ролей базы данных и безопасности см. в следующих ресурсах:
Обновление строки подключения
Обновите конфигурацию приложения Azure, чтобы использовать формат без пароля строка подключения. Строки подключения обычно хранятся в виде переменных среды в среде размещения приложений. Следующие инструкции сосредоточены на Служба приложений, но другие службы размещения Azure предоставляют аналогичные конфигурации.
Перейдите на страницу конфигурации экземпляра Служба приложений и найдите База данных SQL Azure строка подключения.
Щелкните значок редактирования и обновите значение строка подключения, чтобы соответствовать следующему формату. Измените
<database-server-name>
<database-name>
заполнители с помощью значений собственной службы.Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication="Active Directory Default";
Сохраните изменения и перезапустите приложение, если это не делается автоматически.
Тестирование приложения
Проверьте приложение, чтобы убедиться, что все еще работает. Для распространения всех изменений через среду Azure может потребоваться несколько минут.
Следующие шаги
Из этого учебника вы узнали, как выполнить переход приложения на подключение без пароля.
Дополнительные сведения о понятиях, описанных в этой статье, см. в следующих ресурсах: