Использование Microsoft Entra для проверки подлинности кэша с помощью Redis под управлением Azure (предварительной версии)
Redis под управлением Azure (предварительной версии) предлагает два способа проверки подлинности в вашем экземпляре кэша: ключи доступа и Microsoft Entra.
Выполнять проверку подлинности с помощью ключей доступа очень просто, однако она создает ряд проблемы с безопасностью и управлением паролями. Для сравнения в этой статье приведена информация о том, как проверяется подлинность кэша с помощью токена Microsoft Entra.
Redis под управлением Azure предлагает механизм проверки подлинности без пароля — за счет интеграции с Microsoft Entra. Идентификатору записи, настроенному для подключения к Redis под управлением Azure, присваиваются те же разрешения, что и при использовании ключей доступа.
Из этой статьи вы узнаете, как подключиться к экземпляру Redis с помощью субъекта-службы или управляемого удостоверения.
Предварительные требования и ограничения
- Проверка подлинности Microsoft Entra поддерживается только для SSL-подключений.
- Некоторые команды Redis блокируются. Полный список заблокированных команд см. в разделе Команды Redis, которые не поддерживает Redis под управлением Azure.
Внимание
После установки подключения с помощью токена Microsoft Entra клиентские приложения должны периодически обновлять этот токен, прежде чем срок его действия истечет. Затем приложения должны отправить команду AUTH
на сервер Redis, чтобы избежать нарушения подключений. Подробнее см. в разделе Настройка клиента Redis для использования Microsoft Entra.
Включение в кэше проверки подлинности Microsoft Entra
В портал Azure выберите экземпляр Redis под управлением Azure, в котором необходимо настроить проверку подлинности на основе токена Microsoft Entra.
В меню Ресурсы выберите Проверка подлинности.
На рабочей панели перейдите на вкладку Проверка подлинности Microsoft Entra.
Выберите Включить проверку подлинности Microsoft Entra, а затем "Пользователь или субъект-служба" или "Управляемое удостоверение". Пользователю, которого вы введете, автоматически будут назначены такие же разрешения, как при использовании ключей доступа, как только вы нажмете Выбрать. Можно также ввести управляемое удостоверение или субъект-службу для подключения к экземпляру AMR.
Информацию об использовании Microsoft Entra с Azure CLI см. на страницах справки по удостоверениям.
Отключение аутентификации в кэше с помощью ключа доступа
Microsoft Entra — это безопасный способ подключения кэша. Мы рекомендуем вам использовать именно Microsoft Entra, а ключи доступа отключить.
Когда вы отключаете для экземпляра Redis проверку подлинности с помощью ключей доступа, все существующие клиентские подключения разрываются — независимо от того, что именно они используют, ключи доступа или проверку подлинности с помощью Microsoft Entra. Следуйте рекомендациям в отношении клиента Redis, чтобы внедрить надежный механизмы повторения попыток для повторной установки подключения на основе Microsoft Entra, если есть.
Прежде чем отключить ключи доступа:
Необходимо включить проверку подлинности Microsoft Entra.
В отношении геореплицированных кэшей необходимо сделать следующее:
- Отменить привязку кэшей.
- отключить ключи доступа;
- Повторно привязать кэши.
Если у вас есть кэш, в котором используются ключи доступа, и вы хотите отключить ключи доступа, выполните следующую процедуру:
В портал Azure выберите экземпляр Управляемого Redis в Azure, где требуется отключить ключи доступа.
В меню Ресурсы выберите Проверка подлинности.
На рабочей панели выберите ключи доступа.
Настройте проверку подлинности ключей доступа для отключения.
Убедитесь, что вы хотите обновить конфигурацию, нажав кнопку "Да".
Внимание
Если для кэша будет изменена настройка Отключить проверку подлинности по ключу доступа, будут прерваны все имеющиеся клиентские подключения, использующие ключи доступа. Следуйте этим рекомендациям, чтобы реализовать правильные механизмы повторных попыток для повторного подключения на базе Microsoft Entra. Дополнительные сведения см. в разделе Устойчивость подключения.
Настройка использования Microsoft Entra в клиенте Redis
Поскольку большинство клиентов Redis под управлением Azure предполагает проверку подлинности с помощью пароля и ключа доступа, вам, вероятно, придется обновить рабочий процесс клиента, чтобы обеспечить поддержку проверки подлинности с помощью Microsoft Entra. В этом разделе рассказано как настроить клиентские приложения для подключения к Redis под управлением Azure с помощью токена Microsoft Entra.
Рабочий процесс клиента Microsoft Entra
Настройте в клиентском приложении получение токена Microsoft Entra для области,
https://redis.azure.com/.default
илиacca5fbb-b7e4-4009-81f1-37e38fd66d78/.default
, с помощью библиотеки проверки подлинности Microsoft (MSAL).Обновите логику подключения Redis, чтобы использовать следующие
User
иPassword
:-
User
= идентификатор объекта управляемого удостоверения или субъекта-службы -
Password
= токен Microsoft Entra, полученный с помощью MSAL
-
Убедитесь, что клиент автоматически выполняет команду AUTH для Redis, прежде чем истечет срок действия токена Microsoft Entra, с помощью:
-
User
= идентификатор объекта управляемого удостоверения или субъекта-службы -
Password
= токен Microsoft Entra периодически обновляется
-
Поддержка клиентских библиотек
Библиотека Microsoft.Azure.StackExchangeRedis
— это расширение StackExchange.Redis
, позволяющее с помощью Microsoft Entra выполнять проверку подлинности подключений, установленных от клиентского приложения Redis к Redis под управлением Azure. Данное расширение управляет токеном аутентификации, в том числе его обновлением до истечения срока действия, чтобы в течение нескольких дней непрерывно поддерживать подключение к Redis.
В этом примере кода показано, как использовать пакет NuGet Microsoft.Azure.StackExchangeRedis
для подключения к экземпляру Redis под управлением Azure с помощью Microsoft Entra.
В таблице ниже указаны ссылки на примеры кода. В них показано, как подключиться к экземпляру Redis под управлением Azure, используя токен 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 минимум за три минуты до истечения срока действия предыдущего токена, чтобы избежать разрыва подключения.
- Если вы периодически направляете на сервер Redis команду
AUTH
, рассмотрите возможность добавить джиттер, чтобы отрегулировать порядок выполнения командAUTH
. Благодаря этому сервер Redis не будет одновременно получать слишком много командAUTH
.