studio huellas huella example escaner digitales dactilar consumir consume api oauth oauth-2.0 http-basic-authentication

api - huellas - fingerprint android studio



Asegure llamadas de API de terceros en la aplicación móvil (1)

En su caso, su enfoque con OAuth2 es bueno: las aplicaciones móviles (clientes) reciben delegación de los propietarios de los recursos (sus usuarios) para llamar a los recursos protegidos en un servidor de recursos (su API).

Solo tiene información sobre sus clientes porque OAuth2 no está dedicado a la autenticación de sus usuarios sino a la autorización de sus clientes. Los clientes se identifican con una identificación de cliente. En su caso, y si desea saber qué cliente llama a su servidor de recursos, entonces cada cliente debe tener una ID de cliente dedicada. También puede identificarlo utilizando otra información como la dirección IP o un encabezado personalizado en las solicitudes que envía.

Si desea saber quiénes son sus usuarios, debe implementar la extensión de OpenID Connect . Esta extensión funciona sobre un servidor de autorización basado en OAuth2. La autentificación del usuario es realizada por el servidor de autorizaciones. Se emite un token de identificación con información sobre el usuario. El cliente (o la aplicación móvil) no tiene que obtener o almacenar las credenciales del usuario.

Hay un video excelente donde se explican ambos protocolos (especialmente de 4:44 a 11:00).

Tengo una API con el siguiente método:

https://api.example.com/services/dosomething

Proporciono este servicio a tres aplicaciones móviles diferentes, cada una con cientos de usuarios. Cuando un usuario inicia sesión en la aplicación móvil, se debe realizar una llamada a mi API.

Sé que proporcionar a cada una de las tres aplicaciones móviles una clave de API diferente y realizar una autenticación básica HTTP con ella no es segura, ya que la clave de la API se almacenará de forma insegura en el dispositivo y cualquiera puede tomarla y hacer un mal uso de ella.

El enfoque de OAuth2 no funciona, ya que solo tengo información de mis tres clientes, no de sus cientos de usuarios.

¿Cuál es el mejor enfoque para asegurar las llamadas a mi API en dispositivos móviles?