Ir para o conteúdo

Relação entre Tenants e Clientes

Conceitos

  • tenant representa a instância ativa no contexto de autenticação, no formato instance-....
  • cliente representa a entidade de negócio dentro daquela instância (tenant), carregada via WebApi.

Fluxo final

  1. O IDP recebe o tenant selecionado.
  2. O IDP consulta a WebApi em /instance/clientes, enviando tid=<tenant>.
  3. A WebApi retorna os clientes da instância conforme o perfil:
  4. Admin/administrador (ou client interno confiável do IDP): retorna todos os clientes da instância.
  5. Usuário comum: retorna apenas clientes permitidos.
  6. Em caso de falha de integração com a WebApi, o IDP retorna erro e não fornece lista parcial.
  7. O IDP sincroniza os clientes localmente (mapeamento técnico com Guid) para persistir acessos em UserApplicationAccess.
  8. O token emitido pelo IDP contém a claim client_access_permission no formato:
  9. cliente#role (ex.: enfase#administrador).
  10. No frontend:
  11. Usuário com role Admin: dropdown do header e cadastro exibem todos os clientes da instância.
  12. Usuário sem Admin: exibe apenas os clientes presentes em client_access_permission.
  13. client_access_permissions_v2 não é mais utilizado.

Regra consolidada

  • tenant define qual instância está ativa.
  • client_access_permission define quais clientes daquela instância o usuário pode acessar.
  • Exceção: usuário com role Admin enxerga todos os clientes da instância.