Orchestration SDK: Authenticator-Aktivierung auf Android Studio

Das Orchestration SDK ist ein integraler Bestandteil der OneSpan Mobile Security Suite (MSS). Es orchestriert die Befehle zwischen den verschiedenen Komponenten, um eine erfolgreiche Aktivierung auf der integrierten mobilen Anwendung zu gewährleisten und die Sicherheitsfunktionen der Mobile Security Suite auf der mobilen Anwendung des Endbenutzers zu aktivieren. Heute werden wir den Aktivierungsmechanismus einer Authenticator-Instanz unter Verwendung des Orchestration SDK an einer Beispielanwendung untersuchen.
Voraussetzungen:
- Android 4.1 oder höher.
- Ein registrierter Benutzer in der Sandbox-Umgebung der OneSpan Intelligent Adaptive Authentication. Hier finden Sie eine vollständige Referenz, wie Sie dies tun können.
- Die Beispielanwendung des MSS Orchestration SDK.
Der Aktivierungsprozess
Aktivität erstellen
Der Aktivierungsvorgang beginnt mit der Erzeugung einer Instanz der Klasse ActivationActivity
. Die Ausführung der Aktivität führt dazu, dass die startRegistration-Methode
an die onClick-Callback-Methode
angehängt wird, wie wir im folgenden Codeschnipsel sehen. Die Methode wartet dann darauf, ausgeführt zu werden, nachdem das Klickereignis auf der Registerschaltfläche auf der Benutzeroberfläche ausgelöst wurde
// Schaltfläche registrieren Button registerBtn = (Button) findViewById(R.id.btn_register); registerBtn.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View view) { // Tastatur ausblenden InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); startRegistration(); });
Orchestrator Builder und Client Device Data Collector (CDDC)
Das OrchestrationCallback-Objekt
wird mit der aktuellen Instanz der ActivationActivity
erstellt. Die Instanz wird als Argument, das mit dem Schlüsselwort this
referenziert wird, an den orchestrationCallback
übergeben. Anschließend wird ein Objekt der inneren Builder-Klasse der Orchestrator-Klasse
erzeugt. Der Zweck des Builder-Objekts besteht darin, ein Orchestrator-Objekt
zu erstellen, das dem Konzept des Builder-Entwurfsmusters folgt, wie unten dargestellt.
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()); }
Bevor Sie die Build-Methode aufrufen, um die Erstellung des Orchestrator-Objekts
abzuschließen, sollten die folgenden Argumente wie im obigen Code gezeigt definiert werden:
- Hardcodierte Salze, die zur Diversifizierung mit bestimmten Sicherheitsmerkmalen (z. B. Gerätebindung, sichere Speicherung) verwendet werden. Diese Salts werden vom Orchestration SDK Client abgeleitet, um Reverse-Engineering-Angriffe zu erschweren.
- Standarddomäne: erforderlich, wenn der Kundenanwendungsserver den OneSpan-Authentifizierungsserver integriert. Wenn die Customer Mobile Application mehrere Domänen verwalten muss, kann die Standarddomäne für jede Aktion (z. B. startActivation) dynamisch überschrieben werden.
- Ein
CDDCParams-Objekt
, das die Parameter für die Gerätedatenerfassung definiert. Diese Parameter sind optional. - Ein
OrchestrationErrorCallback-Objekt
, im Falle von Fehlern wird es verwendet, um diese vom Orchestration SDK Client an die Customer Mobile Application zu werfen. - Ein
OrchestrationWarningCallback-Objekt
, im Falle von Warnungen wird es verwendet, um diese vom Orchestration SDK Client an die Customer Mobile Application zu werfen.
Nachdem das Orchestrator-Objekt
erfolgreich erstellt wurde, wird die statische Methode configure
der Klasse CDDCUtils
aufgerufen, um die Werte für die CDDC-Daten aus dem orchestrator.getCDDCDataFeeder()
einzurichten.
Aktivierungsparameter
Die Aktivierungsparameter werden innerhalb der startRegistration-Methode
konfiguriert, wenn diese aufgerufen wird. Zunächst wird die aktuelle Instanz der ActivationActivity
für die activationParams
als ActivationCallback
gesetzt, da sie diese bereits implementiert.
Außerdem werden der OrchestrationUser
und das ActivationPassword
als Aktivierungsparameter bereitgestellt. Sie werden von den UI-Ansichten abgerufen, nachdem der Endbenutzer bei der ersten Ausführung aufgefordert wird, sie anzugeben.
Schließlich setzt das Orchestrator-Objekt
den UserAuthenticationCallback
und übergibt alle notwendigen Argumente einschließlich des OrchestrationCallback
. Dann ruft es die startActivation-Methode
auf und übergibt die Aktivierungsparameter, die zuvor wie unten gezeigt konfiguriert wurden.
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); }
Da die ActivationActivity
das OnlineActivationCallbackInterface
implementiert, sollte sie alle darin deklarierten Callback-Methoden außer Kraft setzen. Die Schnittstelle OnlineActivationCallback
wird vom Orchestration SDK Client zur Interaktion mit der Customer Mobile Application während des Aktivierungsprozesses verwendet. Wie im Beispielcode unten zu sehen ist, wurden die folgenden Methoden für eine erfolgreiche Aktivierung und Interaktion mit der integrierten mobilen App unter Berücksichtigung aller Szenarien implementiert:
onActivationStepComplete
: Die Methode wird bei jedem erfolgreichen Aktivierungsschritt aufgerufen. DercommandSender
sendet den erzeugten Befehl jedes Mal an den Server.onActivationSuccess
: Die Methode wird aufgerufen, wenn der Aktivierungsvorgang erfolgreich war.onActivationInputError
: Die Methode wird bei einem Fehler im Aktivierungsprozess aufgrund einer falschen Benutzereingabe aufgerufen. Die möglichen Fehler sind in der KlasseOrchestrationErrorCodes
aufgelistet.onActivationAborted
: Die Methode wird bei einem Abbruch des Aktivierungsvorgangs aufgerufen.
Nachfolgend finden Sie die Definitionen der Methoden, wie sie in der Beispiel-App erscheinen.
@Override
@[email protected] 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
Im obigen Codeblock wird die Methode onActivationStepComplete
mehrfach aufgerufen, wenn der Aktivierungsprozess auf null Fehler stößt, wobei die erforderlichen Befehle an den Server übermittelt werden. Dann übergibt es die Kontrolle an onActivationSuccess
, das wiederum den Aktivierungsprozess beendet und den Endbenutzer auf die Willkommensseite der mobilen Anwendung führt. Wenn in der Zwischenzeit ein Fehler aufgetreten ist, wird dieser von onActivationInputError
behandelt. Wenn die Aktivierung jedoch aus irgendeinem Grund abgebrochen wurde, übernimmt onActivationAborted
und bricht den Aktivierungsvorgang ordnungsgemäß ab.
In diesem Blog haben wir den Aktivierungsprozess eines Authentifikators durch die Integration des Orchestration SDK beleuchtet. Wenn Sie Fragen zu diesem Blog haben, können Sie uns gerne in den Foren des OneSpan Community Portalserreichen .