Бөлісу құралы:


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

Следующее руководство относится к приложению, размещенному на веб-серверах, поддерживает несколько бизнес-сценариев и развертывает на веб-серверах. Приложение имеет требование предоставить защищенные ресурсы, защищенные только пользователям 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. Затем это веб-приложение делегирует пользователю доступ к REST API Azure Карты.

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

    A screenshot showing application registration in Microsoft Entra ID.

  2. Введите имя, выберите тип учетной записи поддержки, укажите URI перенаправления, представляющий URL-адрес, на который идентификатор Microsoft Entra id выдает маркер, который является URL-адресом, в котором размещен элемент управления картой. Дополнительные сведения см. в сценарии идентификатора Microsoft Entra: веб-приложение, которое входит в систему пользователей. Выполните указанные действия из сценария Microsoft Entra.

  3. После завершения регистрации приложения убедитесь, что вход приложения работает для пользователей. После работы входа приложение можно предоставить делегированный доступ к ИНТЕРФЕЙСАм REST API Azure Карты.

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

    A screenshot showing add app API permissions.

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

    A screenshot showing select app API permissions.

  6. Разрешите веб-приложению вызывать интерфейсы REST API Azure Maps, настроив регистрацию приложения с помощью секрета приложения. Подробные инструкции см. в статье Веб-приложение, вызывающее веб-API: регистрация приложения. Секрет требуется для проверки подлинности в Microsoft Entra от имени пользователя. Сертификат или секрет регистрации приложения должен храниться в безопасном хранилище для получения веб-приложения для проверки подлинности в идентификаторе Microsoft Entra.

    • Этот шаг может быть пропущен, если приложение уже имеет регистрацию и секрет приложения Microsoft Entra.

    Совет

    Если приложение размещено в среде Azure, мы рекомендуем использовать управляемые удостоверения для ресурсов Azure и экземпляр Azure Key Vault для доступа к секретам, получив маркер доступа для доступа к секретам или сертификатам Azure Key Vault. Чтобы подключиться к Azure Key Vault для получения секретов, см. руководство по подключению через управляемое удостоверение.

  7. Реализуйте защищенную конечную точку маркера для веб-пакета SDK Azure Maps, чтобы получить доступ к маркеру.

  8. Чтобы настроить управление доступом на основе ролей Azure (Azure RBAC) для пользователей или групп, ознакомьтесь с предоставлением доступа на основе ролей для пользователей.

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

var map = new atlas.Map("map", {
        center: [-122.33, 47.64],
        zoom: 12,
        language: "en-US",
        authOptions: {
            authType: "anonymous",
            clientId: "<insert>",  // azure map account client id
            getToken: function (resolve, reject, map) {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", "/api/token", true); // the url path maps to the token endpoint.
                xhttp.onreadystatechange = function () {
                    if (this.readyState === 4 && this.status === 200) {
                        resolve(this.responseText);
                    } else if (this.status !== 200) {
                        reject(this.responseText);
                    }
                };

                xhttp.send();
            }
        }
    });
    map.events.add("tokenacquired", function () {
        console.log("token acquired");
    });
    map.events.add("error", function (err) {
        console.log(JSON.stringify(err.error));
    });

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