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


Использование идентификатора Microsoft Entra для проверки подлинности кэша с помощью Управляемого Redis в Azure

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

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

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

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

Important

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

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

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

Добавление пользователей или системного субъекта в кэш

  1. Подключитесь к кэшу на портале Azure.

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

  3. На вкладке Проверки подлинности Microsoft Entra выберите "Пользователь" или "Субъект-служба ", а затем нажмите кнопку "Выбрать участника".

  4. Введите имя пользователя, который вы хотите запустить программу. Выберите пользователя, который нужно добавить в список, и выберите его. Пользователь добавляется в список пользователей Redis.

    Снимок экрана: вкладка проверки подлинности в кэше Redis на портале Azure.

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

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

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

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

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

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

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

Устранение неполадок с идентификатором Microsoft Entra и кэшем

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

Проверка подключения с помощью Azure CLI

Azure CLI можно использовать для быстрого тестирования, если вы можете подключиться к кластеру Redis. Команда az redisenterprise test-connection полезна для отладки проблем с подключением и проверяет сквозное подключение, отправив ping команду.

Предварительные требования для использования Azure CLI с Azure Managed Redis см. в статье "Управление кэшем Azure Managed Redis с помощью Azure CLI".

Чтобы проверить подключение с проверкой подлинности Идентификатора Microsoft Entra (по умолчанию), выполните следующую команду:

az redisenterprise test-connection --name <cache-name> --resource-group <resource-group-name>

Или явно укажите аутентификацию Entra:

az redisenterprise test-connection --name <cache-name> --resource-group <resource-group-name> --auth entra

Замечание

Эта команда использует учетные данные, установленные с помощью az login, которые поддерживают учетные записи пользователей, управляемые удостоверения или принципы безопасности службы.

Проверка токенов Microsoft Entra

Если приложению не удается получить доступ к экземпляру Управляемого Redis Azure с помощью идентификатора Microsoft Entra, можно также использовать следующий скрипт PowerShell:

EntraTokenValidation

Этот скрипт PowerShell проверяет токены Microsoft Entra ID для управляемых ресурсов кэша Redis в Azure. Скрипт проверяет маркеры и проверяет политики доступа, помогающие диагностировать проблемы с проверкой подлинности.

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

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

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

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

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

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

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

При отключении ключей доступа система завершает все существующие клиентские подключения независимо от того, используются ли ключи доступа или проверка подлинности идентификатора Microsoft Entra.

Прежде чем отключить ключи доступа в геореплицированных кэшах, необходимо:

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

Чтобы отключить ключи доступа, выполните следующую процедуру:

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

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

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

  4. Выберите элемент управления проверки подлинности ключей доступа , чтобы отключить ключи доступа.

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

    Important

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