Как использовать Azure AD для подключения к Azure SQL в моем веб-приложении? - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу написать инструмент, который использует собственные учетные данные Azure AD пользователей для выполнения запросов к базе данных SQL Azure.Это возможно?Я могу настроить свое собственное приложение для аутентификации, но важно, чтобы пользователи могли вводить запросы произвольной формы и использовать свои собственные учетные данные при выполнении SQL, а не разрешения, связанные с моим приложением.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Да, возможно реализовать сценарий, который вы описали.Помимо очевидной настройки Azure SQL Server и веб-приложения / API, для аутентификации необходимо выделить два основных момента:

Основные моменты аутентификации

  • Из Azure ActiveС точки зрения каталога, ваша регистрация приложения может использовать «делегированные разрешения» для Azure SQL, чтобы приложение могло обращаться к базе данных от имени вошедшего в систему пользователя (вместо использования пользователя SQL из строки подключения или разрешений приложения).
  • После того как вы подтвердили подлинность пользователя в своем веб-приложении с помощью Azure AD и получили токен аутентификации в своем веб-приложении / API, теперь используйте поток OAuth 2.0 On-Behalf-Of , описанный здесь в Microsoft Docs , чтобы убедиться, что ваше веб-приложение / API обращается к базе данных.

Я даю более подробные шаги и ссылки на блог с игровой площадки MS, который делает нечто очень похожее ниже.

Подробные шаги

  1. Включение аутентификации Azure Active Directory для Azure SQL Server
  2. Добавление пользователей Azure Active Directory с соответствующими ролями / разрешениями
  3. Регистрация веб-приложения / API в Azure Active Directory ( Регистрация приложенияс Azure AD )
  4. Для «Необходимых разрешений» вашего Приложения добавьте и выберите

    a.Портал Azure> Azure AD> Регистрация приложений> Регистрация вашего приложения

    enter image description here

    b.Выберите «База данных SQL Azure»

    enter image description here

    c.Выберите «Делегированные разрешения»> «Базы данных SQL Azure и хранилище данных»

    enter image description here

  5. Пользователь аутентифицируется в вашем веб-приложении / API с помощьюAzure AD.Это может быть непосредственно для вашего веб-приложения (которое вызывает базу данных SQL Azure) или через клиентское приложение, которое обращается к вашему веб-API (если у них есть отдельный интерфейс и API. Тогда приложение API выполняет вызовы к базе данных SQL Azure).

  6. Теперь, когда у вашего веб-приложения / API есть токен доступа Azure AD, используйте поток «От имени» для вызова базы данных SQL Azure от имени вошедшего в систему пользователя.Это будет использовать делегированные разрешения от Azure AD, которые мы настроили ранее. Пример кода для потока от имени

Запись блога с более подробной информацией

Это сообщение в блоге отMSFT площадка, которая делает что-то подобное.Есть 3 части к этому.Я делюсь вторым, который является наиболее важным.Вы можете следовать за другими 2, а также по своему усмотрению.

Часть 2. Приложение Azure API для запроса базы данных SQL Azure

0 голосов
/ 12 декабря 2018

Насколько я знаю, C # предоставляет режим ActiveDirectoryInteractive, который можно использовать для подключения к базе данных SQL Azure.Для более подробной информации, пожалуйста, обратитесь к документу .

...