Я работаю над инфраструктурой, где Azure занимает центральное место в решении, но мне потребуются предложения или ответы, в частности, о процессе аутентификации, безопасности, о том, что выполнимо или нет, что может быть проблемами и т. Д. c. Я хочу сделать следующее:
Набор встроенных устройств должен получать данные профиля из учетных записей Microsoft. Из-за ограниченной архитектуры эти устройства не будут реализовывать аутентификацию самостоятельно. На них также не может быть отображен браузер для входа в систему пользователей.
Каждое устройство отправляет запросы на веб-интерфейс publi c в Azure, который, в свою очередь, выполняет аутентифицированные вызовы Graph с использованием токенов, хранящихся в таблице. , Затем данные профиля возвращаются обратно на устройство из API.
Токены предоставляются и хранятся в таблице Azure (доступной для чтения через веб-API) через другую веб-страницу (отдельное веб-приложение), где пользователи ранее выполнили вход с учетной записью Microsoft или рабочей / учебной школы и получили доступ к данным профиля. Это означает, что несколько пользователей могли войти в систему и согласиться, поэтому в таблице может быть несколько токенов.
То, в чем я не уверен, - это лучший способ аутентификации, могу ли я просто сохранить refre sh token et c. Или будет ли проблема с этой архитектурой.
Будет ли актуален от имени потока? https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow Я думаю, что на схеме протокола «приложение» будет веб-приложением, «Web API A» будет веб-API, а «Web API B» будет Graph API. Я нашел этот пример, который кэширует токены в базе данных, которую я сейчас просматриваю: https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/2-WebApp-graph-user/2-2-TokenCache
Мне уже удалось войти в систему в веб-приложении. (используя другой пример) и сохраните токен доступа в таблице, используемой совместно с API, и когда я запрашиваю мой API, он использует эти токены доступа для выполнения вызовов в Graph. Это работает, хотя я думаю, что лучше использовать refre sh токены с более длительным сроком действия.
Соответствующие вопросы:
- Должны ли API, получающие запросы, поддерживать вход пользователей, и не веб-приложение?
Как хранить токены в базе данных / Azure, которые будут использоваться проектом api? Достаточно ли хранения refre sh токена? Или использовать кэширование некоторых токенов в базе данных?
Библиотеки / пакеты для использования.
Не нужно полное решение. Подсказки для частей этого также были бы оценены. Спасибо.