Поделиться через


Защита управляющей программы

В этой статье описывается, как размещать приложения управляющих программ в доверенной и защищенной среде Microsoft Azure Maps.

Вот несколько примеров приложений управляющих программ:

  • веб-задания Azure;
  • Приложение-функция Azure
  • Службы Windows
  • надежная служба, выполняемая в фоновом режиме.

Просмотр сведений о проверке подлинности в Azure Maps

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

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

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

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

    Снимок экрана: параметры проверки подлинности Azure Maps в портал Azure.

Вместе с учетной записью 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 и управление доступом на основе ролей Azure (Azure RBAC). Общие сведения о концепциях Microsoft Entra см. в статье "Проверка подлинности с помощью Azure Maps".

Сценарий. Проверка подлинности на основе общего ключа, размещенного в Azure Key Vault

Приложения, которые используют проверку подлинности на основе общего ключа, должны размещать свои ключи в защищенном хранилище. В этом сценарии описано, как безопасно хранить ключ приложения в виде секрета в Azure Key Vault. Вместо того чтобы размещать общий ключ в конфигурации приложения, его можно получать из секрета Azure Key Vault. Чтобы упростить повторное создание ключей, рекомендуется использовать их поочередно. Тогда приложения смогут обновлять неиспользуемый ключ и развертывать его в Azure Key Vault, не нарушая действующие подключения, основанные на основном ключе. Сведения о настройке Azure Key Vault см. в статье Руководство для разработчиков Azure Key Vault.

Внимание

Этот сценарий косвенно обращается к идентификатору Microsoft Entra через Azure Key Vault. Однако мы рекомендуем использовать проверку подлинности Microsoft Entra напрямую. Использование идентификатора Microsoft Entra напрямую позволяет избежать дополнительных требований к сложности и эксплуатации при использовании проверки подлинности общего ключа и настройке Key Vault.

Процесс настройки включает следующие шаги.

  1. Создайте хранилище Azure Key Vault.
  2. Создайте субъект-службу Microsoft Entra, создав регистрацию приложения или управляемое удостоверение. Созданный таким образом субъект будет отвечать за доступ к Azure Key Vault.
  3. Предоставьте субъекту-службе разрешение get на доступ к секретам Azure Key. Сведения о настройке разрешений см. в статье Назначение политики доступа Key Vault с помощью портала Microsoft Azure.
  4. Временно предоставьте себе как разработчику разрешение set на доступ к секретам.
  5. Задайте общий ключ в разделе секретов Key Vault и укажите ссылку на идентификатор секрета в конфигурации управляющей программы.
  6. Удалите разрешение set для этого секрета.
  7. Чтобы получить секрет общего ключа из Azure Key Vault, реализуйте проверку подлинности Microsoft Entra в приложении управляющей программы.
  8. Создайте запрос к REST API для Azure Maps с использованием общего ключа. Теперь управляющая программа сможет получать общий ключ из настроенного хранилища Key Vault.

Совет

Если приложение размещается в среде Azure, мы рекомендуем применять управляемое удостоверение, чтобы снизить стоимость и сложность решения, обходясь без управления секретами для проверки подлинности. Сведения о настройке управляемого удостоверения см. в статье Использование управляемого удостоверения для подключения Key Vault к веб-приложению Azure (.NET).

Сценарий: управление доступом на основе ролей Microsoft Entra

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

Совет

Чтобы получить преимущества, характерные для компонентов управляемого удостоверения, рекомендуем разместить приложение на виртуальных машинах Azure, в масштабируемых наборах виртуальных машин или Службе приложений Azure.

Размещение управляющей программы на ресурсах Azure

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

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

Вот некоторые преимущества управляемого удостоверения:

  • Проверка подлинности с шифрованием открытого ключа с помощью сертификата X509, управляемого системой Azure.
  • Безопасность Microsoft Entra с сертификатами X509 вместо секретов клиента.
  • Azure обновляет все сертификаты, связанные с ресурсом "Управляемое удостоверение", и управляет ими.
  • Более простое операционное управление учетными данными благодаря тому, что управляемое удостоверение избавляет от необходимости настраивать Azure Key Vault или другую службу защищенного хранилища секретов.

Размещение управляющей программы на ресурсах вне Azure

Управляемые удостоверения доступны только при запуске в среде Azure. Таким образом, необходимо настроить субъект-службу с помощью регистрации приложения Microsoft Entra для приложения управляющей программы.

Создание регистрации приложения

Если вы уже создали регистрацию приложения, перейдите к разделу "Назначение делегированных разрешений API".

