Componentes de microsserviços

Uma breve descrição de cada componente de microsserviço que compõe a solução de Identidade Digital Descentralizada.

Componentes da camada de aplicação

Carteira digital

Carteiras digitais são peças chaves para soluções de Identidade Digital Autossoberana, elas não servem apenas para guardarmos de forma segura e confiável as nossas credenciais, chaves privadas e informações, servem também para gerenciarmos que agentes terceiros possam, com o nosso consentimento, acessar as nossas credenciais e respectivos dados, nos fornecendo meios para verificar quem possui tais permissões e para revogar permissões que não queiramos mais ou que não fazem mais sentido. Além disso, Carteiras Digitais são responsáveis por fazer o gerenciamento de nossas credenciais, desde comprovantes de conclusão de cursos, que podem ficar por longo período, até um simples ingresso de cinema ou teatro, que poderiam ser descartados apenas a algumas horas depois de seu uso.

Módulo de autorização

Microsserviço responsável por realizar a identificação e autenticação dos usuários e das aplicações terceiras que se integrem com as APIs da solução de Identidade Digital Descentralizada, para isso, ela implementa protocolos padrão OAuth 2.0, para realizar a autenticação e autorização de aplicações que se integrem com a solução e componente como o OpenID, necessário para identificação e autenticação de usuários administradores e operadores da solução.

Aplicação Web

Componente responsável por disponibilizar, por meio de uma interface gráfica (GUI), as funcionalidades para registro, gerenciamento, controle de agentes emissores e verificadores, assim como para controle e definição de credenciais. É por meio deste componente que os administradores de agentes conseguem configurar um novo agente, definindo se o agente em configuração será um emissor ou um verificador, que tipo de credencial interagirá e também os processos de onboarding, por exemplo.

Aplicação de agentes

Aplicações e sistemas legados de agentes emissores e/ou verificadores que implementem as regras de negócios específicas desses agentes, como por exemplo, as regras para validação biométrica e/ou biográfica para a emissão de uma credencial específica, ou ainda, as regras e validações necessárias para a verificação de credenciais de usuários.

Gerenciador de dados

Componente de Dashboard para verificação de informações de métricas da solução de Identidade Digital Descentralizada. Essas informações podem ser tanto técnicas, como taxa de transações por segundo e saúde dos agentes monitorados, quanto de negócios, por exemplo, quantidade de credenciais emitidas.

API Gateway

Componente responsável por fazer o roteamento das funcionalidades disponíveis para integração com serviços terceiros via protocolo HTTP Rest. É por meio deste componente que as aplicações cliente, incluindo a própria aplicação web, se integram com as funcionalidades disponibilizadas pela solução de Identidade Digital Descentralizada.

Componentes da camada lógica e regras de negócio

Agentes

Microsserviços de agentes para emissores, verificadores e também para os holders que optarem por fazer a custódia de suas credenciais verificáveis na nuvem, ao invés de seus dispositivos móveis pessoais. Essas aplicações interagem diretamente com a carteira digital desses agentes e representam o coração da solução de Identidade Digital Descentralizada, uma vez que é neles que estão desenvolvidas as funcionalidades dos protocolos de IDD, como conexão entre agentes e também emissão, armazenamento e verificação de credenciais.

Definição de credenciais

Microsserviço responsável pelas funcionalidades para registro e manutenção de definição de uma credencial, tais quais:

  • Criação de estrutura de dados (schema) de uma credencial;

  • Versionamento de schema de credencial;

  • Definição da ordem dos atributos da schema de credencial para fins de apresentação;

  • Definição de título (label) internacionalizável para cada atributo de uma credencial;

  • Texto descritivo da finalidade e demais informações da credencial.

Gerenciador de agentes

O componente de gerenciamento de agentes é responsável por, dentre outras coisas, criar automaticamente agentes em uma instância de servidor, orquestrando a criação dele com o Webhook orchestrator, registrando-o numa rede Hyperledger Indy. Além disso, esse serviço também é responsável por interagir com os agentes em nome do holder, em caso de perda de dispositivo ou migração das credenciais. O pool de agentes é responsável pela disponibilização e gerenciamento dos agentes, que conseguem comunicar-se diretamente uns com os outros por meio do protocolo Agent to Agent enquanto sua integração com as aplicações de identidade digital descentralizada ocorre pela camada do componente de Api Gateway.

Orquestrador de gerenciador de agentes

Este microsserviço, por sua vez, é o responsável por orquestrar e controlar uma coleção de gerenciadores de agentes em cluster, sendo assim responsável pelo dimensionamento de alocação de recursos e serviços para os gerenciadores de agentes da solução de Identidade Digital Descentralizada. Sua função, dentre outras coisas, é de realizar o balanceamento de carga entre os gerenciadores de agentes.

Administração SS e SSA

Microsserviço de administração, responsável pelo registro das organizações que utilizam a solução de Identidade Digital Descentralizada e, portanto, responsável também pela “multitenacidade” da solução, ou seja, garantir que as organizações participantes da solução tenha acesso somente às suas informações e agentes de sua alçada, não sendo possível controlar ou visualizar funcionalidades e informações de agentes de outras instituições.

Histórico e logs

Microsserviço responsável pela captação, processamento e armazenamento de histórico e logs da aplicação, em observância com as práticas de Segurança da Informação, assim como com a Lei Geral de Proteção de Dados Pessoais, a LGPD. Além disso, é responsável também pela configuração de log utilizada pela solução, que é dividida em três categorias:

  • Prod: utilizada em produção, onde armazena apenas dados necessários para análise de suporte e operação da solução, sem revelar jamais dados pessoais ou informações da solução, a fim de se garantir a não exposição de possíveis vulnerabilidades da solução;

  • Info: geralmente utilizada em ambientes de homologação, em que se reflete o ambiente de produção, mas com dados fictícios;

  • Debug: utilizado em ambiente de desenvolvimento e testes, sendo repleto de diferentes cenários a fim de oferecer os meios necessário para análise de bugs e validação de implementação de novas funcionalidades.

Métricas e desempenho

Microsserviço responsável por coletar e registrar as métricas de performance da aplicação. Além disso, é também utilizado para a coleta de métricas de mercados, para a análise e geração de dados centrada nos representantes e demais usuários a fim de gerar informações úteis para a evolução do backlog da solução.

Propagador de eventos

Microsserviço responsável por tratar as ações executadas no sistema e dar o correto tratamento para que sejam propagadas, seja como e-mail ou via tópico de webhook, às participantes do ecossistema, assim como o seu devido registro pelo microsserviço Hystory. Portanto, é um componente extremamente importante, cuja principal função é monitorar um Agent cloud e propagar por meio de um barramento de mensageria, como por exemplo, um tópico em Kafka, onde todos os eventos relevantes que ocorram com o agente serão monitorados, por exemplo, solicitações de conexões, emissão de credencial ou solicitação para apresentação de uma credencial verificável.

Orquestrador de propagador de eventos

Para realizar o monitoramento de um agente qualquer, é necessário, primeiro, criar uma configuração para o webhook orquestrator. Essa configuração singular ocorre por questões de conformidade de segurança, uma vez que todos os eventos disparados entre agentes são enviados para o webhook, uma configuração não pode acessar as informações de outro. As interações com a agência, para envio de notificações às aplicações clientes, acontecem nesta camada.

Gerenciador de dados e consentimentos

Componente de microsserviço a ser desenvolvido para controle e gerenciamento dos consentimentos emitidos pelos portadores da Identidade Digital Descentralizada para com os agentes institucionais, sejam eles agentes emissores ou ainda verificadores. Este microsserviço faz-se necessário para atender às exigências das regras de consentimento previstas na Lei Geral de Proteção de Dados Pessoais, a LGPD.

Componentes da camada de integração

Identificação e autenticação

Microsserviço responsável pelas integrações e disponibilização das funcionalidades de autenticação de pessoas físicas –agentes holder– da solução, como por exemplo:

  • Integração com APIs de serviços públicos (e.g.: Data Valid do Serpro) para validação biográfica dos dados inseridos e trafegados no sistema;

  • Integração com soluções de biometria para verificação biométrica dos agentes holders.

Servidor de e-mail

Microsserviço utilizado para contatar o usuário holder da solução via e-mail. Pode ser utilizado, desde enviar um código para duplo fator de autenticação e até para mensagens informativas sobre ofertas de credenciais e solicitação para realização de prova e verificação de credenciais.

Camada de acesso a dados

Componente de microsserviço da camada de acesso aos dados de cadastro das empresas controladoras dos agentes institucionais. Este microsserviço é o responsável por tratar e manter os dados dessas instituições e recebe requisições diretas do microsserviço de Administração. É importante ressaltar que nenhum dado de pessoa física é armazenado e tratado nesta solução, sendo trafegados, portanto, apenas dados de pessoas jurídicas.

Notificador de evento entre agentes

Componente responsável por garantir a entrega de mensagens para as aplicações que se integram com os agentes, por exemplo aplicações móveis que não possuem um endpoint persistente para integração direta. Para isso, essa solução é “multitenant”, ou seja, consegue operar vários agentes de vários proprietários. Além disso, é importante ressaltar que nenhuma chave é trafegada por meio deste componente, devendo o conteúdo das mensagens ser criptografado pelos próprios agentes, que trocam as chaves simétricas utilizadas em tais operações diretamente, por meio de suas conexões criadas pelo protocolo Agent to Agent.

Personalização de fluxos

Microsserviço onde soluções terceiras implementam regras específicas dos agentes verificadores e/ou emissores nos processos desses agentes. O conceito proposto é que as organizações clientes possam desenvolver suas soluções para emissão e verificação da identidade dos usuários e que possam então automatizar processos que atualmente dependam de interação dos usuários ou, ainda, que atividades fora do mundo digital sejam necessárias para a conclusão de determinados processos. Para isso, será necessário que essas aplicações implementem um SDK (Software Development Kit) com uma interface específica e que se registre ao componente de Personalização de fluxos, que passará então a se integrar e enviar as transações realizadas pela solução para essa aplicação personalizada.

Gerenciador de redes

Microsserviço responsável por fazer o gerenciamento das redes de Identidade Digital Descentralizada integradas à solução, podendo oferecer para configuração dos agentes uma rede global pública, como por exemplo, a Sovrin, a rede do CPQD ou até mesmo a criação de uma rede privada.

Camada de dados pessoais – PII

Componente para armazenamento de dados pessoais de holder, sendo, portanto, o componente responsável por armazenar dados pessoais que porventura sejam necessários para o funcionamento da aplicação e consequentemente sendo o microsserviço que implementa as funcionalidades de anonimização e pseudonimização desses dados pessoais, garantia de esquecimento e demais funcionalidades necessárias para aderência às normas, boas práticas e exigências da Lei Geral de Proteção de Dados Pessoais.