Попытка заставить работать AAD и Azure SQL Authentication - PullRequest
2 голосов
/ 09 мая 2019

Я пытаюсь заставить интегрированную аутентификацию работать между моим приложением и лазурным 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 это приводит меня к той же ошибке, которую я выложил выше. Не уверен, что эта первоначальная ошибка может пролить свет на основную проблему.

1 Ответ

0 голосов
/ 23 мая 2019

Сообщение об ошибке «Встроенная проверка подлинности Windows поддерживается только в федерация поток»

На портале, если вы выберите «Azure Active Directory», а затем выберите «Пользовательские доменные имена»

У вас есть одна строка в списке с выбранным " Primary "?

Если это так, вы можете попробовать добавить новый пользовательский домен, отметить его как федеративный, а затем использовать пользователя из этого домена для встроенной аутентификации.

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