Usar o Microsoft Entra para autenticação de cache
O Cache Redis do Azure oferece dois métodos para autenticar sua instância de cache: chaves de acesso e Microsoft Entra.
Embora a autenticação da chave de acesso seja simples, ela vem com um conjunto de desafios relacionados à segurança e ao gerenciamento de senhas. Por outro lado, neste artigo, você aprenderá a usar um token do Microsoft Entra para autenticação de cache.
O Cache Redis do Azure oferece um mecanismo de autenticação sem senha integrando-se ao Microsoft Entra. Essa integração também inclui a funcionalidade de controle de acesso baseada em função fornecida por meio de listas de controle de acesso (ACLs) suportadas no Redis de código aberto.
Para usar a integração ACL, seu aplicativo cliente deve assumir a identidade de uma entidade do Microsoft Entra, como entidade de serviço ou identidade gerenciada, e se conectar ao cache. Neste artigo, você aprenderá a usar sua entidade de serviço ou identidade gerenciada para se conectar ao cache. Você também aprenderá a conceder permissões predefinidas à sua conexão com base no artefato Microsoft Entra usado para a conexão.
Âmbito da disponibilidade
Escalão de serviço | Básico, Standard e Premium | Empresa, Enterprise Flash |
---|---|---|
Disponibilidade | Sim | No |
Pré-requisitos e limitações
- A autenticação Microsoft Entra é suportada para conexões SSL e TLS 1.2 ou superior.
- A autenticação do Microsoft Entra não é suportada no Cache do Azure para instâncias Redis que dependem dos Serviços de Nuvem do Azure.
- A autenticação do Microsoft Entra não é suportada nas camadas Enterprise do Cache do Azure para Redis Enterprise.
- Alguns comandos do Redis estão bloqueados. Para obter uma lista completa de comandos bloqueados, consulte Comandos Redis sem suporte no Cache do Azure para Redis.
Importante
Depois que uma conexão é estabelecida usando um token do Microsoft Entra, os aplicativos cliente devem atualizar periodicamente o token do Microsoft Entra antes de expirar. Em seguida, os aplicativos devem enviar um AUTH
comando para o servidor Redis para evitar interromper as conexões. Para obter mais informações, consulte Configurar seu cliente Redis para usar o Microsoft Entra.
Habilitar a autenticação do Microsoft Entra em seu cache
No portal do Azure, selecione a instância do Cache do Azure para Redis onde 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 Ativar 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 à sua instância de cache.
Uma caixa de diálogo pop-up pergunta se você deseja atualizar sua configuração e informa que leva vários minutos. Selecione Yes (Sim).
Importante
Depois que a operação de habilitação for concluída, os nós na instância de cache serão reinicializados para carregar a nova configuração. Recomendamos que você execute essa operação durante a janela de manutenção ou fora do horário comercial de pico. A operação pode demorar 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.
Desativar a autenticação da chave de acesso no 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, quer usem chaves de acesso ou autenticação do Microsoft Entra. Siga as práticas recomendadas do cliente Redis para implementar mecanismos de repetição adequados para reconectar conexões baseadas no Microsoft Entra, se houver.
Antes de desativar as chaves de acesso:
Verifique se a autenticação do Microsoft Entra está habilitada e se você tem pelo menos um Usuário Redis configurado.
Certifique-se de que todos os aplicativos que se conectam à sua instância de cache alternem para usar a Autenticação do Microsoft Entra.
Certifique-se de que as métricas Clientes Conectados e Clientes Conectados Usando o Token Microsoft Entra tenham os mesmos valores. Se os valores para essas duas métricas não forem os mesmos, isso significa que ainda existem algumas conexões que foram criadas usando chaves de acesso e não o Entra Token.
Considere desabilitar o acesso durante a janela de manutenção agendada para sua instância de cache.
A desativação de chaves de acesso só está disponível para caches de nível Basic, Standard e Premium.
Para caches replicados geograficamente, você deve:
- Desvincule os caches.
- Desativar as chaves de acesso.
- Revincule os caches.
Se você tiver um cache onde as chaves de acesso são usadas e quiser 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 Desativar autenticação de chaves de acesso. Em seguida, selecione Guardar.
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 repetição adequados para reconectar conexões baseadas no Microsoft Entra. Para obter mais informações, consulte Resiliência de conexão.
Usar a configuração de acesso a dados com seu cache
Se você quiser usar uma política de acesso personalizada em vez de Proprietário de Dados Redis, vá para 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.
No portal do Azure, selecione a instância do Cache do Azure para Redis onde você deseja adicionar à configuração de acesso a dados.
No menu Recurso, selecione Configuração de Acesso a Dados.
Selecione Adicionar e, em seguida, selecione Novo Usuário Redis.
Na guia Políticas de Acesso, selecione uma das políticas disponíveis na tabela: Proprietário dos Dados, Colaborador de Dados ou Leitor de Dados. Em seguida, selecione Next: Redis Users.
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, deverá primeiro habilitar a autenticação do Microsoft Entra.
Em seguida, escolha Selecionar membros e escolha Selecionar. Em seguida, selecione Seguinte: Rever + atribuir.
Uma caixa de diálogo pop-up notifica que a atualização é permanente e pode causar um breve erro de conexão. Selecione Yes (Sim).
Importante
Depois que a operação de habilitação for concluída, os nós na instância de cache serão reinicializados para carregar a nova configuração. Recomendamos que você execute essa operação durante a janela de manutenção ou fora do horário comercial de pico. A operação pode demorar até 30 minutos.
Configure seu cliente Redis para usar o Microsoft Entra
Como a maioria dos clientes do Cache do Azure para Redis assume que uma senha e uma chave de acesso são usadas para autenticação, você provavelmente precisará atualizar seu fluxo de trabalho de cliente para dar suporte à autenticação usando o Microsoft Entra. Nesta seção, você aprenderá a configurar seus aplicativos cliente para se conectar ao Cache Redis do Azure 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 Biblioteca de Autenticação da Microsoft (MSAL).Atualize sua lógica de conexão Redis para usar o seguinte
User
ePassword
:User
= ID do 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 do objeto da sua identidade gerenciada ou entidade de serviçoPassword
= Token Microsoft Entra atualizado periodicamente
Suporte à biblioteca do cliente
A biblioteca Microsoft.Azure.StackExchangeRedis
é uma extensão que permite que você use o Microsoft Entra para autenticar conexões de um aplicativo cliente Redis para um Cache do StackExchange.Redis
Azure para Redis. A extensão gerencia o token de autenticação, incluindo a atualização proativa de tokens antes que eles expirem para manter conexões Redis persistentes durante vários dias.
Este exemplo de código demonstra como usar o pacote NuGet para se conectar à sua instância do Cache Redis do Azure usando o Microsoft.Azure.StackExchangeRedis
Microsoft Entra.
A tabela a seguir inclui links para exemplos de código. Eles demonstram como se conectar à sua instância do Cache Redis do Azure usando um token do Microsoft Entra. Várias bibliotecas de clientes estão incluídas em vários idiomas.
Biblioteca de cliente | Idioma | Link para código de exemplo |
---|---|---|
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 de alface |
Redisson | Java | Exemplo de código Redisson |
Ioredis | Node.js | Exemplo de código ioredis |
nó-redis | Node.js | Exemplo de código node-redis |
Práticas recomendadas 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 seu aplicativo cliente envie um novo token do Microsoft Entra pelo menos três minutos antes da expiração do token para evitar a interrupção da conexão.
- Ao chamar o comando do servidor
AUTH
Redis periodicamente, considere adicionar um atraso aleatório para que osAUTH
comandos sejam escalonados. Desta forma, o seu servidor Redis não recebe muitosAUTH
comandos ao mesmo tempo.