Я пытаюсь настроить интегрированную проверку подлинности между моим приложением и Azure 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. На этот раз процесс изначально привел к этой ошибке:
Unable to load adalsql.dll (Authentication=ActiveDirectoryPassword). Error code: 0x2.
После установки .dll это приводит меня к той же ошибке, которую я опубликовал выше. Не уверен, может ли эта первоначальная ошибка пролить свет на основную проблему.