Orchestration SDK: Activación del autenticador en Android Studio

OneSpan Team,

El SDK de orquestación es una parte integral de OneSpan Mobile Security Suite (MSS). Orquesta los comandos entre los diferentes componentes para asegurar una activación exitosa en la aplicación móvil integrada, habilitando las características de seguridad del Mobile Security Suite en la aplicación móvil del usuario final. Hoy exploraremos el mecanismo de activación de una instancia de autenticación utilizando el SDK de Orchestration en una aplicación de ejemplo.

Requisitos previos:

El proceso de activación

Creación de actividades

El proceso de activación comienza con la creación de una instancia de la clase ActivationActivity. La ejecución de la actividad hará que el método startRegistration se adjunte al método callback onClick como vemos en el siguiente fragmento de código. El método esperará a ser ejecutado después de que se active el evento de clic en el botón de registro en la UI

// Registrar el botón Button registerBtn = (Button) findViewById(R.id.btn_register); registerBtn.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View view) { // Asegúrese de ocultar el teclado InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); startRegistration(); }); 

Creador de Orchestrator y recopilador de datos de dispositivos de clientes (CDDC)

El objeto orchestrationCallback se creará con la instancia actual de la ActivationActivity. La instancia se pasará a la orchestrationCallback como un argumento referenciado con la palabra clave this. Después, se creará un objeto de la clase Builder interna de la clase Orchestrator. El propósito del objeto Builder es crear un objeto Orchestrator siguiendo el concepto del patrón de diseño Builder, como se ve a continuación.

private Orchestrator orchestrator; orchestrationCallback = new SampleOrchestrationCallback(this); Orchestrator.Builder builder = new Orchestrator.Builder(); orchestrator = builder .setDigipassSalt(Constants.SALT_DIGIPASS) .setStorageSalt(Constants.SALT_STORAGE) .setContext(getApplicationContext()) .setDefaultDomain(Constants.DOMAIN) .setCDDCParams(CDDCUtils.getCDDCParams()) .setErrorCallback(orchestrationCallback) .setWarningCallback(orchestrationCallback) .build(); // Set values for the CDDC when available CDDCUtils.configure(orchestrator.getCDDCDataFeeder()); }

Antes de invocar el método de construcción para completar la creación del objeto Orchestrator, los siguientes argumentos deben ser definidos como se muestra en el código anterior:

  • Sales codificadas, que se utilizarán para la diversificación con determinadas características de seguridad (por ejemplo, vinculación de dispositivos, almacenamiento seguro). Estas sales serán derivadas por el Orchestration SDK Client para complicar los ataques de ingeniería inversa.
  • Dominio por defecto: se requiere si el Servidor de Aplicaciones del Cliente integra el Servidor de Autenticación de OneSpan. Si la aplicación móvil del cliente debe gestionar varios dominios, el dominio por defecto puede sobrescribirse dinámicamente para cada acción (por ejemplo, startActivation).
  • Un objeto CDDCParams, que definirá los parámetros para la recogida de datos del dispositivo. Estos parámetros son opcionales.
  • Un objeto OrchestrationErrorCallback, en caso de errores, se utilizará para lanzarlos desde el Cliente SDK de Orchestration a la Aplicación Móvil del Cliente.
  • Un objeto OrchestrationWarningCallback, en caso de advertencias, se utilizará para lanzarlas desde el Cliente de Orchestration SDK a la Aplicación Móvil del Cliente.

Después de que el objeto Orchestrator se construya con éxito, se llamará al método estático configure de la clase CDDCUtils para configurar los valores de los datos CDDC del orchestrator.getCDDataFeeder().

Parámetros de activación

Los parámetros de activación se configurarán dentro del método startRegistration cuando sea llamado. En primer lugar, la instancia actual de la ActivationActivity se establecerá para los activationParams como un ActivationCallback, puesto que ya lo implementa.

Además, el OrchestrationUser y el ActivationPassword se proporcionan como parámetros de activación. Se obtendrán de las vistas de la interfaz de usuario después de que se pida al usuario final que las proporcione en la primera ejecución.

