Защита ресурсов сети доставки содержимого Azure с помощью аутентификации на основе маркеров

Внимание

Это функция Azure CDN Premium только из Edgio, чтобы настроить правила в Azure CDN от Майкрософт, используйте обработчик правил "Стандартный". Дополнительные правила недоступны для Azure CDN от Akamai. Полное сравнение возможностей CDN см. в статье Характеристики продукта Azure CDN.

Обзор

Проверка подлинности маркеров — это механизм, позволяющий предотвратить обслуживание ресурсов для несанкционированных клиентов в сети доставки содержимого Azure. Обычно аутентификация на основе маркеров применяется во избежание создания активных ссылок на содержимое. В этом случае другой сайт (например, доска сообщений) использует ваши ресурсы без разрешения. Горячее связывание может повлиять на затраты на доставку содержимого. При включении проверки подлинности маркера в сети доставки содержимого запросы проходят проверку подлинности по сетевому пограничному серверу доставки содержимого, прежде чем сеть доставки содержимого доставляет содержимое.

Как это работает

Проверка подлинности маркера проверяет, что запросы создаются доверенным сайтом, требуя, чтобы запросы содержали значение маркера, содержащее закодированные сведения о запросе. Содержимое передается инициатору запроса, только если сведения соответствуют требованиям. В противном случае запросы отклоняются. Эти требования можно настроить, используя один или несколько следующих параметров.

  • Страна или регион: разрешить или запретить запросы, исходящие из стран или регионов, указанных в коде страны или региона.
  • "URL-адрес": разрешение только тех запросов, которые соответствуют указанному ресурсу или пути.
  • "Узел". Разрешение или отклонение запросов, в заголовке которых используются указанные узлы.
  • "Источник ссылки". Разрешение или отклонение запроса из указанного источника ссылки.
  • "IP-адрес". Разрешение только запросов, отправленных с конкретного IP-адреса или IP-подсети.
  • "Протокол". Разрешение или отклонение запросов на основе протокола, использованного для запроса содержимого.
  • "Время истечения срока действия". Задайте дату и время, чтобы убедиться, что ссылка будет действовать только в течение ограниченного периода времени.

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

Внимание

Если для какого-либо пути этой учетной записи включена авторизация по маркеру, для кэширования строки запроса можно использовать только режим standard-cache. Дополнительные сведения см. в разделе "Управление поведением кэширования Azure сеть доставки содержимого с помощью строк запроса".

Эталонная архитектура

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

Снимок экрана: рабочий процесс проверки подлинности маркера доставки содержимого.

Логика проверки маркеров в конечной точке сети доставки содержимого

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

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

Настройка аутентификации на основе маркеров

  1. В портал Azure перейдите к профилю сети доставки содержимого, а затем выберите "Управление", чтобы запустить дополнительный портал.

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

  2. Наведите указатель мыши на элемент Большой HTTP-объект и щелкните Аутентификация на основе маркеров во всплывающем элементе. Затем можно настроить ключ шифрования и параметры шифрования следующим образом.

    1. Создайте один или несколько ключей шифрования. В ключе шифрования учитывается регистр, и он может содержать любое сочетание буквенно-цифровых символов. Любые другие типы символов, включая пробелы, не допускаются. Максимальная длина составляет 250 символов. Чтобы убедиться, что ключи шифрования являются случайными, рекомендуется создать их с помощью средства OpenSSL.

      В инструменте OpenSSL используется следующий синтаксис:

      rand -hex <key length>

      Например:

      OpenSSL> rand -hex 32

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

    2. Введите уникальный ключ шифрования в поле Первичный ключ. При необходимости введите также резервную копию ключа в поле Backup Key (Резервная копия ключа).

    3. Выберите минимальную версию шифрования для каждого ключа в списке Минимальная версия шифрования, а затем щелкните Обновить.

      • V2: указывает, что ключ можно использовать для создания маркеров версии 2.0 и 3.0. Используйте этот параметр, только если вы переходите с устаревшего ключа шифрования версии 2.0 на ключ шифрования версии 3.0.
      • V3 (рекомендуется): указывает, что ключ можно использовать только для создания маркеров версии 3.0.

      Снимок экрана: ключ установки маркера проверки подлинности маркера доставки содержимого.

    4. Используйте инструмент шифрования для настройки параметров шифрования и создания маркера. С его помощью можно настроить разрешение или отклонение запросов с учетом времени истечения срока действия, страны или региона, источника ссылки, протокола и IP-адреса клиента (в любых сочетаниях). Хотя число и сочетание параметров, которые можно объединить для формирования маркера, не ограничивается общей длиной маркера до 512 символов.

      Снимок экрана: средство шифрования сети доставки содержимого.

      Введите значения для одного или нескольких указанных ниже параметров шифрования в разделе Encrypt Tool (Инструмент шифрования).

      Наименование параметра Description
      ec_expire Задает срок действия маркера. Запросы, отправленные после истечения срока действия, отклоняют. Этот параметр использует метку времени Unix, основанную на числе секунд с начала стандартной эпохи Unix, "1/1/1970 00:00:00 GMT". (Вы можете использовать онлайн-инструменты для преобразования между стандартным временем и временем Unix.)

      Например, если требуется, чтобы маркер действовал до 12/31/2016 12:00:00 GMT, введите значение метки времени Unix 1483185600.

      ec_url_allow Позволяет настроить маркеры для определенного ресурса или пути. Этот параметр ограничивает доступ к запросам, URL-адрес которых начинается с определенного относительного пути. В URL-адресах учитывается регистр. Введите несколько путей через запятую без пробелов. В зависимости от требований можно настроить разные значения для обеспечения различных уровней доступа.

      Например, для URL-адреса http://www.mydomain.com/pictures/city/strasbourg.png эти запросы допустимы при следующих входных значениях:

      • Входное значение "/" — все запросы разрешаются.
      • Входное значение "/рисунки", разрешены следующие запросы:
        • 'http://www.mydomain.com/pictures.png'
        • 'http://www.mydomain.com/pictures/city/strasbourg.png'
        • 'http://www.mydomain.com/picturesnew/city/strasbourgh.png'
      • Входное значение "/pictures/" — разрешаются только запросы, содержащие путь "/pictures/". Например, http://www.mydomain.com/pictures/city/strasbourg.png.
      • Входное значение "/pictures/city/strasbourg.png" — разрешаются только запросы для данного конкретного пути и ресурса.
      ec_country_allow Разрешает запросы, отправленные из одной или нескольких указанных стран или регионов. Запросы, отправленные из любых других стран или регионов, отклоняются. Укажите двухбуквенный [код каждой страны или региона в формате ISO 3166](/previous-versions/azure/mt761717(v=azure.100)), разделяя значения запятой. Не добавляйте пробелы. Например, если вы хотите разрешить доступ только из США и Франции, введите в поле "US,FR".
      ec_country_deny Отклоняет запросы, отправленные из одной или нескольких указанных стран или регионов. Запросы, отправленные из любых других стран или регионов, разрешаются. Реализация аналогична параметру ec_country_allow. Если код страны или региона указан в параметрах ec_country_allow и ec_country_deny, то параметр ec_country_allow имеет больший приоритет.
      ec_ref_allow Разрешает запросы только из указанного источника ссылки. Источник ссылки определяет URL-адрес веб-страницы, связанной с запрашиваемым ресурсом. Значение параметра не должно содержать протокол.

      Допускаются приведенные ниже типы входных данных.

      • Имя узла или имя узла и путь.
      • Несколько источников ссылок. Чтобы добавить несколько источников ссылок, укажите их через запятую без пробелов. Если значение источника ссылки указано, но сведения о нем не отправляются в запросе из-за конфигурации браузера, то такие запросы отклоняются по умолчанию.
      • Запросы с пустыми или отсутствующими сведениями об источнике ссылки. По умолчанию параметр ec_ref_allow блокирует запросы таких типов. Чтобы разрешить такие запросы, введите текст "missing" либо пустое значение (с запятой в конце).
      • Поддомены. Чтобы разрешить поддомены, введите звездочку (\*). Например, чтобы разрешить все поддомены "contoso.com", введите "*. contoso.com".

      Например, чтобы разрешить доступ для запросов с сайта www.contoso.com, всех поддоменов в contoso2.com и для запросов с пустым или отсутствующим источником ссылки, введите www.contoso.com,*.contoso.com,missing.

      ec_ref_deny Отклоняет запросы из указанного источника ссылки. Реализация аналогична параметру ec_ref_allow. Если источник ссылки указан в параметрах ec_ref_allow и ec_ref_deny, то параметр ec_ref_allow имеет больший приоритет.
      ec_proto_allow Разрешает только запросы, полученные по указанному протоколу. Допустимые значения: "http", "https" и "http, https".
      ec_proto_deny Отклоняет запросы, полученные по указанному протоколу. Реализация аналогична параметру ec_proto_allow. Если протокол указан в параметрах ec_proto_allow и ec_proto_deny, то параметр ec_proto_allow имеет больший приоритет.
      ec_clientip Ограничивает доступ по IP-адресу указанного инициатора запроса. Поддерживаются протоколы 4 (IPv4) и Протокол Интернета версии 6 (IPv6). Можно указать отдельный IP-адрес запроса или IP-адреса, связанные с определенной подсетью. Например, "11.22.33.0/22" разрешает запросы с IP-адресов 11.22.32.1/22–11.22.35.254.
    5. После завершения ввода значений параметров шифрования выберите ключ для шифрования (если вы создали первичный и резервный ключ) из списка "Ключ для шифрования ".

    6. Выберите версию шифрования из списка Encryption Version (Версия шифрования): V2 для версии 2 или V3 для версии 3 (рекомендуется).

    7. Нажмите кнопку Шифровать для создания маркера.

      После создания маркера он отображается в поле "Созданный маркер ". Чтобы использовать маркер, присоедините его как строку запроса в конец URL-пути к файлу. Например, http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b.

    8. При необходимости проверьте маркер с помощью инструмента расшифровки, чтобы просмотреть параметры этого маркера. Вставьте значение маркера в поле Token to Decrypt (Маркер для расшифровки). Выберите использование ключа шифрования из списка Ключ для расшифровки, а затем нажмите кнопку Расшифровать.

      После расшифровки маркера его параметры отобразятся в поле Original Parameters (Исходные параметры).

    9. Дополнительно можно настроить тип кода ответа, который возвращается при отклонении запроса. Выберите Enabled (Включено), затем выберите код ответа из списка Response Code (Код ответа). Параметру Header Name (Имя заголовка) автоматически присваивается значение Location (Расположение). Нажмите кнопку Сохранить, чтобы реализовать новый код ответа. Для некоторых кодов ответа нужно также ввести URL-адрес страницы ошибки в поле Header Value (Значение заголовка). Код ответа 403 (Запрещено) выбран по умолчанию.

  3. В разделе Большой HTTP-объект щелкните вкладку Подсистема правил. Обработчик правил используется для определения путей применения функции, включения функции проверки подлинности маркера и включения дополнительных возможностей проверки подлинности маркеров. Дополнительные сведения см. в справочнике по подсистеме правил.

    1. Выберите существующее или создайте новое правило, чтобы определить ресурс или путь, для которого требуется применить аутентификацию на основе маркеров.

    2. Чтобы включить аутентификацию на основе маркеров в правиле, выберите Token Auth (Аутентификация на основе маркеров) из списка Features (Функции), а затем выберите Enabled (Включено). Выберите "Обновить", если вы обновляете правило или добавляете , если вы создаете правило.

      Снимок экрана: пример включения проверки подлинности маркера маркера модуля правил доставки содержимого.

  4. В обработчике правил можно также включить дополнительные функции проверки подлинности маркеров. Чтобы включить какую-либо из приведенных ниже функций, выберите ее из списка Features (Функции), а затем выберите Enabled (Включено).

    • Код отказа маркера проверки подлинности: определяет тип ответа, возвращаемого пользователю при отклонении запроса. Заданные здесь правила переопределяют код ответа, настроенный в разделе Custom Denial Handling (Пользовательская обработка отказов) на странице аутентификации на основе маркеров.

    • Маркер проверки подлинности игнорирует URL-адрес: определяет, учитывается ли URL-адрес, используемый для проверки маркера.

    • Параметр проверки подлинности маркера: переименовывает параметр строки запроса проверки подлинности маркера, который отображается в запрошенном URL-адресе.

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

  5. Можно настроить маркер, воспользовавшись исходным кодом на сайте GitHub. Доступны такие языки:

    • О
    • C#
    • PHP
    • Perl
    • Java
    • Python

Цены на функции и поставщики azure сеть доставки содержимого

Дополнительные сведения о функциях см. в сеть доставки содержимого продуктах Azure. Сведения о ценах см. на странице Цены на сеть доставки содержимого.