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


Использование Microsoft Entra для проверки подлинности кэша

Кэш Azure для Redis предлагает два метода проверки подлинности в экземпляре кэша: ключи доступа и Microsoft Entra.

Несмотря на то, что проверка подлинности ключа доступа является простой, она поставляется с набором проблем по обеспечению безопасности и управлению паролями. Для сравнения, в этой статье вы узнаете, как использовать токен Microsoft Entra для проверки подлинности кэша.

Кэш Azure для Redis предлагает механизм проверки подлинности без пароля путем интеграции с Microsoft Entra. Эта интеграция также включает функции управления доступом на основе ролей, предоставляемые с помощью списков управления доступом (ACL), поддерживаемых в Redis с открытым кодом.

Чтобы использовать интеграцию ACL, клиентское приложение должно принять удостоверение сущности Microsoft Entra, например субъект-служба или управляемое удостоверение, и подключиться к кэшу. Из этой статьи вы узнаете, как использовать субъект-службу или управляемое удостоверение для подключения к кэшу. Вы также узнаете, как предоставить предопределенные разрешения подключения на основе артефакта Microsoft Entra, используемого для подключения.

Область доступности

Уровень "Базовый", "Стандартный" и "Премиум" Enterprise, Enterprise Flash
Availability Да Нет

Предварительные требования и ограничения

  • Проверка подлинности Microsoft Entra поддерживается для SSL-подключений и TLS 1.2 или более поздней версии.
  • Проверка подлинности Microsoft Entra не поддерживается на корпоративных уровнях Кэш Azure для Redis Enterprise.
  • Некоторые команды Redis блокируются. Полный список заблокированных команд см. в разделе "Команды Redis", которые не поддерживаются в Кэш Azure для Redis.

Внимание

После установки подключения с помощью маркера Microsoft Entra клиентские приложения должны периодически обновлять маркер Microsoft Entra до истечения срока действия. Затем приложения должны отправить AUTH команду на сервер Redis, чтобы избежать нарушения подключений. Дополнительные сведения см. в разделе "Настройка клиента Redis для использования Microsoft Entra".

Включение проверки подлинности Microsoft Entra в кэше

  1. В портал Azure выберите экземпляр Кэш Azure для Redis, в котором требуется настроить проверку подлинности на основе маркера Microsoft Entra.

  2. В меню "Ресурс" выберите "Проверка подлинности".

  3. На рабочей панели выберите вкладку проверки подлинности Microsoft Entra Authentication .

  4. Выберите "Включить проверку подлинности Microsoft Entra" и введите имя допустимого пользователя. По умолчанию при нажатии кнопки "Сохранить" пользователь, который вы вводите, автоматически назначается политика доступа владельца данных. Вы также можете ввести управляемое удостоверение или субъект-службу для подключения к экземпляру кэша.

    Снимок экрана: проверка подлинности, выбранная в меню ресурсов, и флажок

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

    Внимание

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

Сведения об использовании Microsoft Entra с Azure CLI см. на справочных страницах для удостоверения.

Отключение проверки подлинности ключа доступа в кэше

Использование Microsoft Entra — это безопасный способ подключения кэша. Рекомендуется использовать Microsoft Entra и отключить ключи доступа.

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

Перед отключением ключей доступа

  • Убедитесь, что проверка подлинности Microsoft Entra включена, и вы настроили хотя бы одного пользователя Redis.
  • Убедитесь, что все приложения, подключающиеся к экземпляру кэша, переключаются на использование проверки подлинности Microsoft Entra Authentication.
  • Убедитесь, что метрики подключенных клиентов и подключенных клиентов с помощью токена Microsoft Entra имеют одинаковые значения. Если значения этих двух метрик не совпадают, это означает, что все еще есть некоторые подключения, созданные с помощью ключей доступа, а не токена Microsoft Entra.
  • Рекомендуется отключить доступ во время запланированного периода обслуживания для экземпляра кэша.
  • Отключение ключей доступа доступно только для кэшей уровня "Базовый", "Стандартный" и "Премиум".

Для геореплицированных кэшей необходимо:

  1. Отмена связи кэшей.
  2. отключить ключи доступа;
  3. Повторное связывание кэшей.

Если у вас есть кэш, в котором вы использовали ключи доступа, и вы хотите отключить ключи доступа, выполните следующую процедуру:

  1. В портал Azure выберите экземпляр Кэш Azure для Redis, в котором требуется отключить ключи доступа.

  2. В меню "Ресурс" выберите "Проверка подлинности".

  3. На рабочей панели выберите ключи доступа.

  4. Выберите "Отключить проверку подлинности ключей доступа". Затем нажмите кнопку Сохранить.

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

  5. Убедитесь, что вы хотите обновить конфигурацию, нажав кнопку "Да".

