Защита одностраничного приложения с помощью входа пользователя

Следующее руководство относится к приложению, размещенном на сервере содержимого или с минимальными зависимостями веб-сервера. Приложение предоставляет защищенные ресурсы, защищенные только пользователям Microsoft Entra. Цель сценария — разрешить веб-приложению проходить проверку подлинности в идентификаторе Microsoft Entra и вызывать Azure Карты REST API от имени пользователя.

Чтобы просмотреть сведения о проверке подлинности учетной записи 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 для входа пользователей. Веб-приложение делегирует доступ пользователей к Azure Maps интерфейсам API-интерфейса RESTFUL.

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

    A screenshot showing application registration in Microsoft Entra ID.

  2. Введите имя, выберите тип учетной записи поддержки, укажите URI перенаправления, представляющий URL-адрес, который идентификатор Microsoft Entra ID выдает маркер и является URL-адресом, в котором размещен элемент управления картой. Подробный пример см. в разделе Azure Карты примеры идентификатора Microsoft Entra ID. Выберите Зарегистрировать.

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

    Screenshot showing a list of APIs my organization uses.

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

    Screenshot showing the request app API permissions screen.

  5. Включение oauth2AllowImplicitFlow. Чтобы включить его, в разделе манифеста регистрации приложения задайте oauth2AllowImplicitFlow для значение true.

  6. Скопируйте идентификатор приложения Microsoft Entra и идентификатор клиента Microsoft Entra из регистрации приложения, который будет использоваться в веб-пакете SDK. Добавьте сведения о регистрации приложения Microsoft Entra и x-ms-client-id учетную запись Azure Map в веб-пакет SDK.

        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js" />
        <script>
            var map = new atlas.Map("map", {
                center: [-122.33, 47.64],
                zoom: 12,
                language: "en-US",
                authOptions: {
                    authType: "aad",
                    clientId: "<insert>",  // azure map account client id
                    aadAppId: "<insert>",  // azure ad app registration id
                    aadTenant: "<insert>", // azure ad tenant id
                    aadInstance: "https://login.microsoftonline.com/"
                }
            });
        </script>   
    
  7. Настройте управление доступом на основе ролей Azure (Azure RBAC) для пользователей или групп. Сведения о включении Azure RBACсм. в следующих разделах.

Предоставление пользователям доступа к 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:

Ознакомьтесь с примерами, в которые показано, как интегрировать идентификатор Microsoft Entra с Azure Карты: