Защита устройства с ограниченными входными данными с помощью идентификатора Microsoft Entra и AZURE Карты REST API

В этом руководстве описывается, как защитить общедоступные приложения или устройства, которые не могут безопасно хранить секреты или принимать входные данные браузера. Эти типы приложений попадают под категорию Интернета вещей (IoT). К примерам относятся смарт-телевизоры и данные датчиков, которые создают приложения.

Чтобы просмотреть сведения о проверке подлинности учетной записи Azure Maps на портале Azure, сделайте следующее:

  1. Войдите на портал Azure.

  2. Перейдите в меню портала Azure. Выберите Все ресурсы, а затем учетную запись Azure Maps.

  3. В разделе Параметры на панели слева выберите Проверка подлинности.

    Screenshot showing your Azure Maps authentication options in the Azure portal.

Вместе с учетной записью Azure Maps создаются три значения. Они используются для поддержки двух типов проверки подлинности в Azure Maps:

  • Проверка подлинности Microsoft Entra: Client ID представляет учетную запись, используемую для запросов REST API. Значение Client ID должно храниться в конфигурации приложения, а затем его следует извлечь перед тем, как Карты HTTP-запросы Azure, использующие проверку подлинности Microsoft Entra.
  • Проверка подлинности с помощью общего ключа. Primary Key и Secondary Key используются в качестве ключа подписки для проверки подлинности с помощью общего ключа. Принцип проверки подлинности с помощью общего ключа заключается в передаче с каждым запросом в Azure Maps ключей, созданных в учетной записи Azure Maps. Рекомендуется регулярно повторно создавать ключи. Для обслуживания текущего подключения во время повторного создания вам буде доступно два ключа. Когда один ключ повторно создается, вы можете использовать второй. Если вы генерируете новые ключи, вам необходимо обновить данные о ключах для всех приложений, которые используют эту учетную запись. Дополнительные сведения см. в статье Проверка подлинности в Azure Maps.

Создание регистрации приложения в идентификаторе Microsoft Entra

Примечание.

Создайте приложение на основе устройства в идентификаторе Microsoft Entra, чтобы включить вход Microsoft Entra, который предоставляется доступ к AZURE Карты REST API.

  1. В портал Azure в списке служб Azure выберите идентификатор Microsoft Entra id> Регистрация приложений> New.

    A screenshot showing application registration in Microsoft Entra ID.

  2. Введите имя и выберите Учетные записи только в этом каталоге организации в качестве поддерживаемого типа учетной записи. В списке URI перенаправления укажите Общедоступный/собственный клиент (мобильный и классический), а затем добавьте https://login.microsoftonline.com/common/oauth2/nativeclient к значению. Дополнительные сведения см. в классическом приложении Microsoft Entra ID , которое вызывает веб-API: регистрация приложений. Затем зарегистрируйте приложение.

    A screenshot showing the settings used to register an application.

  3. Перейдите к проверке подлинности и включите приложение как общедоступный клиент, чтобы включить проверку подлинности кода устройства с помощью идентификатора Microsoft Entra.

    A screenshot showing the advanced settings used to specify treating the application as a public client.

  4. Чтобы назначить делегированные разрешения API для Azure Maps, перейдите в приложение. Затем выберите Разрешения API>Добавить разрешение. В разделе Интерфейсы API, используемые моей организацией найдите и выберите Azure Maps.

    A screenshot showing where you request API permissions.

  5. Установите флажок Access Azure Maps (Доступ к Azure Maps) и выберите Добавить разрешения.

    A screenshot showing where you specify the app permissions you require.

  6. Настройте управление доступом на основе ролей Azure (Azure RBAC) для пользователей или групп. Дополнительные сведения см. в статье "Предоставление доступа на основе ролей для пользователей в Azure Карты".

  7. Добавьте код для получения потока токенов в приложении. Сведения о реализации см. в статье Поток кода устройства. При получении маркеров обратитесь к область: user_impersonation это было выбрано на предыдущих шагах.

    Совет

    Используйте библиотеку проверки подлинности Майкрософт (MSAL) для получения маркеров доступа. Дополнительные сведения см. в классическом приложении, которое вызывает веб-API: конфигурацию кода в документации active directory.

  8. Создайте 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 Карты.

Чтобы просмотреть доступные определения ролей Azure для Azure Maps, ознакомьтесь с разделом Просмотр встроенных определений ролей Azure Maps.

Подробные инструкции по назначению доступной роли Azure Maps для созданного управляемого удостоверения или субъекта-службы см. в статье Назначение ролей Azure с помощью портала Azure.

Чтобы эффективно управлять приложением и ресурсом Azure Карты большого количества пользователей, ознакомьтесь с группами Microsoft Entra.

Важно!

Чтобы пользователи были разрешены проходить проверку подлинности в приложении, пользователи должны сначала создаваться в идентификаторе Microsoft Entra. Более подробную информацию см. в статье Добавление или удаление пользователей с помощью Microsoft Entra ID.

Чтобы узнать, как эффективно управлять большим каталогом для пользователей, см . идентификатор Microsoft Entra.

Предупреждение

Встроенные определения ролей Azure Maps предоставляют доступ к множеству REST API Azure Maps. Чтобы ограничить доступ к API до минимума, см. сведения о создании определения настраиваемой роли и присвоении ему назначенного системой удостоверения. Это обеспечивает наличие минимального уровня привилегий, необходимых приложению для доступа к Azure Maps.

Следующие шаги

Узнайте о метриках использования API для учетной записи Azure Maps: