Рекомендации по производительности для ACS

Применяется к

  • Microsoft Azure Active Directory Access Control (также называется Access Control Service или ACS)

  • Windows Identity Foundation

Сводка

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

Обзор

В целом, основными атрибутами производительности служат время отклика, пропускная способность и использование ресурсов. Например, если ресурсы приложения, такие как память, ограничены, велика вероятность, что какие-то данные будут записаны в файловую систему на диске, который намного медленнее ОЗУ, что снизит общее время отклика. Вот еще один пример: если приложение отправлять большой объем данных по сети с ограниченной полосой пропускания, время отклика также будет меньше желаемого. Один из подходов устранить проблемы с производительностью состоит в том, чтобы добавить ресурсы, например увеличить полосу пропускания сети или объем памяти и установить более быстрые процессоры. Такой подход может помочь, но не всегда. Другой подход заключается в улучшении кода, чтобы он использовал меньше ресурсов и передавал меньше данных. Учитывая контекст приложений, поддерживающих утверждения, и то, что находится под контролем разработчика, есть несколько ключевых факторов, связанных с использованием ACS, которые влияют на производительность, а именно маркеры и криптографические операции, связанные с токенами.

Задачи

  • Определите аспекты, влияющие на производительность в приложениях, использующих ACS.

  • Предоставить рекомендации по повышению производительности для каждого из аспектов.

Размер маркеров и шифрование

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

  • Размер маркера. Размер маркера влияет на производительность двумя способами. Во-первых, он в определенной степени влияет на полосу пропускания сети. Чем больше маркер, тем больше полосы пропускания используется, что увеличивает общее время отклика. Во-вторых, чем больше маркер, тем больше циклов процессора требуется для проверки его целостности и извлечения из него утверждений. При обработке маркеров выполняется его синтаксический анализ и десериализация в двоичный формат, чтобы код мог его использовать. Кроме того, выполняются несколько криптографических операций, таких как проверка подлинности и, при необходимости, расшифровка. Чем больше размер маркера, тем больше циклов процессора тратится на его обработку, что повышает объем используемых ресурсов и увеличивает общее время отклика. Размер маркера зависит от нескольких факторов: формата маркера, шифрования, примененного к маркеру, и утверждений в маркере. Служба ACS поддерживает маркеры SAML, SWT и JWT. Обычно маркер SWT или JWTJWT меньше токена SAML, который содержит эквивалентный объем информации. Дополнительные сведения см. в статье " Форматы маркеров", поддерживаемые в ACS. Но разные форматы маркеров оптимизированы для различных протоколов и архитектур приложений.

    • Маркеры SWT выдаются по протоколам WS-Federation, WS-Trust и OAuth WRAP или OAuth 2.0. Это значит, что маркеры SWT можно использовать в веб-приложениях, службах WCF (SOAP) и службах WCF (REST). WIF не поддерживает обработчик маркеров SWT.

    • Токены SAML выдаются через протоколы WS-Trust и WS-Federation. Это значит, что маркеры SAML можно использовать в веб-приложениях и службах WCF (SOAP). WIF поддерживает маркеры SAML 2.0 и SAML 1.1. Дополнительные сведения о WIF см. в следующем разделе Windows Identity Foundation

    • Маркеры JWT выдаются для протоколов WS-Federation, WS-Trust и OAuth 2.0. Это значит, что маркеры SWT можно использовать в веб-приложениях, службах WCF (SOAP) и службах WCF (REST).

    Один из факторов, который сильнее всего влияет на размер маркера — утверждения в нем. Чем больше утверждений, тем больше маркер. В большинстве случаев утверждения в маркере контролируются разработчиком. Утверждения, используемые приложением, добавляются, удаляются или изменяются службой маркеров безопасности (STS), например AD FS или ACS. ACS использует группы правил и правила для добавления, удаления или изменения утверждений в маркере. Дополнительные сведения см. в статье "Группы правил" и "Правила".

  • Шифрование. Шифрование и другие криптографические операции, такие как подпись, проверка подписи и расшифровка, напрямую влияют на производительность. Криптографические операции потребляют вычислительные ресурсы, так как их алгоритмы довольно сложные. Служба ACS подписывает все выданные маркеры для защиты от их подделки. Проверка подписи маркеров — обязательная операция. Шифрование маркеров необходимо, если приложение проверяющей стороны — это веб-служба, которая не использует SSL для шифрования передаваемых данных. Службам на основе WCF, использующим SOAP, требуются шифрованные маркеры подтверждения владения и протокол WS-Trust. Маркеры необходимо шифровать, чтобы защитить конфиденциальные данные, передаваемые по нешифрованному каналу. Однако если канал связи зашифрован, например с помощью SSL, то шифрование маркеров необязательно и может быть опущено для улучшения производительности.

См. также:

Основные понятия

Рекомендации по безопасности для ACS
Рекомендации по управлению сертификатами и ключами