Skip to main content

Integração SSO

Visão Geral

A aplicação MD2 Interactive Intelligence permite que a autenticação e autorização de usuários sejam realizadas por meio de Single Sign-On (SSO) utilizando o Microsoft Azure, mais especificamente o serviço de identidade Microsoft Entra ID (antigo Azure Active Directory).

Durante o processo de autenticação, o usuário é redirecionado para o provedor de identidade da Microsoft, onde realiza o login utilizando suas credenciais corporativas. Após a autenticação bem-sucedida, a aplicação recebe um token de segurança (ID Token / Access Token) no padrão OAuth 2.0 / OpenID Connect, contendo as informações de identidade do usuário.

Na etapa de autorização, a aplicação extrai do token os grupos, roles ou claims associados ao usuário no diretório corporativo através da comunicação com o Microsoft Graph. Essas informações são então mapeadas internamente para os perfis de acesso (roles) definidos na aplicação.

Esse mapeamento é configurável, permitindo associar grupos do Microsoft Entra ID a perfis específicos do sistema, como, por exemplo:

  • Administrador do sistema
  • Administrador de pessoas
  • Administrador de IA
  • Chat

Quando o usuário acessa a aplicação via interface web, o fluxo de autenticação ocorre de forma transparente (SSO), sem necessidade de novo login, desde que já exista uma sessão válida junto ao provedor de identidade. A aplicação valida o token recebido e atribui dinamicamente os perfis de autorização com base nas informações contidas nas claims.

Nas integrações com o Microsoft Teams, esse processo é realizado utilizando o contexto de autenticação já existente do usuário na plataforma, permitindo uma experiência contínua e integrada. Dependendo do fluxo de interação, pode haver a necessidade de validação ou renovação dos tokens junto ao provedor de identidade.

Para otimizar o desempenho e reduzir chamadas repetidas ao serviço de identidade, a aplicação pode utilizar mecanismos de cache de tokens e claims, com tempo de vida configurável (TTL), respeitando sempre as políticas de segurança e expiração definidas pelo provedor.

Essa abordagem reduz a latência nas requisições, melhora a escalabilidade da solução e garante uma experiência mais fluida em cenários de alta interação.