Да, возможно реализовать сценарий, который вы описали.Помимо очевидной настройки Azure SQL Server и веб-приложения / API, для аутентификации необходимо выделить два основных момента:
Основные моменты аутентификации
- Из Azure ActiveС точки зрения каталога, ваша регистрация приложения может использовать «делегированные разрешения» для Azure SQL, чтобы приложение могло обращаться к базе данных от имени вошедшего в систему пользователя (вместо использования пользователя SQL из строки подключения или разрешений приложения).
- После того как вы подтвердили подлинность пользователя в своем веб-приложении с помощью Azure AD и получили токен аутентификации в своем веб-приложении / API, теперь используйте поток OAuth 2.0 On-Behalf-Of , описанный здесь в Microsoft Docs , чтобы убедиться, что ваше веб-приложение / API обращается к базе данных.
Я даю более подробные шаги и ссылки на блог с игровой площадки MS, который делает нечто очень похожее ниже.
Подробные шаги
- Включение аутентификации Azure Active Directory для Azure SQL Server
- Добавление пользователей Azure Active Directory с соответствующими ролями / разрешениями
- Регистрация веб-приложения / API в Azure Active Directory ( Регистрация приложенияс Azure AD )
Для «Необходимых разрешений» вашего Приложения добавьте и выберите
a.Портал Azure> Azure AD> Регистрация приложений> Регистрация вашего приложения
b.Выберите «База данных SQL Azure»
c.Выберите «Делегированные разрешения»> «Базы данных SQL Azure и хранилище данных»
Пользователь аутентифицируется в вашем веб-приложении / API с помощьюAzure AD.Это может быть непосредственно для вашего веб-приложения (которое вызывает базу данных SQL Azure) или через клиентское приложение, которое обращается к вашему веб-API (если у них есть отдельный интерфейс и API. Тогда приложение API выполняет вызовы к базе данных SQL Azure).
Теперь, когда у вашего веб-приложения / API есть токен доступа Azure AD, используйте поток «От имени» для вызова базы данных SQL Azure от имени вошедшего в систему пользователя.Это будет использовать делегированные разрешения от Azure AD, которые мы настроили ранее. Пример кода для потока от имени
Запись блога с более подробной информацией
Это сообщение в блоге отMSFT площадка, которая делает что-то подобное.Есть 3 части к этому.Я делюсь вторым, который является наиболее важным.Вы можете следовать за другими 2, а также по своему усмотрению.
Часть 2. Приложение Azure API для запроса базы данных SQL Azure