Ключевое слово не поддерживается: ошибка «аутентификация» для интегрированного подключения Azure - PullRequest
1 голос
/ 06 марта 2019

Получение ключевого слова не поддерживается: ошибка «аутентификация» при попытке подключиться к базе данных Azure с помощью параметра «Интегрированная Active Directory» в проекте .NET core 2.1.

Примечание. Я использую ядро ​​EF для подключения источника данных.

1 Ответ

2 голосов
/ 13 марта 2019

К сожалению, ключевое слово authentication еще не полностью поддерживается в .NET Core. Вот проблема , которая обсуждает это.

Но .NET Core 2.2 добавил некоторую поддержку для этого варианта использования, как упомянуто в этом комментарии . Основная идея заключается в том, чтобы получить токен доступа с помощью любым способом (ADAL, REST и т. Д.) И установить для него SqlConnection.AccessToken.

Что касается использования этого с EF Core, есть хорошая дискуссия по этому поводу в этом выпуске github и, в частности, комментарий от mgolois предоставляет простую реализацию решения, которое cbriaball упоминает в теме.

Здесь то же самое для справки

Обратите внимание, что в этом примере используется библиотека Microsoft.Azure.Services.AppAuthentication

// DB Context Class
public class SampleDbContext : DbContext
{
  public SampleDbContext(DbContextOptions<TeamsDbContext> options) : base(options)
  {
    var conn = (System.Data.SqlClient.SqlConnection)this.Database.GetDbConnection();
    conn.AccessToken = (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;
  }
}

// Startup.cs
services.AddDbContext<SampleDbContext>(options =>
{
  options.UseSqlServer(<Connection String>);
});

Строка подключения будет выглядеть примерно так
Server=tcp:<server_name>.database.windows.net,1433;Database=<db_name>;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...