4

Я создал Azure договор аренды и настроен следующим образом:SQL Azure Встроенная проверка подлинности с облачной только Azure Active Directory не удается

Azure AD с:

  • доменное имя простой пользовательский (менее чем 15 символов). DNS проверен и т. Д. Все хорошо.
  • Пользователи и администраторы группы
  • Пользователи в обеих группах
  • VNET и DNS и IP-адреса
  • Enabled Управление устройствами
  • Включенные услуги домена и подключены к VNET

Обратите внимание, что в посылке нет ничего, это все в облаке. Мой физический ноутбук эффективно используется как скачок.

SQL-Azure базы данных и сервер с:

  • правил брандмауэра открыты для всех необходимых входящих соединений
  • Администратор Active Directory, установленных в качестве администраторов группы я создал в Azure AD
  • Пользователи AD, созданные в SQL Azure, используя CREATE USER FROM EXTERNAL PROVIDER;

Я могу подключиться к базе данных SQL Azure из SSMS на своем ноутбуке, используя универсальную аутентификацию Active Directory или аутентификацию пароля Active Directory. Для обоих я получаю вызов за имя пользователя и пароль, как и следовало ожидать.

Цель: Я хочу, чтобы иметь возможность использовать встроенную проверку подлинности, так что может легко течь идентичность от а) машины, б) узле А ASP.NET MVC. Я не пробовал сценарий b да, так что давайте припаркуем это. В сценарии a я сделал следующее.

настроил Azure VM:

  • Стандарт D2 - Windows 10 полностью исправлен
  • Подключен к тому же VNET как домен
  • SQL Management Server Сервер 2016 (SSMS) установлен (последняя и исправлен - 13.0.15700.28)
  • ODBC 13,1 установлен (хотя я думаю, что это не имеет отношения)
  • Адал
  • Microsoft Online Услуги Sign-In Assistant для ИТ-специалистов RTW

Короче говоря, моя полная "окружающая среда" состоит из Azure AD, A SQL Azure БД и клиента VM.

Проблема: Я присоединяюсь к VM моей Azure Active Directory с помощью службы каталогов, выйти и войти в качестве действительного пользователя домена (действительного в AD и SQL Azure с соответствующими логинами и разрешениями). Когда я открываю SSMS, я могу нормально подключиться к Active Directory Universal Authentication или Active Directory Password Authentication, но когда я пытаюсь подключиться к проверке подлинности Active Directory, я получаю ошибку ниже. Это также происходит, если я присоединяюсь к виртуальной машине непосредственно к Azure AD. Мое развертывание - это 100% облако, поэтому федерации нет.

Поэтому у меня есть два вопроса:

  • я упускаю что-то в моей конфигурации или захода на посадку или есть работа вокруг? It may be an existing issue - see here
  • Будет ли эта связь (проходить) работать, если она закодирована в .net 4.6.2 с C# и развернута в облаке? Возможно, с драйвером ODBC 13.1?

Благодаря

===================================

Не удается подключиться к .database.windows.net.

===================================

Ошибка аутентификации пользователя NT Authority \ Анонимный вход в Active Каталог (аутентификация = ActiveDirectoryIntegrated). Код ошибки 0xCAA9001F; state 10 Встроенная проверка подлинности Windows поддерживает только в потоке федерации. (Поставщик .Net SqlClient Data)

------------------------------ Для получения справки нажмите: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476

------------------------------ Имя сервера: .database.windows.net Номер ошибки: 0 Серьезность: 11 Состояние: 0 Процедура: ADALGetAccessToken

------------------------------ Программа Расположение:

