Este projeto tem como intuito ser um servidor FIDO que siga os padrões definidos pelo Open Finance Brasil para a Jornada sem Redirecionamento.
Esta aplicação é uma implementação do fido2-lib com as customizações necessárias para atender aos critérios definidos pelo Open Finance Brasil para atendimento a Jornada sem Redirecionamento.
Fiz um video de demonstração de um setup completo (auth-server, api's de pagamento, cliente) para caso esteja querendo testar de ponta a ponta. Você pode ver o video clicando aqui
Node >= 16
Instale as dependências
npm install
Execute o projeto
npm run start
Após subir o serviço, ele está aguardando as requisições em https://localhost:4100.
A porta (4100) pode ser alterada através do arquivo .env.
Os endpoints disponíveis estão documentados aqui.
- Adicionar alternativas ao banco de dados (atualmente só suporta banco em memória "quick-lru")
- Adicionar método DELETE para o fido-registration
- Adicionar o retorno 404 nos métodos que busca o enrollmentID para casos onde o mesmo não existe mais
- Atrelar as autenticações ao consentID e não ao enrollmentID para não ter sobrescrita de autenticações (colisões)
- Essa alteração deve ser realizada no método fido-sign-options e fido-sign
- Validar a utilização de userHandle no fido-sign-options
- Verificar se todos os dados que precisam ser trafegados estão em formato correto (base64url)
- Ex: postFidoRegistrationOptions -> attestationOpts.user.id deve estar em base64url ou string
- Verificar se rp.id retornado em alguns métodos deve ser de fato a CN informada na requisição, considerando situações de instituições onde o CN não é uma URL (Android & iOS)