.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 или выше.

Вы можете найти полное руководство здесь:

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