Huellas digitales de dispositivos - Integración con Android

Esta página describe cómo agregar el SDK de Threatmetrix a su proyecto Android.

Para descargar los SDK de Huellas digitales de dispositivos, inicie sesión en vPortal y vaya al Centro de ayuda.

Una vez que haya añadido los archivos de ThreatMetrix a su proyecto, su aplicación generará automáticamente una huella digital del dispositivo durante la inicialización.

Integración

Las siguientes secciones describen cómo agregar los módulos de ThreatMetrix a su proyecto Android. La sección Descripción general describe el proceso y define los archivos que deberá incluir. La sección Guía proporciona instrucciones de paso a paso para agregar los módulos a su proyecto y asegurarse de que su aplicación tiene la configuración necesaria.

Descripción

La integración de Huellas digitales de dispositivos en su aplicación requiere crear nuevos módulos para los siguientes archivos que son proporcionados por Threatmetrix:

  • TMXProfilingConnections-6.2-103.aar: Maneja la transferencia de datos hacia y desde el backend de Threatmetrix.
  • TMXProfiling-6.2-103.aar: Gestiona la generación de perfiles de dispositivos.

Guía

Siga los siguientes pasos para agregar los módulos de ThreatMetrix a su proyecto:

  1. Incluya TMXProfiling-6.2-103.aar y TMXProfilingConnections-6.2-103.aar en su directorio de app/libs.

  2. Configure su compileSdkVersion y targetSdkVersion en 30.

  3. Abra su proyecto en AndroidStudio.

  4. En el menú principal, seleccione File (Archivo) > New (Nuevo) > New Module (Nuevo módulo), como se muestra en la siguiente imagen: New Module (Nuevo módulo)

  5. En la pantalla Create New Module (Crear nuevo módulo), seleccione “Import .JAR/.AAR Package”, como se muestra en la siguiente imagen. A continuación, haga clic en el botón Next (Siguiente). Importar

  6. Ingrese la ruta al archivo TMXProfiling-6.2-103.aar. Luego haga clic en Finish (Terminar).

  7. Repita los pasos 3, 4 y 5 para el módulo TMXProfilingConnections-6.2-103.aar.

  8. Abra su archivo settings.gradle y confirme que TMXProfiling y TMXProfilingConnections aparecen en la parte superior, como se muestra en la siguiente imagen. Agregue los archivos a la lista si aún no están agregados. TMXBehavioralBiometrics.aar y TMXDeviceSecurityHealth.aar no son necesarios para esta integración. Gradle

  9. Agregue las siguientes dos líneas al archivo build.gradle de su aplicación:

    implementation(name: 'TMXProfiling-6.2-103', ext: 'aar')
    implementation(name: 'TMXProfilingConnections-6.2-103', ext: 'aar')
    
  10. Agregue una función llamada mTrustDfenderIntegration y llámela después de recibir su webSessionID. En los siguientes ejemplos, el valor de orgId es el identificador de Vesta de su organización.

    Use el siguiente código para las aplicaciones de Java:

    mTrustDefenderIntegration(getBaseContext(), orgID, webSessionId);
    private void mTrustDefenderIntegration(Context context, String orgId, String webSessionId) {
        String deviceId;
       
        TMXProfilingConnections connections = new TMXProfilingConnections();
        connections.setRetryTimes(2);
       
        /*
         * Clase para obtener orgId y url de FPServer
         */
        final TMXConfig config = new TMXConfig();
        config.setContext(context.getApplicationContext());
        config.setOrgId(orgId);
        config.setFPServer(RestUrl.FP_SERVER);
        /*
         * Configure este método en verdadero si no está usando las API de ubicación en su aplicación.
         * Si está usando las API de ubicación, entonces apruebe el objeto Location en la sección de perfiles.
         */
        config.setRegisterForLocationServices(true);
        config.setProfilingConnections(connections);
        // Inicialización de TrustDefender.
        TMXProfiling.getInstance().init(config);
       
        // Hacer que la identificación del dispositivo identifique únicamente al dispositivo.
        deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
       
        // configurar atributo del dispositivo en una lista.
        Lista<String> deviceAttributesList = new ArrayList&lt;&gt;();
        deviceAttributesList.add(android.os.Build.BRAND);
        deviceAttributesList.add(android.os.Build.MANUFACTURER);
        deviceAttributesList.add(android.os.Build.MODEL);
        deviceAttributesList.add(deviceId);
       
        Logger.e("Device Information", deviceAttributesList.toString());
       
        // Clase para hacer el proceso de perfiles, aquí estamos aprobando la lista de atributos del dispositivo, WebSessionId y la ubicación actual del dispositivo.
        TMXProfilingOptions profilingOptions = new TMXProfilingOptions();
        profilingOptions.setSessionID(webSessionId);
        /*
         * Si su aplicación está usando las API de ubicación, entonces solo apruebe el objeto Location en el siguiente método, de lo contrario
         * haga que este método de la clase Config sea verdadero 'config.setRegisterForLocationServices(true)'.
         */
        // profilingOptions.setLocation(Location object);
        profilingOptions.setCustomAttributes(deviceAttributesList);
       
        // Gestión de resultado de perfiles.
       
        TMXProfiling.getInstance().profile(profilingOptions, new TMXEndNotifier() {
            @Override
            public void complete(TMXProfilingHandle.Result result) {
                if (result != null) {
                    TMXStatusCode profilingResult = result.getStatus();
                    if (profilingResult == TMXStatusCode.TMX_OK) {
                        Logger.e("Profiling Result", profilingResult.toString() + " " + result.getStatus().getDesc());
                        Logger.e("SessionId after Profiling", " " + result.getSessionID());
                        // hacer escaneo de paquetes si el resultado de perfiles es correcto.
                        // TrustDefender.getInstance().doPackageScan();
                        // configuración de perfiles en verdadero.
       
                    } else {
                        // configuración de perfiles en falso.
                        Logger.e("Profiling Result", profilingResult.toString() + " " + result.getStatus().getDesc());
                    }
                }
            }
        });
    }
    

    Use el siguiente código para las aplicaciones de Kotlin:

    mTrustDefenderIntegration(context, orgID, webSessionId)
    private fun mTrustDefenderIntegration(context: Context, orgId: String, webSessionId: String) {
        val deviceId: String
        val connections = TMXProfilingConnections()
        connections.setRetryTimes(2)
        val FP_SERVER = "h.online-metrix.net"
       
        /*
         * Clase para obtener orgId y url de FPServer
         */
        val config = TMXConfig()
        config.setContext(context.applicationContext)
        config.setOrgId(orgId)
        config.setFPServer(FP_SERVER)
        /*
         * Configure este método en verdadero si no está usando las API de ubicación en su aplicación.
         * Si está usando las API de ubicación, entonces apruebe el objeto Location en la sección de perfiles.
         */config.setRegisterForLocationServices(true)
        config.setProfilingConnections(connections)
        // Inicialización de TrustDefender.
        TMXProfiling.getInstance().init(config)
       
        // Hacer que la identificación del dispositivo identifique únicamente al dispositivo.
        deviceId = Settings.Secure.getString(context.contentResolver, Settings.Secure.ANDROID_ID)
       
        // configurar atributo del dispositivo en una lista.
        val deviceAttributesList: MutableList<String> = ArrayList()
        deviceAttributesList.add(Build.BRAND)
        deviceAttributesList.add(Build.MANUFACTURER)
        deviceAttributesList.add(Build.MODEL)
        deviceAttributesList.add(deviceId)
        Log.d("Device Information", deviceAttributesList.toString())
       
        // Clase para hacer el proceso de perfiles, aquí estamos aprobando la lista de atributos del dispositivo, WebSessionId y la ubicación actual del dispositivo.
        val profilingOptions = TMXProfilingOptions()
        profilingOptions.setSessionID(webSessionId)
        /*
         * Si su aplicación está usando las API de ubicación, entonces solo apruebe el objeto Location en el siguiente método, de lo contrario
         * haga que este método de la clase Config sea verdadero 'config.setRegisterForLocationServices(true)'.
         */
        // profilingOptions.setLocation(Location object);
        profilingOptions.setCustomAttributes(deviceAttributesList)
       
        // Gestión de resultado de perfiles.
        TMXProfiling.getInstance().profile(
            profilingOptions
        ) { result -&gt;
            if (result != null) {
                val profilingResult = result.status
                if (profilingResult == TMXStatusCode.TMX_OK) {
                    Log.d(
                        "Profiling Result",
                        profilingResult.toString() + " " + result.status.desc
                    )
                    Log.d("After Profiling", " " + result.sessionID)
                    // hacer escaneo de paquetes si el resultado de perfiles es correcto.
                    // TrustDefender.getInstance().doPackageScan();
                    // configuración de perfiles en verdadero.
                } else {
                    // configuración de perfiles en falso.
                    Log.d(
                        "Profiling Result",
                        profilingResult.toString() + " " + result.status.desc
                    )
                }
            }
        }
    }
    
  11. Sincronice su aplicación.

  12. Abra su archivo AndroidManifest.xml y agregue los permisos de INTERNET a su aplicación, si aún no están añadidos. La siguiente imagen muestra el AndroidManifest.xml con los permisos de INTERNET agregados: Manifiesto