Segurança e LGPD
Objetivo
Garantir que a integração siga boas práticas de segurança e esteja em conformidade com a LGPD.
Princípios
| Princípio | Aplicação |
|---|---|
| Minimização de dados | O cidadão revela apenas a credencial ECACredential — o campo isOver18 é derivado pelo Verify Service sem expor data de nascimento ou outros dados pessoais |
| Finalidade | Use o resultado apenas para controle de acesso por idade |
| Não armazenamento | Não armazene a credencial do cidadão |
| Transparência | Informe ao usuário o que está sendo verificado |
Checklist de Segurança
INJI Verify Service
Aplicação React
Infraestrutura
onVPProcessed — Segurança
O callback onVPProcessed entrega o resultado diretamente no frontend:
// Frontend
onVPProcessed={(results) => {
const ok = results.some((r) => r.vcStatus === 'SUCCESS');
if (ok) { /* liberar acesso */ }
}}
// Backend (Node/Express)
app.get('/api/verificacao/:transactionId', async (req, res) => {
const { transactionId } = req.params;
const result = await fetch(
`<VERIFY_BASE_URL>/v1/verify/vp-result/${transactionId}`
);
const data = await result.json();
const verified = data.vcResults?.some(r => r.vcStatus === 'SUCCESS') ?? false;
res.json({ verified });
});DID e Keystore
O INJI Verify Service se identifica com um DID Web e assina requisições com um keystore PKCS12.
- O DID (
did:web:seu-dominio.com.br:v1:verify) deve resolver para o seu domínio público - O keystore (
test.p12) é usado para assinar as authorization requests - Em produção, gere um keystore próprio com chave forte
Aviso
O test.p12 incluído no INJI é para desenvolvimento apenas. Gere um keystore próprio para produção.
Consentimento do Usuário
Antes de iniciar a verificação, informe ao usuário:
- O que está sendo verificado (idade >= 18)
- Quem é o verificador (sua organização)
- Que nenhum dado pessoal além de
isOver18é compartilhado - Que o cidadão autoriza ativamente na Carteira Digital
Próximo passo
Veja como levar para Produção e Operação.