Finalmente, el objeto Orchestrator establecerá el UserAuthenticationCallback pasando todos los argumentos necesarios incluyendo el orchestrationCallback. Luego invoca el método startActivation, pasando los parámetros de activación que se han configurado anteriormente como se muestra a continuación.


private void startRegistration() { // Get input strings userId = userIdView.getText().toString(); String activationPassword = activationPasswordView.getText().toString(); // Create activation configuration OnlineActivationParams activationParams = new OnlineActivationParams(); activationParams.setActivationCallback(this); activationParams.setOrchestrationUser(new OrchestrationUser(userId)); activationParams.setActivationPassword(activationPassword); // Used for custom password instead of default one orchestrator.setUserAuthenticationCallback(orchestrationCallback, new UserAuthenticationCallback.UserAuthentication[] {UserAuthenticationCallback.UserAuthentication.PASSWORD}); // Show progress dialog & start activation progressDialog = UIUtils.displayProgress(this, getString(R.string.dialog_progress_activating)); orchestrationCallback.setProgressDialog(progressDialog); orchestrator.startActivation(activationParams); }

Como la ActivationActivity implementa la interfaz OnlineActivationCallback, debería anular todos los métodos de callback declarados dentro de ella. La interfaz OnlineActivationCallback es utilizada por el cliente del SDK de orquestación para interactuar con la aplicación móvil del cliente durante el proceso de activación. Como se puede ver en el código de ejemplo que se muestra a continuación, se han implementado los siguientes métodos para que la activación y la interacción con la aplicación móvil integrada tengan éxito teniendo en cuenta todos los escenarios:

  • onActivationStepComplete: el método será llamado después de cada paso de activación exitoso. El commandSender enviará el comando producido cada vez al servidor.
  • onActivationSuccess: El método será llamado cuando el proceso de activación tenga éxito.
  • onActivationInputError: El método será llamado cuando se produzca un error en el proceso de activación debido a una entrada incorrecta del usuario. Los posibles errores se enumeran en la clase OrchestrationErrorCodes.
  • onActivationAborted: El método será llamado cuando se cancele el proceso de activación.

A continuación se muestran las definiciones de los métodos tal y como aparecen en la aplicación de ejemplo.

@Override
@Override@Overridepublic void onActivationStepComplete(String command) { // Initialize custom async task for sending an orchestration command to the server CommandSender commandSender = new CommandSender(getApplicationContext(), new CommandSenderCallback() { @Overridepublic void onCommandSendingFailure() { // Hide progress dialog and display error message UIUtils.hideProgress(progressDialog); UIUtils.displayAlert(ActivationActivity.this, getString(R.string.dialog_error_title), getString(R.string.dialog_error_content_sending)); } @Overridepublic void onCommandSendingSuccess(String serverCommand) { // Handle server command orchestrator.execute(serverCommand); } }); // Send command to server commandSender.execute(command); }@Overridepublic void onActivationSuccess() { // Hide progress UIUtils.hideProgress(progre

En el bloque de código anterior, si el proceso de activación no encuentra errores, el método onActivationStepComplete será llamado varias veces, comunicando los comandos necesarios al servidor. A continuación, entregará el control a onActivationSuccess que, a su vez, terminará el proceso de activación y llevará al usuario final a la página de bienvenida de la aplicación móvil. Mientras tanto, si se produce un error, el onActivationInputError lo gestionará. Sin embargo, si la activación fue abortada por cualquier razón, el onActivationAborted se hará cargo y cancelará el proceso de activación de manera adecuada.

En este blog, hemos destacado el proceso de activación de un autentificador a través de la integración del SDK de orquestación. Si tiene alguna pregunta sobre este blog, no dude en ponerse en contacto con nosotros en los foros del portal de la comunidad de OneSpan.

Comunidad de desarrolladores de OneSpan Sign

Comunidad de desarrolladores de OneSpan Sign

¡Únase a la comunidad de desarrolladores de OneSpan Sign! Foros, blogs, documentación, descargas de SDK y más.

Únete hoy

The OneSpan Team is dedicated to delivering the best content to help you secure tomorrow's potential. From blogs to white papers, ebooks, webinars, and more, our content will help you make informed decisions related to cybersecurity and digital agreements.

Popup default