Usar o Microsoft Entra ID para autenticação de cache

O Cache do Azure para Redis oferece dois métodos de autenticação para a sua instância de cache:

Embora seja simples, a autenticação por chave de acesso implica em uma série de desafios em torno do gerenciamento de segurança e senha. Nesse artigo, você irá aprender a usar um token do Microsoft Entrapara autenticação do cache.

O Cache do Azure para Redis oferece um mecanismo de autenticação sem senha ao se integrar ao Microsoft Entra ID (versão prévia). Essa integração também inclui a funcionalidade de controle de acesso baseado em função fornecida por meio de listas de controle de acesso (ACLs) compatíveis com o código aberto do Redis.

Para usar a integração de ACL, seu aplicativo cliente precisa assumir a identidade de uma entidade do Microsoft Entra, como uma entidade de serviço ou uma identidade gerenciada, e conectar-se ao seu cache. Neste artigo, você aprenderá a usar sua entidade de serviço ou identidade gerenciada para se conectar ao seu cache e o que fazer para conceder suas permissões predefinidas de conexão com base no artefato do Microsoft Entra que está sendo usado para a conexão.

Escopo de disponibilidade

Camada Básico, Standard e Premium Enterprise, Enterprise Flash
Disponibilidade Sim (versão prévia) Não

Pré-requisitos e limitações

  • A autenticação baseada no Microsoft Entra ID somente é compatível com as conexões SSL e com TLS 1.2.
  • A autenticação baseada no Microsoft Entra ID não é compatível com as instâncias do Cache do Azure para Redis que dependem dos Serviços de Nuvem.
  • A autenticação baseada no Microsoft Entra ID não é compatível com os níveis corporativos do Cache do Azure para Redis Enterprise.
  • Alguns comandos do Redis ficam bloqueados. Para obter uma lista completa dos comandos bloqueados, consulte Comandos do Redis sem suporte no Cache do Azure para Redis.

Importante

Após uma conexão ser estabelecida usando o Microsoft Entra token, os aplicativos clientes precisam atualizar o Microsoft Entra token periodicamente antes da expiração e enviar um comando AUTH para o servidor do Redis para evitar a interrupção das conexões. Para obter mais informações, confira Configurar seu cliente do Redis para usar o Microsoft Entra ID.

Habilitar a autenticação do Microsoft Entra no seu cache

  1. No portal do Azure, selecione a instância do Cache do Azure para Redis na qual você quer configurar a autenticação baseada Microsoft Entra token.

  2. Selecione Autenticação no menu Recurso.

  3. No painel de trabalho, selecione (VERSÃO PRÉVIA) Habilitar a Autenticação do Microsoft Entra.

  4. Selecione Habilitar Autenticação do Microsoft Entra e insira o nome de um usuário válido. O usuário inserido recebe automaticamente a Política de Acesso do Proprietário de Dados por padrão quando você seleciona Salvar. Você também pode inserir uma identidade gerenciada ou uma entidade de serviço para se conectar à instância de cache.

    Captura de tela que mostra a autenticação selecionada no menu de recursos e a opção marcada para habilitar a autenticação do Microsoft Entra.

  5. Uma caixa de diálogo pop-up é exibida perguntando se você deseja atualizar sua configuração e informando que leva vários minutos. Selecione Sim.

    Importante

    Após a operação de habilitação ter sido concluída, os nós na sua instância de cache serão reinicializados para carregar a nova configuração. Recomendamos executar essa operação durante sua janela de manutenção ou fora do seu horário comercial de pico. Essa operação pode levar até 30 minutos.

Para obter informações sobre como usar o Microsoft Entra ID com a CLI do Azure, consulte as páginas de referências para identidade.

Como usar a configuração de acesso a dados com o cache

