Советы по доступу к веб-интерфейсу Microsoft API с помощью токенов, предоставленных входом в другое веб-приложение - PullRequest
0 голосов
/ 12 февраля 2020

Я работаю над инфраструктурой, где 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 токена? Или использовать кэширование некоторых токенов в базе данных?

  • Библиотеки / пакеты для использования.

Не нужно полное решение. Подсказки для частей этого также были бы оценены. Спасибо.

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