Я пытаюсь заставить интегрированную аутентификацию работать между моим приложением и лазурным SQL. Приложение работает на виртуальной машине, которая присоединена к домену Azure AD (доменные службы) в IIS.
Я следовал этому официальному документу MS по настройке аутентификации:
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-aad-authentication-configure (Примечание. Мы не используем управляемые экземпляры для SQL).
1) Административная группа добавлена через портал
2) Пользователь базы данных (также входящий в группу администраторов) был создан в соответствии с документом.
3) Пул приложений IIS также работает от имени того же пользователя.
Попытки подключиться к сайту возвращают эту ошибку:
[AdalException: Integrated Windows authentication supported only in federation flow.]
ADALNativeWrapper.ADALGetAccessToken(String username, IntPtr password, String stsURL, String servicePrincipalName, ValueType correlationId, String clientId, Boolean* fWindowsIntegrated, Int64& fileTime) +829
System.Data.SqlClient.<>c__DisplayClass2_0.<AcquireTokenAsync>b__0() +132
System.Threading.Tasks.Task`1.InnerInvoke() +121
System.Threading.Tasks.Task.Execute() +47
[AggregateException: One or more errors occurred.]
System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +4323177
System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) +12865803
System.Threading.Tasks.Task`1.get_Result() +33
System.Data.SqlClient.<>c__DisplayClass134_1.<GetFedAuthToken>b__0() +39
System.Threading.Tasks.Task`1.InnerInvoke() +121
System.Threading.Tasks.Task.Execute() +47
[AggregateException: One or more errors occurred.]
Наш web.config использует это как строку подключения:
name="LocalSqlServer" connectionString="Server=tcp:XXXXX;Initial Catalog=XXXXX;Persist Security Info=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication='Active Directory Integrated';" />
Мы надеемся, что сможем удалить любое упоминание паролей в виде простого текста в нашем файле web.config, и аутентификация Azure должна обеспечить это.
Буду признателен за любую помощь!
EDIT:
В попытке начать все заново я перенес приложение на другую свежую виртуальную машину Azure. На этот раз процесс изначально привел к этой ошибке:
Unable to load adalsql.dll (Authentication=ActiveDirectoryPassword). Error code: 0x2.
После установки .dll это приводит меня к той же ошибке, которую я выложил выше. Не уверен, что эта первоначальная ошибка может пролить свет на основную проблему.