Защита устройства с ограниченными входными данными с помощью идентификатора Microsoft Entra и REST API Azure Maps
В этом руководстве описывается, как защитить общедоступные приложения или устройства, которые не могут безопасно хранить секреты или принимать входные данные браузера. Эти типы приложений попадают под категорию Интернета вещей (IoT). К примерам относятся смарт-телевизоры и данные датчиков, которые создают приложения.
Чтобы просмотреть сведения о проверке подлинности учетной записи Azure Maps на портале Azure, сделайте следующее:
Войдите на портал Azure.
Перейдите в меню портала Azure. Выберите Все ресурсы, а затем учетную запись Azure Maps.
В разделе Параметры на панели слева выберите Проверка подлинности.
Вместе с учетной записью Azure Maps создаются три значения. Они используются для поддержки двух типов проверки подлинности в Azure Maps:
- Проверка подлинности Microsoft Entra:
Client ID
представляет учетную запись, используемую для запросов REST API. ЗначениеClient ID
должно храниться в конфигурации приложения, а затем его необходимо извлечь перед выполнением HTTP-запросов Azure Maps, использующих проверку подлинности Microsoft Entra. - Проверка подлинности с помощью общего ключа.
Primary Key
иSecondary Key
используются в качестве ключа подписки для проверки подлинности с помощью общего ключа. Принцип проверки подлинности с помощью общего ключа заключается в передаче с каждым запросом в Azure Maps ключей, созданных в учетной записи Azure Maps. Рекомендуется регулярно повторно создавать ключи. Для обслуживания текущего подключения во время повторного создания вам буде доступно два ключа. Когда один ключ повторно создается, вы можете использовать второй. Если вы генерируете новые ключи, вам необходимо обновить данные о ключах для всех приложений, которые используют эту учетную запись. Дополнительные сведения см. в статье Проверка подлинности в Azure Maps.
Создание регистрации приложения в идентификаторе Microsoft Entra
Примечание.
- Требуется ознакомление со сценарием: классическое приложение, вызывающее веб-API
- В следующем сценарии используется поток кода устройства, не предполагающий получение маркера с помощью веб-браузера.
Создайте приложение на основе устройств в идентификаторе Microsoft Entra, чтобы включить вход Microsoft Entra, который предоставляется доступ к REST API Azure Maps.
В портал Azure в списке служб Azure выберите идентификатор Microsoft Entra id> Регистрация приложений> New.
Введите имя и выберите Учетные записи только в этом каталоге организации в качестве поддерживаемого типа учетной записи. В списке URI перенаправления укажите Общедоступный/собственный клиент (мобильный и классический), а затем добавьте
https://login.microsoftonline.com/common/oauth2/nativeclient
к значению. Дополнительные сведения см. в классическом приложении Microsoft Entra ID , которое вызывает веб-API: регистрация приложений. Затем зарегистрируйте приложение.Перейдите к проверке подлинности и включите приложение как общедоступный клиент, чтобы включить проверку подлинности кода устройства с помощью идентификатора Microsoft Entra.
Чтобы назначить делегированные разрешения API для Azure Maps, перейдите в приложение. Затем выберите Разрешения API>Добавить разрешение. В разделе Интерфейсы API, используемые моей организацией найдите и выберите Azure Maps.
Установите флажок Access Azure Maps (Доступ к Azure Maps) и выберите Добавить разрешения.
Настройте управление доступом на основе ролей Azure (Azure RBAC) для пользователей или групп. Дополнительные сведения см. в статье Предоставление доступа на основе ролей для пользователей в Azure Maps.
Добавьте код для получения потока токенов в приложении. Сведения о реализации см. в статье Поток кода устройства. При получении маркеров обратитесь к области,
user_impersonation
выбранной на предыдущих шагах.Совет
Используйте библиотеку проверки подлинности Майкрософт (MSAL) для получения маркеров доступа. Дополнительные сведения см. в классическом приложении, которое вызывает веб-API: конфигурацию кода в документации active directory.
Создайте HTTP-запрос с полученным маркером из идентификатора Microsoft Entra ID и отправьте запрос с допустимым HTTP-клиентом.
Образец запроса
Вот примерный текст запроса на отправку простой геозоны, которая представлена в виде круглого геометрического объекта с помощью координат центральной точки и радиуса.
POST /mapData?api-version=2.0&dataFormat=geojson
Host: us.atlas.microsoft.com
x-ms-client-id: 30d7cc….9f55
Authorization: Bearer eyJ0e….HNIVN
Следующий пример текста запроса находится в GeoJSON:
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.126986, 47.639754]
},
"properties": {
"geometryId": "001",
"radius": 500
}
}]
}
Пример заголовка ответа
Operation-Location: https://us.atlas.microsoft.com/mapData/operations/{udid}?api-version=2.0
Access-Control-Expose-Headers: Operation-Location
Предоставление пользователям доступа к Azure Maps на основе ролей
Вы можете предоставить Azure управление доступом на основе ролей (Azure RBAC), назначив группу Microsoft Entra или субъект безопасности одному или нескольким определениям ролей Azure Maps.
Чтобы просмотреть доступные определения ролей Azure для Azure Maps, ознакомьтесь с разделом Просмотр встроенных определений ролей Azure Maps.
Подробные инструкции по назначению доступной роли Azure Maps для созданного управляемого удостоверения или субъекта-службы см. в статье Назначение ролей Azure с помощью портала Azure.
Чтобы эффективно управлять приложением Azure Maps и доступом к ресурсам большого количества пользователей, ознакомьтесь с группами Microsoft Entra.
Внимание
Чтобы пользователи были разрешены проходить проверку подлинности в приложении, пользователи должны сначала создаваться в идентификаторе Microsoft Entra. Более подробную информацию см. в статье Добавление или удаление пользователей с помощью Microsoft Entra ID.
Чтобы узнать, как эффективно управлять большим каталогом для пользователей, см . идентификатор Microsoft Entra.
Предупреждение
Встроенные определения ролей Azure Maps предоставляют доступ к множеству REST API Azure Maps. Чтобы ограничить доступ к API до минимума, см. сведения о создании определения настраиваемой роли и присвоении ему назначенного системой удостоверения. Это обеспечивает наличие минимального уровня привилегий, необходимых приложению для доступа к Azure Maps.
Следующие шаги
Узнайте о метриках использования API для учетной записи Azure Maps: