Agregando autenticación con huellas digitales en Xamarin Forms

Agregar una autenticación de huella digital para proyectos multiplataforma nunca ha sido tan fácil como con el paquete de NuGet Plugin.Fingerprint.

Pero primero…

Algunas cosas para aclarar acerca de la autenticación biométrica o por huella digital. Estas son limitaciones de implementación por la tecnología en sí y no están introducidas de ninguna manera por la implementación de Xamarin Forms:

  1. No se puede guardar “la huella digital”. Hay dos razones para esto:
    • La lectura y detección de la huella se realiza dentro del hardware que lee la huella.
    • Por ley no se puede, no deberías y de todas formas, no se tiene acceso directo a esta información.
  2. Si tu dispositivo tiene más de una huella digital registrada, no se puede saber qué huella digital fue usada para la autenticación.
  3. Solo puede saber el hecho de que el sensor ha recibido o no una huella digital válida.

Ahora al evento principal

Para comenzar, debes incluir el paquete de NuGet Plugin.Fingerprint en todos los proyectos de la solución.

Ahora tienes que hacer un poco de configuración. No te asustes, solo son tres líneas para Android y un par de líneas para iOS.

En Android:

  • Solicita los permisios adecuados en tu AndroidManifest.xml
  • Configure la Actividad que ejecuta la aplicación para que el complemento pueda mostrar el cuadro de diálogo de solicitud cuando solicite la huella digital. En el repositorio del NuGet, usan el complemento CurrentActivity, pero me di cuenta de que puedes configurarlo dentro de MainActivity usando la palabra clave this

En iOS:

  • Debido a que este paquete funciona tanto para la autenticación facial como para la huella digital, de acuerdo con la documentación de iOS, debes agregar una entrada para NSFaceIDUsageDescription en el archivo info.plist. Si no agregas esta entrada, la librería simplemente no funcionará y tu aplicación podría fallar. Este registro describe para qué usará la identificación de la cara en caso de que use.

Una vez finalizada la configuración, debes llamar al método AuthenticateAsync. Debes pasar el texto que deseas que el usuario vea cuando le pidas que se autentique. El retorno de este método es un valor booleano que indica si la huella dactilar era de un usuario válido o si el usuario canceló el cuadro de diálogo. También devuelve un falso de inmediato si no hay huellas dactilares registradas.

Corriendo un ejemplo en un OnePlus 6

Contenido extra: configuración de sus emuladores y simuladores para la autenticación de huellas dactilares

En el simulador de iOS

  • Asegúrate de “inscribir” o “Enrolar” la identificación táctil o Touch ID.
  • Para enviar una identificación táctil válida o no válida, puedes usar las opciones del menú o los siguientes métodos abreviados de teclado respectivamente Shft+Cmd+M y Shift+Cmd+N
Inscribiendo el Touch ID en un simulador de iPhone 8 plus

En el emulador de Android:

  • Ve a las opciones del emulador y mira la sección de huellas digitales. Desde allí puedes acceder a un número fijo de huellas digitales ya disponible.
  • Procede a registrar cuantas huellas necesites en el dispositivo.
Buscando la sección de gestión de huellas dactilares.
Configurando la huella dactilar. Simplemente toque el botón “Tocar este sensor” en las opciones del emulador cada vez que se le solicite

Y eso es todo por ahora, espero que hayas encontrado el artículo útil. Creo que incluir esto dentro de Xamarin.Essentials sería muy conveniente. Por lo que he investigado, el equipo de Xamarin Essentials tiene planes de agregarlo, pero aún no lo han hecho, así que quizás sea una buena oportunidad para hacer algo al respecto… De todos modos, ojalá tengas un buen día y si te ha gustado este artículo, te aliento a compartirlo en las redes sociales o envíalo por fax a tu papá y a tu mamá, probablemente les encantará, confía en mí.