Use o Microsoft Entra para autenticação de cache
O Cache do Azure para Redis oferece dois métodos para autenticar sua instância de cache: chaves de acesso e Microsoft Entra.
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, integrando-se com Microsoft Entra. Essa integração também inclui funcionalidades de controle de acesso baseado em função fornecidas por meio de listas de controle de acesso (ACLs) suportadas em Redis de código aberto.
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. Nesse artigo, você aprende a usar a entidade de serviço ou a identidade gerenciada para se conectar ao cache. Você também aprenderá como conceder permissões predefinidas à sua conexão com base no artefato Microsoft Entra usado para a conexão.
Escopo de disponibilidade
Camada | Básico, Standard e Premium | Enterprise, Enterprise Flash |
---|---|---|
Disponibilidade | Sim | Não |
Pré-requisitos e limitações
- A autenticação Microsoft Entra é suportada para conexão SSL e TLS 1.2 ou superior.
- A autenticação Microsoft Entra não tem suporte nas camadas Enterprise 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
Depois que uma conexão for estabelecida usando um token Microsoft Entra, os aplicativos cliente deverão atualizar periodicamente o token Microsoft Entra antes de expirar. Em seguida, os aplicativos devem enviar um comando AUTH
ao servidor Redis para evitar a interrupção das conexões. Para obter mais informações, veja Configurar seu cliente Redis para usar o Microsoft Entra.
Habilite a autenticação Microsoft Entra em seu cache
No portal do Azure, selecione a instância do Cache do Azure para Redis na qual você deseja configurar a autenticação baseada em token do Microsoft Entra.
No menu Recurso, selecione Autenticação.
No painel de trabalho, selecione a guia Autenticação do Microsoft Entra.
Selecione Habilitar autenticação 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.
Uma caixa de diálogo pop-up pergunta se você deseja atualizar sua configuração e informa que isso leva vários minutos. Selecione Sim.
Importante
Depois que a operação de habilitação for concluída, os nós da instância de cache serão reinicializados para carregar a nova configuração. Recomendamos que você execute esta operação durante a janela de manutenção ou fora do horário comercial de pico. Essa operação pode levar até 30 minutos.
Para obter informações sobre como usar o Microsoft Entra com a CLI do Azure, consulte as páginas de referência para identidade.
Desabilitar a autenticação de chave de acesso em seu cache
Usar o Microsoft Entra é a maneira segura de conectar seu cache. Recomendamos que você use o Microsoft Entra e desabilite as chaves de acesso.
Quando você desabilita a autenticação de chave de acesso para um cache, todas as conexões de cliente existentes são encerradas, independentemente de usarem chaves de acesso ou autenticação Microsoft Entra. Siga as práticas recomendadas do cliente Redis para implementar mecanismos de nova tentativa adequados para reconectar conexões baseadas no Microsoft Entra, se houver.
Antes de desabilitar as chaves de acesso
- Verifique se a autenticação do Microsoft Entra está habilitada e se você tem pelo menos um usuário do Redis configurado.
- Verifique se todos os aplicativos que se conectam à instância de cache alternam para usar a Autenticação do Microsoft Entra.
- Verifique se as métricas Clientes conectados e Clientes conectados usando o token do Microsoft Entra têm os mesmos valores. Se os valores dessas duas métricas não forem os mesmos, isso significa que ainda há algumas conexões que foram criadas usando chaves de acesso e não o token do Microsoft Entra.
- Considere desabilitar o acesso durante a janela de manutenção agendada para sua instância de cache.
- A desabilitação de chaves de acesso só está disponível para caches de camadas Básico, Standard e Premium.
Para caches replicados geograficamente, você deve:
- Desvincule os caches.
- Desabilitar chaves de acesso.
- Vincule novamente os caches.
Se você possui um cache onde usou chaves de acesso e deseja desabilitar as chaves de acesso, siga este procedimento:
No portal do Azure, selecione a instância do Cache do Azure para Redis onde você deseja desabilitar as chaves de acesso.
No menu Recurso, selecione Autenticação.
No painel de trabalho, selecione Teclas de acesso.
Selecione Desabilitar a Autenticação de Chaves de Acesso. Em seguida, selecione Salvar.
Confirme que deseja atualizar sua configuração selecionando Sim.
Importante
Quando a configuração Desabilitar autenticação de chaves de acesso é alterada para um cache, todas as conexões de cliente existentes, usando chaves de acesso ou Microsoft Entra, são encerradas. Siga as práticas recomendadas para implementar mecanismos de nova tentativa adequados para reconectar conexões baseadas no Microsoft Entra. Para saber mais, confira Resiliência da conexão.
Use a configuração de acesso a dados com seu cache
Se você quiser usar uma política de acesso personalizada em vez do Redis Data Owner, vá para Configuração de acesso a dados no menu Recursos. Para obter mais informações, consulte Configurar uma política de acesso a dados personalizada para seu aplicativo.
No portal do Azure, selecione a instância Cache do Azure para Redis onde pretende adicionar à configuração de acesso a dados.
No menu Recurso, selecione Acesso a dados Configuração.
Selecione Adicionar e então selecione Novo usuário Redis.
Na guia Políticas de Acesso, selecione uma das políticas disponíveis na tabela: Proprietário de Dados, Contribuidor de Dados ou Leitor de Dados*. Em seguida, selecione Próximo: Usuários Redis.
Escolha Usuário ou entidade de serviço ou Identidade Gerenciada para determinar como atribuir acesso à 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 você deverá habilitar a autenticação Microsoft Entra.
Em seguida, escolha Selecionar membros e escolha Selecionar. Em seguida, selecione Próximo: Revisar + atribuir.
Uma caixa de diálogo pop-up notifica que a atualização é permanente e pode causar uma breve interrupção na conexão. Selecione Sim.
Importante
Depois que a operação de habilitação for concluída, os nós da instância de cache serão reinicializados para carregar a nova configuração. Recomendamos que você execute esta operação durante a janela de manutenção ou fora do horário comercial de pico. Essa operação pode levar até 30 minutos.
Configure seu cliente Redis para usar o Microsoft Entra
Como a maioria dos clientes do Cache do Azure para Redis assumem que uma senha e uma chave de acesso são usadas para autenticação, provavelmente será necessário atualizar o fluxo de trabalho do cliente para dar suporte à autenticação usando o Microsoft Entra. Nessa seção, você aprende a configurar seus aplicativos cliente para se conectarem ao Cache do Azure para Redis usando um token Microsoft Entra.
Fluxo de trabalho do cliente Microsoft Entra
Configure seu aplicativo cliente para adquirir um token Microsoft Entra para escopo,
https://redis.azure.com/.default
ouacca5fbb-b7e4-4009-81f1-37e38fd66d78/.default
, usando a Autenticação Microsoft Library (MSAL).Atualize sua lógica de conexão Redis para usar o seguinte
User
ePassword
:User
= ID de Objeto da sua identidade gerenciada ou entidade de serviçoPassword
= Token Microsoft Entra que você adquiriu usando MSAL
Certifique-se de que seu cliente execute um comando Redis AUTH automaticamente antes que seu token Microsoft Entra expire usando:
User
= ID de Objeto da sua identidade gerenciada ou entidade de serviçoPassword
= Microsoft Entra token atualizado periodicamente
Suporte da biblioteca de clientes
A biblioteca Microsoft.Azure.StackExchangeRedis
é uma extensão de StackExchange.Redis
que permite usar o Microsoft Entra para autenticar conexões de um aplicativo cliente 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 exemplo de código demonstra como usar o pacote Microsoft.Azure.StackExchangeRedis
NuGet para se conectar à instância do Cache do Azure para Redis usando o Microsoft Entra.
A tabela a seguir inclui links para exemplos de código. Eles demonstram como se conectar à instância do Cache do Azure para Redis usando um token Microsoft Entra. Várias bibliotecas cliente estão incluídas em vários idiomas.
Biblioteca de clientes | Idioma | Link para o exemplo de código |
---|---|---|
StackExchange.Redis | .NET | Exemplo de código StackExchange.Redis |
go-redis | Go | Exemplo de código go-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 ataques de negação de serviço.
- Certifique-se de que a sua aplicação cliente envia um novo token Microsoft Entra pelo menos três minutos antes da expiração do token para evitar a interrupção da ligação.
- Ao chamar o comando
AUTH
do servidor Redis periodicamente, considere adicionar um atraso aleatório para que os comandosAUTH
sejam distribuídos. Dessa forma, seu servidor Redis não recebe muitos comandosAUTH
ao mesmo tempo.