Sitemap

Usa biometría en Android con Kotlin

4 min readJan 22, 2024

--

¡Hola amig@! Mi nombre es Kevin Morales y soy desarrollador mobile por más de 7 años. Es media noche, pero no quiero empezar la semana sin dejarte un gran artículo sobre como mejorar la seguridad en tus aplicaciones con biometría usando tu huella dactilar o el reconocimiento facial.

Biometría

Se ha convertido en una herramienta esencial para la autenticación segura en dispositivos móviles, y Android no es la excepción. Mediante Kotlin tendrás acceso a herramientas poderosas para integrar la autenticación biométrica de manera sencilla y segura en tus aplicaciones. A continuación, exploraremos cómo puedes utilizar la biometría en Android para mejorar la seguridad de tus aplicaciones.

¿Por qué la biometría?

La biometría ofrece una capa adicional de seguridad al autenticar a los usuarios de manera única basándose en características físicas. Esto no solo simplifica el proceso de autenticación, sino que también mejora significativamente la seguridad al eliminar la necesidad de contraseñas tradicionales como patrones o códigos numéricos.

Get Kevin Morales’s stories in your inbox

Join Medium for free to get updates from this writer.

Antes de integrar la biometría, asegúrate de tener configurado tu proyecto de Android con las dependencias necesarias. Agrega la siguiente línea a tu archivo build.gradle.

implementation "androidx.biometric:biometric:1.2.0"

Antes de solicitar la autenticación biométrica, es crucial verificar si el dispositivo es compatible. Utiliza la clase BiometricManager para hacer esta verificación.

val biometricManager = BiometricManager.from(context)

if (biometricManager.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) {
// El dispositivo soporta biométrica
// Implementación
return
}
// El dispositivo no soporta biométrica

Mediante la clase BiometricPrompt podrás agregar la implementación del diálogo de autenticación biométrica.

val executor = ContextCompat.getMainExecutor(context)

val biometricPrompt = BiometricPrompt(activity, executor,
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
// Manejar errores de autenticación
}

override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
// Autenticación exitosa
}

override fun onAuthenticationFailed() {
// Autenticación fallida
}
})

val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Autenticación biométrica")
.setSubtitle("Usa tu huella dactilar o rostro")
.setDescription("Coloca tu dedo en el sensor de huellas dactilares o mira a la cámara para autenticarte.")
.setNegativeButtonText("Cancelar")
.build()

biometricPrompt.authenticate(promptInfo)

Puedes personalizar el diálogo biométrico según las necesidades de tu aplicación. Asegúrate de manejar los diferentes eventos, como errores o autenticación exitosa, para proporcionar una experiencia de usuario fluida.

Tipos de biometría

En biometría para Android puedes implementar varios tipos para autenticar a los usuarios de manera segura. A continuación, te describo los tipos de biometría más comunes que puedes utilizar en tu aplicación:

Reconocimiento de huellas dactilares

Es uno de los métodos biométricos más utilizados. Android proporciona soporte incorporado para el reconocimiento de huellas dactilares. Puedes utilizar la API de huellas dactilares para autenticar a los usuarios utilizando su huella dactilar.

Reconocimiento facial

Es otra forma efectiva de autenticación biométrica. Puedes utilizar la cámara del dispositivo para capturar la imagen facial del usuario y autenticarlo.

Reconocimiento de iris

Algunos dispositivos Android también admiten el reconocimiento de iris como método biométrico. Puedes utilizar la API de iris para autenticar a los usuarios mediante el escaneo de sus iris.

Biometría mezclada

En algunos casos, puedes combinar múltiples métodos biométricos para mejorar la seguridad. Por ejemplo, puedes requerir tanto huellas dactilares como reconocimiento facial para autenticar a un usuario. Tienes miles de funcionalidades a tu poder para crear flujos de seguridad.

Biometría basada en voz

Aunque no es tan común como las anteriores, también es posible implementar la autenticación biométrica basada en la voz. Puedes utilizar tecnologías de procesamiento de voz para autenticar a los usuarios por medio de sus características vocales únicas.

Biometría de comportamiento

Algunas aplicaciones también utilizan la biometría de comportamiento, que se basa en el análisis del comportamiento del usuario, como patrones de escritura o gestos táctiles, para autenticar. Muy interesante si necesitas máxima seguridad.

Consideraciones

Es importante que tengas en cuenta estos aspectos antes de incluir la biometría en tu aplicación porque si no será difícil que funcione de manera efectiva.

  • Permisos: asegúrate de tener los permisos necesarios en tu archivo AndroidManifest.xml para utilizar la biometría, como USE_BIOMETRIC.
  • Compatibilidad: verifica la disponibilidad del hardware biométrico en el dispositivo antes de intentar la autenticación.
  • Manejo de errores: implementa un manejo adecuado de errores durante la autenticación biométrica para proporcionar una experiencia de usuario fluida.

Recuerda que la elección del tipo de biometría dependerá de las características de hardware del dispositivo y de las necesidades específicas de tu aplicación.

¡Ahora!

¡Asegura tu aplicación y mejora la experiencia del usuario con la autenticación biométrica!

Conclusión

En resumen, integrar la autenticación biométrica en tus aplicaciones Android no solo mejora la seguridad, sino que también ofrece a los usuarios una experiencia de autenticación más conveniente. Con las herramientas proporcionadas por Kotlin y las API de biometría de Android, puedes garantizar un acceso seguro a tus aplicaciones mientras mantienes la simplicidad para tus usuarios.

Recuerda

Aprende cada día y serás una nueva persona

¡Gracias por leer este artículo, estoy muy emocionado de seguir compartiendo mi conocimiento al mundo entero!

--

--

Kevin Morales
Kevin Morales

Written by Kevin Morales

CEO @Meniuz | Founder @DevLokos | @GDGTsachilas Community Lead | @SpaceXAI Ambassador | @GitKraken Ambassador