в System.Data .SqlClient.SqlInternalConnectionTds..ctor (DbConnectionPoolIdentity identity, SqlConnectionString connectionOpti Дополнения, SqlCredential учетных данных, объект providerInfo, Струнный Новый_пароль, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool бассейн, String маркер доступа, булевы applyTransientFaultHandling) в System.Data.SqlClient.SqlConnectionFactory.CreateConnection (DbConnectionOptions варианты, DbConnectionPoolKey poolKey, объект poolGroupProviderInfo, DbConnectionPool бассейн, DbConnection owningConnection, DbConnectionOptions userOptions) в System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DBConnection owningConnection, DbConnection PoolGroup poolGroup, DbConnectionOptions userOptions) при System.Data.ProviderBase.DbConnectionFactory.TryGetConnection (DbConnection owningConnection, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 повторных попыток, DbConnectionOptions userOptions) при System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection (DbConnection outerConnection, DbConnectionFactory ConnectionFactory, TaskCompletionSource повторных попыток) при System.Data.SqlClient.SqlConnection.TryOpen (TaskCompletionSource`1 повторных попыток) при System.Data.SqlClient.SqlConnection.Open() на Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection (UIConnectionInfo CI, сервер IServerType) в Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()

ответ

3

Есть обновление от Поддержка Azure:

Это не работает, потому что:

  1. Чтобы использовать Active Directory Integrated Authentication лазури Active Directory должна быть федеративным. Это связано с тем, что Kerberos необходим для этого (билет Kerberos TG, который был сгенерирован при входе в систему), но Azure AD не знает Kerberos, отсюда и потребность в ADFS.
  2. Предварительный просмотр доменных служб Azure AD: это позволяет использовать устаревшие функции (NTLM, Kerberos и т. Д.). Но Azure SQL Database не поддерживает старую аутентификацию Windows.

Итак, вы можете добавить 2-3 низкомощных ВМ для достижения AD + ADFS + AAD + AAD-DS, но это определенно не идеальный способ.

Если я получу информацию о планах на будущее, я поделюсь ими здесь.

**

имеют те же проблемы и некоторые открытые билеты. Будет обновлен этот ответ после получения дополнительной информации.

На сегодняшний день поддерживается только федеративная установка, как указано в документе here. Вы должны установить ADFS setup, используя AD Connect.

Это то, что AAD-DS должен предусматривать облачное решение. AAD-DS по-прежнему просматривать ...

+1

Спасибо @ Лин-Арт, я с нетерпением жду обмена обновлений. Знаете ли вы, если AAD-DS все еще находится на картинке для облачного сервиса (веб-приложения), поддерживающего SQL Azure? –

+1

Отлично! WebApp? Хм, я бы не использовал это для веб-приложения. Для пользователя auth используйте AAD B2C, и если вам срочно нужен пользовательский доступ к sql db - вы можете подумать о безопасности на уровне строк, например, здесь: https://github.com/Azure/azure-content/blob/master/articles /app-service-web/web-sites-dotnet-entity-framework-row-level-security.md –

+0

Эта ссылка близка к тому, что мне нужно, но не стартер. Мы вдаваемся в детали, но поток, которым я являюсь, заключается в следующем: пользователь переходит к сторонней онлайн-платформе, auths против федеративного Azure AD. Пользователь подключается из сторонней онлайн-платформы к SQL Azure и запускает запросы. Короче говоря, у меня нет контроля над веб-приложением, и вам нужно будет использовать стороннюю сторону для создания дублированной безопасности. Если идентичность протекала, тогда общая сложность того, что я хочу, значительно уменьшается и намного удобнее обслуживать. То, что я опубликовал в моем вопросе, настолько близко к идеалу, что мне больно начинать работать :) –

-3

Как было указано выше, пожалуйста, открыть Azure билет, связанные с этой проблемой

+0

Я бы, но у меня нет плана поддержки соответствующей подписки, и я не готов заплатить за это, чтобы сообщить Microsoft об их ошибке. Страница поддержки в Azure рекомендует обратиться к сообществу, которое я сделал здесь, а также к [at] AzureSupport, который я также сделал. Существует также эта известная проблема поддержки: https://connect.microsoft.com/SQLServer/feedback/details/3101098/active-directory-integrated-authentication-add-support-for-aad-ds-joined-vms –

 Смежные вопросы

  • Нет связанных вопросов^_^