Se você quiser usar uma política de acesso personalizada em vez do Proprietário de Dados Redis, acesse Configuração de Acesso a Dados no menu Recurso. Para obter mais informações, consulte Configurar uma política de acesso a dados personalizada para seu aplicativo.

  1. No portal do Azure, selecione a instância do Cache do Azure para Redis na qual você deseja adicionar à Configuração de Acesso a Dados.

  2. Selecione Configuração de Acesso a Dados (VERSÃO PRÉVIA) no menu de Recursos.

  3. Selecione Adicionar e escolha Novo Usuário do Redis.

  4. Na guia Política de Acesso, selecione uma das políticas disponíveis na tabela: Proprietário de Dados, Colaborador de Dados ou Leitor de Dados. Em seguida, selecione Avançar: Usuários do Redis.

    Captura de tela mostrando as Políticas de Acesso disponíveis.

  5. Escolha Usuário ou entidade de serviço ou Identidade Gerenciada para determinar o que você quer usar para autenticar na sua instância do Cache do Azure para Redis. Se você selecionar Usuário ou entidade de serviço e quiser adicionar um usuário, primeiro habilite a Autenticação do Microsoft Entra.

  6. Em seguida, selecione Selecionar membros e Selecionar. A seguir selecione Avançar: Revisar + Criar. Captura de tela mostrando os membros a serem adicionados a Novos Usuários do Redis.

  7. Uma caixa de diálogo exibirá um pop-up notificando você de que a atualização é permanente e pode causar uma breve falha na conexão. Selecione Sim.

    Importante

    Após a operação de habilitação ter sido concluída, os nós na sua instância de cache serão reinicializados para carregar a nova configuração. Recomendamos executar essa operação durante sua janela de manutenção ou fora do seu horário comercial de pico. Essa operação pode levar até 30 minutos.

Configurar seu cliente Redis para usar o Microsoft Entra ID

Como a maioria dos clientes do Cache do Azure para Redis pressupõe que uma chave de acesso/senha será usada para a autenticação, você provavelmente precisará atualizar o fluxo de trabalho do seu cliente para dar suporte à autenticação usando o Microsoft Entra ID. Nesta seção, você aprenderá a configurar seus aplicativos clientes para se conectarem ao Cache do Azure para Redis usando um Microsoft Entra token.

Fluxo de trabalho do cliente do Microsoft Entra

  1. Configure seu aplicativo cliente para adquirir um token do Microsoft Entra para o escopo https://redis.azure.com/.default ou acca5fbb-b7e4-4009-81f1-37e38fd66d78/.default usando a Biblioteca de Autenticação da Microsoft (MSAL).

  2. Atualize sua lógica de conexão do Redis para usar os seguintes User e Password:

    • User = ID de Objeto da sua identidade gerenciada ou entidade de serviço
    • Password = Microsoft Entra token adquirido usando a MSAL
  3. Certifique-se de que o seu cliente execute automaticamente um comando AUTH do Redis, antes que o Microsoft Entra token expire, usando o seguinte:

    • User = ID de Objeto da sua identidade gerenciada ou entidade de serviço
    • Password = Microsoft Entra token atualizado periodicamente

Suporte da biblioteca de clientes

A biblioteca Microsoft.Azure.StackExchangeRedis é uma extensão do StackExchange.Redis que permite que você use o Microsoft Entra ID para autenticar conexões de um aplicativo cliente do Redis para um Cache do Azure para Redis. A extensão gerencia o token de autenticação, incluindo a atualização proativa de tokens antes que expirem, para manter conexões persistentes do Redis ao longo de vários dias.

Esse código de exemplo demonstra como usar o pacote NuGet do Microsoft.Azure.StackExchangeRedis para se conectar à sua instância do Cache do Azure para Redis usando o Microsoft Entra ID.

A tabela a seguir inclui links para códigos de exemplo, que demonstram como se conectar à instância Cache do Azure para Redis usando um Microsoft Entra token. Está incluída uma ampla variedade de bibliotecas de clientes em vários idiomas.

Biblioteca de clientes Linguagem Link para o exemplo de código
StackExchange.Redis .NET Exemplo de código StackExchange.Redis
redis-py Python Exemplo de código redis-py
Jedis Java Exemplo de código Jedis
Lettuce Java Exemplo de código Lettuce
Redisson Java Exemplo de código Redisson
ioredis Node.js Exemplo de código ioredis
node-redis Node.js Exemplo de código node-redis

Melhores práticas para autenticação do Microsoft Entra

  • Configure links privados ou regras de firewall para proteger seu cache contra um ataque de Negação de Serviço.

  • Certifique-se de que o aplicativo cliente envie um novo Microsoft Entra token pelo menos três minutos antes da expiração do token para evitar a interrupção da conexão.

  • Ao chamar o comando AUTH do servidor do Redis periodicamente, pense em adicionar uma tremulação de forma que os comandos AUTH sejam escalonados e o servidor do Redis não receba muitos comandos AUTH ao mesmo tempo.