Внимание

При изменении параметра проверки подлинности ключей доступа для кэша все существующие клиентские подключения с помощью ключей доступа или Microsoft Entra завершаются. Следуйте рекомендациям по реализации надлежащих механизмов повторных попыток для повторного подключения подключений на основе Microsoft Entra. Дополнительные сведения см. в разделе Устойчивость подключения.

Использование конфигурации доступа к данным с кэшем

Если вы хотите использовать настраиваемую политику доступа вместо владельца данных Redis, перейдите в меню "Конфигурация доступа к данным". Дополнительные сведения см. в разделе "Настройка настраиваемой политики доступа к данным" для приложения.

  1. В портал Azure выберите экземпляр Кэш Azure для Redis, в котором требуется добавить в конфигурацию доступа к данным.

  2. В меню "Ресурс" выберите "Конфигурация доступа к данным".

  3. Нажмите кнопку "Добавить " и выберите "Новый пользователь Redis".

  4. На вкладке "Политики доступа" выберите одну из доступных политик в таблице: владелец данных, участник данных или средство чтения данных. Затем нажмите кнопку "Далее: пользователи Redis".

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

  5. Выберите пользователя или субъект-службу или управляемое удостоверение, чтобы определить способ назначения доступа к экземпляру Кэш Azure для Redis. Если вы выберете пользователя или субъект-службу и хотите добавить пользователя, сначала необходимо включить проверку подлинности Microsoft Entra.

  6. Затем выберите "Выбрать участников " и нажмите кнопку "Выбрать". Затем нажмите кнопку "Далее" и " Проверить и назначить".

    Снимок экрана: элементы, добавляемые в качестве новых пользователей Redis.

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

    Внимание

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

Настройка клиента Redis для использования Microsoft Entra

Так как большинство клиентов Кэш Azure для Redis предполагают, что для проверки подлинности используется пароль и ключ доступа, скорее всего, необходимо обновить рабочий процесс клиента для поддержки проверки подлинности с помощью Microsoft Entra. В этом разделе описано, как настроить клиентские приложения для подключения к Кэш Azure для Redis с помощью токена Microsoft Entra.

Рабочий процесс клиента Microsoft Entra

  1. Настройте клиентское приложение для получения маркера Microsoft Entra для области https://redis.azure.com/.default или acca5fbb-b7e4-4009-81f1-37e38fd66d78/.defaultс помощью библиотеки проверки подлинности Майкрософт (MSAL).

  2. Обновите логику подключения Redis, чтобы использовать следующие User и Password:

    • User = идентификатор объекта управляемого удостоверения или субъекта-службы
    • Password = токен Microsoft Entra, полученный с помощью MSAL
  3. Убедитесь, что клиент выполняет команду Redis AUTH автоматически до истечения срока действия маркера Microsoft Entra с помощью:

    • User = идентификатор объекта управляемого удостоверения или субъекта-службы
    • Password = токен Microsoft Entra периодически обновляется

Поддержка клиентских библиотек

Microsoft.Azure.StackExchangeRedis Библиотека — это расширениеStackExchange.Redis, которое позволяет использовать Microsoft Entra для проверки подлинности подключений из клиентского приложения Redis к Кэш Azure для Redis. Расширение управляет маркером проверки подлинности, включая упреждающее обновление маркеров до истечения срока их действия для поддержания постоянных подключений Redis в течение нескольких дней.

В этом примере кода показано, как использовать пакет NuGet для подключения к экземпляру Microsoft.Azure.StackExchangeRedis Кэш Azure для Redis с помощью Microsoft Entra.

В следующей таблице приведены ссылки на примеры кода. Они демонстрируют, как подключиться к экземпляру Кэш Azure для Redis с помощью токена Microsoft Entra. Различные клиентские библиотеки включены в несколько языков.

Клиентская библиотека Язык Ссылка на пример кода
StackExchange.Redis .NET Пример кода StackExchange.Redis
go-redis Go Пример кода go-redis
redis-py Python Пример кода redis-py
Jedis Java Пример кода Jedis
Lettuce Java Пример кода Lettuce
Redisson Java Пример кода Redisson
ioredis. Node.js Пример кода ioredis
node-redis Node.js Пример кода node-redis

Рекомендации по проверке подлинности Microsoft Entra

  • Настройте частные ссылки или правила брандмауэра для защиты кэша от атаки типа "отказ в обслуживании".
  • Убедитесь, что клиентское приложение отправляет новый маркер Microsoft Entra по крайней мере через три минуты до истечения срока действия маркера, чтобы избежать нарушений подключения.
  • При периодическом вызове команды сервера AUTH Redis рекомендуется добавить случайную задержку, чтобы AUTH команды были ошеломлены. Таким образом, сервер Redis не получает слишком много AUTH команд одновременно.