Orchestration SDK - PIN-Änderung Integration

OneSpan Team,

Wenn Sie das Orchestration SDK in Ihre mobile Anwendung integrieren, melden Sie sich für die zahlreichen Funktionen an, die die Sicherheit Ihrer Anwendung erhöhen. Dem Endbenutzer die Möglichkeit zu geben, seine PIN sicher in seiner mobilen App zu ändern, ist eine dieser Funktionen. Im heutigen Blog werden wir die Aktivität "Change PIN" mit einem Beispielcode untersuchen, der durch das Orchestration SDK von OneSpan ermöglicht wird, und die verschiedenen möglichen Abläufe bei der Implementierung des ChangePINCallback.

Voraussetzungen:

Hinweis: Die PIN könnte in der Beispielanwendung als Passwort bezeichnet werden. In diesem Lernprogramm wird in unserem Beispielcode nur die PIN-Terminologie verwendet.

Hinweis: Alle Befehle werden explizit zwischen der TID-Plattform und dem Client-Anwendungsserver über den Endpunkt orchestration-commands/ ausgetauscht und interpretiert.

Ändern des PIN-Verfahrens

Der Endbenutzer stößt den Prozess zur Änderung der alten PIN auf seinem vertrauenswürdigen Gerät von seiner mobilen Anwendung aus an, die das Orchestration SDK integriert. Die mobile Anwendung muss den ChangePINCallback implementieren und seine Methoden außer Kraft setzen, wie wir weiter unten im Detail besprechen werden.

Orchestrator Builder und Client Device Data Collector (CDDC)

Das OrchestrationCallback-Objekt wird mit dem aktuellen Context erstellt, der als Argument an den OrchestrationCallback übergeben wird, der mit dem this-Schlüsselwort referenziert wird. 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.

