Я новичок в веб-разработке, поэтому вопрос может быть тривиальным.
У меня есть несколько физических устройств, которые будут передавать влажность (и другие вещи) на Azure Cosmos DB. Я хочу, чтобы пользователи могли только читать свои устройства (через график в веб-приложении). Все устройства заканчиваются одной коллекцией.
Я настроил систему в Azure следующим образом:
Устройство -> Azure IoT-Hub -> Azure функции -> Azure Cosmos DB.
Веб-приложение использует Azure B2 C, чтобы пользователи могли войти в систему, но как мне "назначить" устройство- Идентификатор пользователя? Я прочитал, что можно создавать токены доступа с указанным c доступом к определенным ключам разделов, но как мне сохранить информацию с разрешениями доступа для каждого пользователя? Нужна ли мне новая база данных для хранения только этой информации?
Вначале хорошо, если я должен предоставить разрешения вручную.
Общая информация:
- Данные в Azure cosmos db используют идентификатор устройства в качестве ключа раздела.
- У пользователей может быть несколько устройств.
- Веб-приложение работает ASP . NET core (я новичок здесь).
- Для доступа к веб-приложению требуется вход в систему.
- Я пишу код в Visual Studio 2019 и использовал пример со встроенной авторизацией.
Спасибо за помощь.
ПРИМЕЧАНИЕ: это может быть слишком много, чтобы спросить, но общее объяснение вместе с примером кода было бы идеально для меня :)
ОБНОВЛЕНИЕ: Мне удалось получить электронную почту зарегистрированного у пользователя:
@using System.Security.Claims; // for using ClaimsIdentity
// Get user information
var userEmailAddress = ((ClaimsIdentity)User.Identity).FindFirst("emails").Value;
Моя первоначальная идея - создать базу данных, содержащую: «Электронная почта» и «Доступные устройства». Я предполагаю, что это должна быть отдельная база данных, так как мне нужен параметр Time-To-Live в cosmos db.