Skip to main content

Integração com domínio (AD LDAP)

Visão geral

A aplicação MD2 Interactive Intelligence permite que a autenticação e autorização sejade usuários sejam realizadas através deda integração com um controlador de domínio Active DiretoryDirectory (LDAP). 

ParaDurante o processo de autenticação, a aplicação consulta o servidor LDAP para validar as credenciais do usuário (login e senha). Após a validação, ocorre a etapa de autorização, na qual são obtidos os grupos aos quais o usuário pertence dentro do domínio corporativo.

Esses grupos são então mapeados internamente para perfis de acesso (roles) definidos na aplicação. Esse mapeamento é configurável, permitindo que cada grupo do domínio écorresponda possível configurara um perfildeterminado (role)papel nadentro do sistema.

Assim, quando um usuário interage com a aplicação.o Dessavia forma,interface usuáriosweb, relacionadosa aoscamada gruposde temautenticação identifica seu login, consulta o LDAP para verificar sua identidade e, em seguida, atribui dinamicamente os perfis de acessoautorização correspondentes.

Para integrações através do MS Teams, essa consulta ao sistema.LDAP é mais frequente, ocorrendo a cada interação/mensagem do usuário. Para otimizar esse processo, que pode envolver múltiplas consultas ao LDAP em um curto intervalo de tempo, o sistema implementa um mecanismo de cache em memória com tempo de vida configurável (TTL). Esse cache reduz a necessidade de consultas repetidas ao controlador de domínio e melhora significativamente o desempenho em cenários de alta interação.

 

Funcionamento do cache

A aplicação permite a configuração de um mecanismo de cache em memória para otimizar o desempenho das operações de autenticação e autorização de usuários provenientes do controlador de domínio LDAP, para interações que ocorrem via MS Teams. Esse mecanismo visa reduzir a latência das consultas ao diretório corporativo, diminuir a carga sobre o servidor LDAP e aumentar a responsividade das rotinas de validação de acesso.

 

1. Origem dos dados

As informações armazenadas no cache são obtidas por meio de consultas ao controlador de domínio LDAP durante a operação de resolução de grupos e permissões (autorização). Após a primeira consulta bem-sucedida, os dados retornados são mantidos em memória por um tempo determinado, evitando a necessidade de repetição da chamada LDAP até o término do período configurado.

2. Estrutura interna
  • O cache é inteiramente residente em memória (RAM);

  • Não há persistência em disco;

  • Cada entrada no cache é identificada por uma chave única, normalmente derivada do identificador de usuário (ex.: login, e-mail, DN);

  • O valor armazenado contém as informações relevantes de autenticação e/ou autorização (por exemplo, DN, grupos, permissões, atributos personalizados).

3. Tempo de vida (TTL)

O Tempo de Vida (TTL – Time To Live) de cada entrada define o período máximo durante o qual a informação armazenada é considerada válida. Após o vencimento do TTL, a entrada é automaticamente expirada e removida do cache, forçando uma nova consulta ao LDAP na próxima solicitação correspondente.

 

Configuração

O valor do TTL é parametrizado no arquivo ".env", que contém as configurações globais do ambiente da aplicação.

Exemplo:

# Tempo de vida do cache LDAP (em minutos)
CACHE_LDAP_MAX_TIME=5
Observações:
  • O valor deve ser informado em minutos;

  • Em ambientes de alta disponibilidade, recomenda-se um valor entre 1 e 30 minutos, balanceando desempenho e atualização de dados;

  • Alterações neste parâmetro exigem reinicialização da aplicação para surtirem efeito.

 

Comportamento em Tempo de Execução

Situação Comportamento do cache
Primeira mensagem de um usuário Consulta o LDAP, armazena os dados em memória, e define o TTL.
Nova mensagem dentro do TTL Retorna os dados diretamente do cache, sem nova consulta LDAP.
Expiração do TTL A entrada é removida, e a próxima solicitação força uma nova consulta LDAP.
Reinício da aplicação Todo o cache é destruído; o mecanismo recomeça vazio e é reconstituído sob demanda.

 

Considerações

  1. Persistência volátil:
    O cache é apenas em memória, todas as informações são perdidas em caso de reinício da aplicação (manual ou inesperado).

  2. Dados dinâmicos de permissão:
    Alterações imediatas no LDAP (ex.: inclusão/remoção de usuários em grupos) só serão refletidas após a expiração do TTL ou reinício do serviço.