Descripción general de la biometría de AndroidX.Autenticación biométrica móvil … | Autor Sifat Ul Haque | Septiembre de 2021
La autenticación biométrica en dispositivos móviles existe desde hace varios años y ha sido adoptada en gran medida por los fabricantes y usuarios de dispositivos. Es probable que todos los usuarios de teléfonos inteligentes ya tengan alguna experiencia en autenticación biométrica. Es principalmente utilizado por aplicaciones financieras para garantizar la comodidad y seguridad de los usuarios. En este artículo, quiero describir como desarrollador cómo podemos integrar fácilmente esta poderosa API biométrica de AndroidX en nuestra aplicación de Android y aprovecharla al máximo.
huella dactilarUna generaciónGerente Se introduce la clase Android 6.0 (Nivel de API 23) Esto solo coordinará el acceso al hardware de huellas dactilares. Sin embargo, no tiene ninguna interfaz de usuario, por lo que los desarrolladores deben implementar una implementación personalizada y específica del dispositivo para la autenticación biométrica. Desarrollar una interfaz de usuario personalizada nunca ha sido una tarea fácil, y estar encima del sensor de pantalla hace la vida más difícil.
Después de recibir comentarios del desarrollador, Android 9 (API nivel 28) Introdujo una estrategia estandarizada de interfaz de usuario de huellas dactilares. además, Recordatorio biométrico Se introducen más sensores, no solo huellas dactilares. Esto no solo proporciona a los desarrolladores un conjunto de API que pueden personalizar sin esfuerzo para mostrar una interfaz de usuario consistente y familiar a los usuarios, sino que también oculta la complejidad de los diversos hardware biométricos disponibles en los dispositivos de comunicación. Esto también beneficia a los OEM porque ahora pueden personalizar estas API para implementar su propio estilo e introducir nuevas tecnologías biométricas sin preocuparse por la adaptabilidad del desarrollador.
En Android 10 (Nivel de API 29) Marco de Android y equipo de seguridad mejorado AndroidX Biblioteca biométrica Aún más, esto permite que todos los dispositivos que ejecutan Android 6.0 (API nivel 23) o superior utilicen todos los comportamientos biométricos de Android 10. Además de admitir la autenticación biométrica múltiple, también introdujeron BiometricManager, que permite a los desarrolladores verificar si el dispositivo admite la autenticación biométrica a través de una única API.
Como se mencionó anteriormente, AndroidX Biometric se introdujo en Android 10 y siempre ha brindado soporte para la autenticación biométrica Volver a API 23 Y solo acceda a las credenciales del dispositivo, como contraseña, PIN, modo, amplía el soporte De API 21.
¡Ahora es la parte divertida! La autenticación biométrica se puede integrar en 5 sencillos pasos:
Paso 1: agregar dependencias de Gradle
Agregue las siguientes dependencias en el archivo gradle de nivel de aplicación
implementation "androidx.biometric:biometric:1.1.0"
Paso 2: compruebe si el dispositivo admite la autenticación biométrica
La biblioteca biométrica proporciona BiometricManager para verificar si el dispositivo del usuario admite datos biométricos antes de realizar cualquier autenticación. De lo contrario, puede mostrar un mensaje fácil de usar que indique que el dispositivo no admite la autenticación biométrica.
biometricManager.canAuthenticate(int)
esta Entero valor representa el tipo de autenticación que desea. Hay 3 tipos de autenticadores para elegir:
- BIOMETRIC_WEAK Utilizado para autenticación no cifrada
- BIOMETRIC_STRONG Se utiliza para la autenticación basada en cifrado
- DEVICE_CREDENTIAL Para credenciales no biométricas
Podemos combinar estos Autenticadores así BIOMETRIC_WEAK | DEVICE_CREDENTIAL
Pero no todas las API no admiten todas las combinaciones, por ejemplo: DEVICE_CREDENTIAL No se admite por separado antes de API 30 BIOMETRIC_STRONG | DEVICE_CREDENTIAL API 28–29 no compatible
Paso 3: use el objeto PromptInfo para crear la interfaz de usuario
El objeto PromptInfo contiene los metadatos y la configuración de nuestro BiometricPrompt.Podemos personalizar nuestras indicaciones a través de métodos. setTitle, setSubtitle, setDescription con Establecer texto de botón negativo. con setAllowedAuthenticators, Podemos especificar si permitimos las credenciales del dispositivo (PIN, patrón o contraseña) como respaldo y pasar setConfirmationRequiredPodemos habilitar o deshabilitar la confirmación explícita de métodos de autenticación implícitos (como rostro e iris). Puede ser adecuado para escenarios en los que desee volver a confirmar con el usuario antes de iniciar el proceso, como realizar transacciones de capital.
Sin embargo, la visualización de esta confirmación explícita depende del dispositivo, por lo que incluso si la confirmación explícita se establece en verdadera de la siguiente manera, la confirmación explícita puede ignorarse en algunos dispositivos. setConfirmationRequired método.
Paso 4: crear una instancia de BiometricPrompt
AndroidX BiometricPrompt hace todo el trabajo pesado por ti. Obtiene metadatos de la interfaz de usuario, muestra un mensaje de autenticación al usuario y devuelve el resultado de la autenticación como una devolución de llamada. Requiere 4 componentes para funcionar:
- Una actividad o un fragmento, que se utiliza para proporcionar un fragmentManager que se utiliza para mostrar el cuadro de diálogo de autenticación.
- Objeto PromptInfo que contiene metadatos de la interfaz de usuario
- Define el ejecutor en el que se ejecuta esta devolución de llamada.Si queremos ejecutar nuestra devolución de llamada en el hilo de la interfaz de usuario, podemos usar el ejecutor principal ContextCompat.getMainExecutor () método.
- Un AuthenticationCallback a través del cual obtenemos nuestros resultados de autenticación. AuthenticationCallback contiene 3 métodos que podemos cubrir: La autenticación es exitosa, Se llamará en caso de autenticación exitosa, Autenticación fallida, Se llama cuando no se reconoce el dato biométrico (por ejemplo, porque se coloca el dedo incorrecto en el sensor de huellas dactilares), y Error de autenticación, Que se activa cuando se produce un error irrecuperable, como cuando el usuario cancela el proceso de autenticación o cuando no hay registro biométrico en el dispositivo. Diferente a, La autenticación es exitosa con onAuthenticationError, onAuthenticationFailed No es una devolución de llamada de terminal, lo que significa que puede esperar recibir varias devoluciones de llamada en este método.
Paso 5: solicitar a los usuarios que se autentiquen
Finalmente, muéstrele al usuario un mensaje biométrico y pídale que se autentique.
biometricPrompt.authenticate(promptInfo)
Puede cancelar este mensaje de las siguientes formas
biometricPrompt.cancelAuthentication()
Si su aplicación requiere que los usuarios utilicen datos biométricos sólidos para la autenticación o si necesita realizar operaciones de cifrado en KeyStore, debe utilizar authenticate(PromptInfo, CryptoObject)
en lugar de.
El poder de la biblioteca biométrica de AndroidX radica en cómo extrae todas las complejidades de comunicarse con diferentes tipos de sensores de autenticación biométrica (por ejemplo: huellas dactilares, rostro e iris) y proporciona API simples para que los desarrolladores y los OEM las personalicen. Sin embargo, a partir de ahora, no es posible detectar qué sensor biométrico tiene el dispositivo a través de esta biblioteca.Por lo tanto, es posible que deba utilizar texto genérico para mostrar mensajes al usuario, como Biometría En lugar de mostrar cosas más específicas como Huella digital, reconocimiento facial.
Espero haberte ayudado a aprender algo nuevo hoy. ¡feliz aprendizaje!