// Orchestration private Orchestrator orchestrator; private String userIdentifier;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_change_PIN); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); // Get orchestrator instance 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.getCDDCD 

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 dynamisch überschrieben werden (z. B. startActivation.
  • Ein CDDCParams-Objekt, das die Parameter für die Gerätedatenerfassung definiert. Diese Parameter sind optional.
  • Ein OrchestrationErrorCallback-Objekt wird im Falle von Fehlern verwendet, um diese vom Orchestration SDK Client an die Customer Mobile Application zu werfen.
  • Ein OrchestrationWarningCallback-Objekt wird im Falle von Warnungen 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 CDDCUtilsclass aufgerufen, um die Werte für die CDDC-Daten aus dem orchestrator.getCDDCDataFeeder()einzurichten

Ändern der PIN-Parameter

Beim Ändern der PIN werden die Parameter in der Methode onStartChangePIN() gesetzt. Diese Methode nimmt ein View-Objekt als Argument, um dem Endbenutzer eine Meldung anzuzeigen, dass seine Anfrage in Bearbeitung ist. Anschließend legt das Orchestrator-Objekt die Authentifizierungsmethode fest, die für die Änderung der PIN erforderlich ist, und das Tastenfeld wird für die Erfassung der PIN verwendet. Dieses Tastenfeld kann das im Orcherstration-SDK bereitgestellte Standardtastenfeld oder ein vom Kunden entwickeltes benutzerdefiniertes Tastenfeld sein.

Im nächsten Schritt wird das ChangePINParams-Objekt initialisiert. Der OrchestrationUser und die aktuelle ChangePINActivity werden als Parameter zusammen mit dem Index der kryptografischen Anwendung, die zum Signieren der Authentifizierungsanfrage verwendet wird, übergeben. Danach ruft der Orchestrator die Methode startChangePIN() auf und übergibt alle notwendigen Parameter, um die PIN zu ändern.


public void onStartChangePIN(View view) { // Display progress dialog and start PIN changing progressDialog = UIUtils.displayProgress(this, getString(R.string.dialog_progress_change_pwd)); orchestrationCallback.setProgressDialog(progressDialog); // Used for custom PIN instead of default one orchestrator.setUserAuthenticationCallback(orchestrationCallback, new UserAuthenticationCallback.UserAuthentication[]{UserAuthenticationCallback.UserAuthentication.PIN}); // Initializing params ChangePINParams PINParams = new ChangePINParams(); PINParams.setOrchestrationUser(new OrchestrationUser(userIdentifier)); PINParams.setChangePINCallback(ChangePINActivity.this); PINParams.setCryptoAppIndex(CryptoAppIndex.SECOND); orchestrator.startChangePIN(PINParams); }

Um für alle möglichen Szenarien gerüstet zu sein, verlangt das Orchestration SDK von der Client-Anwendung, dass sie alle ChangePINCallback-Methoden überschreibt. Es beginnt mit dem onChangePINStepComplete, das über das CommandSender-Objekt verfügt, um mit der TID-Plattform zu kommunizieren, und es empfängt einen Orchestrierungsbefehl als Parameter, der später an den Server gesendet wird.

Im CommandSender-Objekt gibt es zwei Callback-Methoden, die in diesem Schritt zu definieren sind. Die Funktion onCommandSendingSuccess(), die ausgeführt wird, um bei erfolgreichem Empfang den anstehenden Serverbefehl auf dem Telefon auszuführen. Zusätzlich gibt es die Funktion onCommandSendingFailure(), die im Falle eines Fehlers ausgeführt wird. Nachfolgend finden Sie den Beispielcode für die Methode onChangePINStepComplete.


@Override

public void onChangePINStepComplete(String command) { CommandSender commandSender = new CommandSender(getApplicationContext(), new CommandSenderCallback() { @Overridepublic void onCommandSendingSuccess(String serverCommand) { orchestrator.execute(serverCommand); } @Overridepublic void onCommandSendingFailure() { // Fortschrittsdialog ausblenden und Fehlermeldung anzeigen UIUtils.hideProgress(progressDialog); UIUtils.displayAlert(ChangePINActivity.this, getString(R.string.dialog_error_title), getString(R.string.dialog_error_content_sending)); } }); commandSender.execute(command); }

Die restlichen Methoden des ChangePINCallback sind unten mit ihrer Beschreibung aufgeführt:

  • onChangePINSuccess: wird nach einem erfolgreichen Zurücksetzen der PIN aufgerufen und zeigt dem Endbenutzer die Meldung an, die in der Methode UIUtils.displayAlert() angegeben wurde.
  • onChangePINAborted: wird aufgerufen, wenn die PIN-Änderung abgebrochen wurde und übermittelt die Meldung an den Endbenutzer.
  • onChangePINInputError: wird aufgerufen, wenn während des PIN-Änderungsvorgangs ein Fehler aufgrund einer falschen Benutzereingabe auftritt. Die möglichen Fehler sind in der Klasse OrchestrationErrorCodesaufgelistet.

@Override

public void onChangePINSuccess() { UIUtils.hideProgress(progressDialog); UIUtils.displayAlert(this, getString(R.string.dialog_title_change_PIN), getString(R.string.dialog_content_change_PIN_success)); }@Overridepublic void onChangePINAborted() { UIUtils.hideProgress(progressDialog); UIUtils.displayAlert(this, getString(R.string.dialog_title_change_PIN), getString(R.string.dialog_content_change_PIN_abortion)); }@Overridepublic void onChangePINInputError(PINError error) { UIUtils.hideProgress(progressDialog); UIUtils.displayAlert(this, getString(R.string.dialog_error_title), ErrorUtils.getErrorMessage(this, error.getErrorCode())); }

Damit ist die Anleitung zur Verwendung des Orchestration SKD zur Integration der PIN-Änderungsfunktion in Ihre mobile Anwendung abgeschlossen. Wenn Sie Fragen haben, wenden Sie sich an uns in den OneSpan-Foren.

Orherstration SDK-bezogene Artikel:

 

OneSpan Sign-Entwickler-Community

OneSpan Sign-Entwickler-Community

Treten Sie der OneSpan Sign Developer Community bei! Foren, Blogs, Dokumentationen, SDK-Downloads und mehr.

Tritt heute bei

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