Чтобы создать регистрацию приложения, выполните следующие действия.

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

  2. Выберите Microsoft Entra ID.

  3. В разделе Управление в области слева выберите Регистрация приложений.

  4. Щелкните вкладку + Новая регистрация.

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

  5. Введите значение в разделе Имя и выберите поддерживаемый тип учетной записи.

    Создание регистрации приложения.

  6. Выберите Зарегистрировать.

Назначение делегированных разрешений API

Чтобы назначить делегированные разрешения API для Azure Maps, сделайте следующее.

  1. Войдите на портал Azure, если вы еще этого не сделали.

  2. Выберите Microsoft Entra ID.

  3. В разделе Управление в области слева выберите Регистрация приложений.

  4. Выберите приложение.

    Выбор элемента

  5. В разделе Управление в области слева выберите Разрешения API.

  6. Выберите Добавить разрешение.

    Добавление разрешения приложения.

  7. Щелкните вкладку API, используемые моей организацией.

  8. В поле поиска введите Azure Maps.

  9. Выберите Azure Maps.

    Запрос разрешения приложения.

  10. Установите флажок Доступ к Azure Maps.

  11. Выберите Добавить разрешения.

    Выбор разрешений API для приложения

Создание секрета клиента или настройка сертификата

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

  • Отправьте сертификат открытого ключа.
  • Создайте секрет клиента.
Отправка сертификата открытого ключа

Чтобы отправить сертификат открытого ключа, сделайте следующее.

  1. В разделе Управление в области слева выберите Сертификаты и секреты.

  2. Выберите Отправить сертификат. Отправка сертификата.

  3. Щелкните значок файла справа от текстового поля.

  4. Выберите файл .crt, .cer или .pem и щелкните Добавить.

    Отправка файла сертификата.

Создание секрета клиента

Чтобы создать секрет клиента, сделайте следующее.

  1. В разделе Управление в области слева выберите Сертификаты и секреты.

  2. Выберите + Создать секрет клиента.

    Создать секрет клиента.

  3. Введите описание для секрета клиента.

  4. Выберите Добавить.

    Добавление секрета клиента.

  5. Скопируйте секрет и сохраните его в защищенной службе, например в Azure Key Vault. Кроме того, используйте секрет в маркере запроса с разделом "Управляемое удостоверение " этой статьи.

    Копирование секрета клиента.

    Внимание

    Чтобы безопасно сохранить сертификат или секрет, воспользуйтесь руководством для разработчиков Azure Key Vault. Этот секрет будет использоваться для получения маркеров из идентификатора Microsoft Entra.

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

Запрос маркера с управляемым удостоверением

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

Маркер запроса с регистрацией приложения

После регистрации приложения и связывания его с Azure Maps следует запросить маркер доступа.

Чтобы получить маркер доступа, сделайте следующее.

  1. Войдите на портал Azure, если вы еще этого не сделали.

  2. Выберите Microsoft Entra ID.

  3. В разделе Управление в области слева выберите Регистрация приложений.

  4. Выберите приложение.

  5. Вы увидите страницу обзора. Скопируйте идентификаторы приложения (клиента) и каталога (арендатора).

    Копирование параметров маркера.

В этой статье используется приложение бруно для создания запроса маркера, но вы можете использовать другую среду разработки API.

  1. Откройте приложение бруно, выберите NEW REQUEST , чтобы создать запрос.

  2. В окне NEW REQUEST задайте для типа HTTP. Введите имя запроса, например запрос токена POST.

  3. Выберите метод GET HTTP в раскрывающемся списке URL-адресов и введите следующий URL-адрес:

    https://login.microsoftonline.com/{Tenant-ID}/oauth2/v2.0/token?response_type=token&grant_type=client_credentials&client_id={Client-ID}&client_secret={Client-Secret}&scope=https://atlas.microsoft.com/.default
    

    Примечание.

    Замена:

    • {Tenant-ID} с идентификатором каталога (клиента)
    • {Client-ID} с идентификатором приложения (клиента)
    • {Client-Secret} с секретом клиента.
  4. Нажмите кнопку запуска

Вы увидите приведенный ниже ответ в формате JSON.

{
"token_type": "Bearer",
"expires_in": 86399,
"ext_expires_in": 86399,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFq..."
}

Дополнительные сведения о потоке проверки подлинности см. в статье Платформа удостоверений Майкрософт и поток учетных данных клиента OAuth 2.0.

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

Более подробные примеры см. в этой статье:

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

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