Pular para o conteúdo principal

Identificação facial (1:N Identification) - Rest PKI Core

  • Busca o rosto capturado em uma base de cadastros para descobrir a quem ele pertence.
  • Ao contrário da autenticação, não parte de um usuário conhecido
observação

A identificação facial é um processo computacionalmente custoso, também conhecido como busca 1:N. Dessa forma, pode acontecer que esse recurso não esteja habilitado na instância em que você esteja realizando a integração. Caso tenha interesse em habilitar esse recurso, entre em contato conosco via suporte@lacunasoftware.com para solicitar uma demonstração.

Criação da sessão

Para criar uma sessão de liveness, pode-se utilizar o método StartIdentificationSessionAsync das ClientLibs, passando como parâmetro StartBioIdentificationSessionRequest.

Esse método realiza uma requisição POST para a rota /api/bio/sessions/identification (Swagger).

Parâmetros (BioIdentificationRequest)

ParâmetroObrigatório?TipoDescrição
ReturnUrlCondicional*StringURL para redirecionar o usuário após a biometria. (veja mais detalhes)
TrustedOriginCondicional*StringURL do seu site onde o Widget está incorporado. (veja mais detalhes)
PlatformPreferenceNãoEnumDefine a preferência de plataforma e configuração do QRCode. (veja mais detalhes)
FaceCaptureProviderNãoEnumDefine o provedor de biometria. (veja mais detalhes)
dica

*Você deve informar pelo menos um dos dois parâmetros: Veja a diferença entre ReturnUrl e TrustedOrigin

  • ReturnUrl (para redirecionamento)
  • TrustedOrigin (para widget)

Os parâmetros não obrigatórios podem ser deixados em branco (null) e serão automaticamente preenchidos pelos padrões do sistema.

Exemplo de resposta da requisição:

{
"sessionType": "Identification",
"sessionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sessionUrl": "string"
}

Integração do Frontend

Uma vez que o seu backend obteve a sessionUrl da API, você deve encaminhá-la para o seu frontend. A partir daí, o fluxo segue de acordo com a sua escolha de interface:

  • Fluxo Incorporado (Widget): Sua aplicação passa a URL para o componente Javascript inicializar a captura dentro da sua página.

  • Fluxo de Redirecionamento: Sua aplicação direciona o usuário para o link recebido, onde a captura ocorrerá.

dica

Em caso de dúvidas sobre a implementação de cada modelo, consulte nossa documentação de Fluxos de FrontEnd.


Completando a sessão

Para concluir uma sessão de identificação, pode-se utilizar o método CompleteIdentificationSessionAsync das ClientLibs, passando como parâmetro, passando como parâmetro CompleteBioSessionRequest.

Este método é o ponto final. O ticket pode ser usado apenas uma vez.

dica

Utilize o Complete apenas ao final do processo, enviando o Ticket recebido para validar o resultado e encerrar a sessão.

Exemplo de resposta da requisição:

{
"identifiedSubjectId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"identifiedSubjectIdentifier": "string",
"failure": "CaptureFailed",
"sessionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"success": true,
"resultDataAvailable": true
}

Detalhes dos campos:

  • identifiedSubjectId: Em caso de sucesso, é preenchido com o Id do cadastro da pessoa identificada.
  • identifiedSubjectIdentifier: Em caso de sucesso, é preenchido com o SubjectIdentifier da pessoa identificada.
  • failure: Informa se houve alguma falha ao realizar a sessão, consulte a lista de falhas.
  • sessionId: ID da sessão do RestPKICore.
  • success: Informa se a sessão de cadastro foi bem-sucedida.
  • resultDataAvailable: Se true, indica que você pode buscar as fotos coletadas na sessão.

Failures

EnumDescrição
CaptureFailedA captura da imagem não pôde ser finalizada. Geralmente ocorre por interrupção do usuário.
LivenessFailedO usuário não passou no teste de Prova de Vida. O número de tentativas excedeu o excedeu o limite.
NoMatchNão houve correspondência mínima entre a biometria coletada e as biometrias cadastradas na base.
BadImageA imagem capturada não possui qualidade suficiente para processamento. Pode ser causada por baixa iluminação ou desfoque (blur).

Consultando o status

Você pode consultar o estado atual de uma sessão a qualquer momento utilizando o seu sessionId. Isso é útil para monitorar se o usuário já iniciou ou expirou a sessão antes mesmo de ela ser concluída.

dica

Utilize o GetIdentificationSessionStatusAsync para acompanhar o progresso de uma sessão ativa através do seu SessionId

O resultado da requisição para esse endpoint é exatamente igual ao exemplo de retorno da requisição CompleteIdentificationSessionAsync.