.NET Core - Создать SqlConnection с AccessToken
Насколько я понимаю, для реализации доступа Azure AD Managed Service Identity к базе данных SQL в Azure мне потребуется создать SqlConnection с полученным токеном. Чтобы добавить этот токен в SqlConnection, в.NET 4.6+ есть свойство AccessToken, чтобы сделать это. .NET Core 2.0 нет.
Есть ли способ обойти это? Внедрение идентификатора управляемой службы Azure AD в базовое приложение на данный момент кажется невозможным, если только я не пойму неправильно.
Любая помощь приветствуется
4 ответа
SqlConnection теперь поддерживает AccessToken в текущем предварительном просмотре SqlClient для.NET Core 2.2: https://www.nuget.org/packages/System.Data.SqlClient/4.6.0-preview3-27014-02.
Обходным путем будет сохранение строки соединения в хранилище ключей Azure, а затем реализация MSI для извлечения ее из хранилища ключей.
Сейчас это июнь 2020 года, и используется предварительная версия 4.NET 5.0. Но по-прежнему нет поддержки подключения на основе AccessToken к SqlConnection в Blazor Asp.NET Core.
В разделе "Строки подключения" в базе данных SQL Azure говорится об использовании "User ID" в строке подключения с Authentication="Active Directory Interactive". Но в.NET EF Core мы получаем ошибку, что идентификатор пользователя не может быть установлен с AD Integrated или AD Interactive. Другой способ - использовать Azure Vault.
Мы предпочитаем использовать динамический идентификатор пользователя (из отображаемого идентификатора AAD) в строке подключения и AccessToken. Будет ли это поддерживаться до финальной версии.NET 5?
Для доступа к Sql с использованием управляемого удостоверения необходимо использовать .NET Framework 4.6 или выше или .NET Core 2.2 или выше.
Вы можете найти полное руководство здесь:
- для .NET 4.6 или более Учебное пособиепоздней версии: безопасное подключение к базе данных SQL Azure из службы приложений с помощью управляемого удостоверения
- Для .Net Core 2.2 или выше Учебное пособие: безопасное подключение к базе данных SQL Azure из службы приложений с помощью управляемого удостоверения