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

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

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

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

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

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

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

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

  • Проверка подлинности на основе идентификатора Майкрософт поддерживается для SSL-подключений и TLS 1.2 или более поздней версии.
  • Проверка подлинности на основе идентификаторов Майкрософт не поддерживается в Кэш Azure для Redis экземплярах, зависящих от Облачные службы.
  • Проверка подлинности на основе идентификатора Microsoft Entra не поддерживается на уровнях Enterprise Кэш 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.

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

    Снимок экрана: проверка подлинности, выбранная в меню ресурсов, и включенная проверка подлинности Microsoft Entra проверка.

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

    Внимание

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

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

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

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

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

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

  3. Выберите " Добавить " и выберите "Новый пользователь Redis".

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

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

  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, чтобы использовать следующие иPassword:User

    • 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 в течение нескольких дней.

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

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

Клиентская библиотека Язык Ссылка на пример кода
StackExchange.Redis .NET Пример кода StackExchange.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 по крайней мере через 3 минуты до истечения срока действия маркера, чтобы избежать сбоя подключения.

  • При периодическом вызове команды сервера AUTH Redis рекомендуется добавить jitter, чтобы AUTH команды были ошеломлены, и сервер Redis не получает AUTH много команд одновременно.