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
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.
Selecione Autenticação no menu Recurso.
No painel de trabalho, selecione (VERSÃO PRÉVIA) Habilitar a Autenticação do Microsoft Entra.
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.
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.
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.
Selecione Configuração de Acesso a Dados (VERSÃO PRÉVIA) no menu de Recursos.
Selecione Adicionar e escolha Novo Usuário do Redis.
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.
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.
Em seguida, selecione Selecionar membros e Selecionar. A seguir selecione Avançar: Revisar + Criar.
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
Configure seu aplicativo cliente para adquirir um token do Microsoft Entra para o 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 do Redis para usar os seguintes
User
ePassword
:User
= ID de Objeto da sua identidade gerenciada ou entidade de serviçoPassword
= Microsoft Entra token adquirido usando a MSAL
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çoPassword
= 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 comandosAUTH
sejam escalonados e o servidor do Redis não receba muitos comandosAUTH
ao mesmo tempo.