Прочитать на английском

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


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

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

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

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

To use the ACL integration, your client application must assume the identity of a Microsoft Entra entity, like service principal or managed identity, and connect to your cache. In this article, you learn how to use your service principal or managed identity to connect to your cache. You also learn how to grant your connection predefined permissions based on the Microsoft Entra artifact that's used for the connection.

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

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

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

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

Важно!

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

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

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

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

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

  4. Выберите "Включить проверку подлинности Microsoft Entra" и введите имя допустимого пользователя. По умолчанию, когда вы выбираете Сохранить, пользователю, которого вы вводите, автоматически назначается Политика доступа владельца данных. You can also enter a managed identity or service principal to connect to your cache instance.

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

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

    Важно!

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

For information on how to use Microsoft Entra with the Azure CLI, see the reference pages for identity.

Отключение аутентификации в кэше с помощью ключа доступа

Использование 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 Cache для Redis, в котором вы хотите отключить ключи доступа.

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

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

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

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

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

Важно!

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

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

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

  1. In the Azure portal, select the Azure Cache for Redis instance where you want to add to the data access configuration.

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

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

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

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

  5. Choose either User or service principal or Managed Identity to determine how to assign access to your Azure Cache for Redis instance. Если вы выберете пользователя или учетную запись службы и хотите добавить пользователя, сначала необходимо включить аутентификацию Microsoft Entra.

  6. Затем выберите "Выбрать участников " и нажмите кнопку "Выбрать". Then, select Next: Review + assign.

    Screenshot showing members to add as new Redis users.

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

    Важно!

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

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

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

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

  1. Configure your client application to acquire a Microsoft Entra token for scope, https://redis.azure.com/.default or acca5fbb-b7e4-4009-81f1-37e38fd66d78/.default, by using the Microsoft Authentication Library (MSAL).

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

    • User = Object ID of your managed identity or service principal
    • Password = токен Microsoft Entra, полученный с помощью MSAL
  3. Убедитесь, что клиент автоматически выполняет команду AUTH для Redis, прежде чем истечет срок действия токена Microsoft Entra, с помощью:

    • User = Object ID of your managed identity or service principal
    • Password = токен Microsoft Entra периодически обновляется

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

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

This code sample demonstrates how to use the Microsoft.Azure.StackExchangeRedis NuGet package to connect to your Azure Cache for Redis instance by using Microsoft Entra.

В таблице ниже указаны ссылки на примеры кода. They demonstrate how to connect to your Azure Cache for Redis instance by using a Microsoft Entra token. Включены различные клиентские библиотеки на разных языках.

Клиентская библиотека Язык Ссылка на пример кода
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 минимум за три минуты до истечения срока действия предыдущего токена, чтобы избежать разрыва подключения.
  • When you call the Redis server AUTH command periodically, consider adding a random delay so that the AUTH commands are staggered. Благодаря этому сервер Redis не будет одновременно получать слишком много команд AUTH.

Дополнительные ресурсы