Orchestration SDK - PIN-Änderung Integration

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:
- 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.
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 derCDDCUtilsclass
aufgerufen, um die Werte für die CDDC-Daten aus demorchestrator.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 MethodeUIUtils.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 derKlasse OrchestrationErrorCodes
aufgelistet.
@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:
- Orchestration SDK: Authenticator-Aktivierung auf Android Studio
- Callback-Methoden anhand von Beispielen verstehen