Generic selectors
Exact matches only
Search in title
Search in content

Beispiel für Apple’s Touch ID Fingerprint API für Swift und iOS

04.09.2014 / 0 Comments

Swift ist die neue Programmiersprache, die Apple in XCode 6 veröffentlicht hat. Swift kann für Cocoa and Cocoa Touch genutzt werden, auf iOS sowie auf Mac OSX.
Daneben kann Swift parallel zu Objective-C eingesetzt werden. Weitere Informationen zu Swift findet man auf den Entwickler-Seiten von Apple.
Swift soll Entwicklern helfen, sicheren und zuverlässigen Code zu schreiben. Dazu gehören Mechanismen, dass in Swift alle Variablen vor dem ersten Zugriff initialisiert werden, Wertebereiche auf Überläufe geprüft werden, genauso wie automatisches Speicher-Management. Desweiteren ist Swift auf Laufzeit-Geschwindigkeit optimiert und eng mit XCode und XCode Playgrounds verwoben, so dass hier alle Entwickler-Tools und debugger zur Verfügung stehen.

Wir haben vor kurzem die neue Touch ID Fingerprint-Prüfung als biometrisches Anmeldeverfahren in eine Beta-Version unserer SecSign App integriert. Die SecSign ID bietet Nutzern ein sicheres Anmeldeverfahren für Webseiten und Programme, das die Notwendigkeit von Passwörtern beseitigt. Das der SecSign ID zugrunde liegende Prinzip ist eine physische Zwei-Faktor-Authentifizierung (2FA).

Voraussetzung für die Nutzung von Swift und der Touch ID Fingerprint Api für Swift:

  • XCode 6
  • iPhone 5s mit iOS 8

zwei-faktor_Authentifizierung_mit_touchID

Diese Anleitung verdeutlich, wie man die folgenden drei Ziele erreicht:

1. Herausfinden, ob die Touch ID FingerPrint Api zur Verfügung steht

2. Fingerabdruck validieren

3. Fingerabdruck oder die Geräte PIN validieren

Swift Beispiel-Code für Apples Touch ID:

import LocalAuthentication
// Get the local authentication context:
var context = LAContext()
var error : NSError?
// Test if TouchID fingerprint authentication is available on the device and a fingerprint has been enrolled.
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error:&error) {
	// evaluate
	var reason = "Authenticate for server login"
	context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reason, reply: {
		(success: Bool, authenticationError: NSError?) -> Void in
		// check whether evaluation of fingerprint was successful
		if success {
			// fingerprint validation was successful
			println("Fingerprint validated.")
		} else {
			// fingerprint validation failed
			// get the reason for validation failure
			var failureReason = "unable to authenticate user"
			switch error!.code {
				case LAError.AuthenticationFailed.toRaw():
					failureReason = "authentication failed"
				case LAError.UserCancel.toRaw():
					failureReason = "user canceled authentication"
				case LAError.SystemCancel.toRaw():
					failureReason = "system canceled authentication"
				case LAError.PasscodeNotSet.toRaw():
				 	failureReason = "passcode not set"
				case LAError.UserFallback.toRaw():
					failureReason = "user chose password"
				default:
					failureReason = "unable to authenticate user"
			}
			println("Fingerprint validation failed: \(failureReason).");
		}
	})
} else {
	//get more information
	var reason = "Authentication not available"
	switch error!.code {
		case LAError.TouchIDNotAvailable.toRaw():
			error = "Touch ID not available on device"
		case LAError.TouchIDNotEnrolled.toRaw():
			reason = "Touch ID is not enrolled yet"
		case LAError.PasscodeNotSet.toRaw():
			error = "Passcode not set"
		default: error = "Authentication not available"
	}
	println("Error: Touch ID fingerprint authentication is not available: \(reason)");
}

Das war´s!

Eine genauere Beschreibung findet man im Blog ‚Wie können Sie die neue Touch ID Fingerprint API in Ihrer iPhone App verwenden?‘
Dort findet man auch eine nähere Beschreibung über die Integration der Touch ID Fingerprint Api und der Keychain unter iOS.

Über ein Feedback von Ihnen würden wir uns sehr freuen. Um den Code einmal in Aktion zu sehen, schauen Sie sich gerne unser YouTube Demo-Video an, das die weltweit erste Webanmeldung über Zwei-Faktor-Authentifizierung mit der Apple Touch ID zeigt. Wenn Sie sich für iOS 8 Beta als Entwickler eingetragen haben, können Sie sich ebenfalls für unser Betaprogramm eintragen und eine Kopie unserer Betaversion der SecSign ID für iOS erhalten. Natürlich sind Sie auch jederzeit herzlich willkommen, unsere Webseite zu besuchen, um mehr über unsere aktuellen SecSign ID Lösungen zu erfahren und die neueste Version unserer App im iTunes App Store herunterzuladen.

Wenn Sie Ihren Nutzern sichere Anmeldungsmöglichkeiten anbieten möchten (inkl. Fingerabdruck Scan und ohne die Verwendung von angreifbaren passwortbasierten Logins) können Sie unsere kostenlose SecSign ID API verwenden, um unsere mobile Zwei-Faktor-Authentifizierung in Ihre App einzubauen. Ebenso können Sie unsere kostenlosen SecSign ID Plugins zur Integration unserer sicheren Anmeldemethode in Ihre Webseite benutzen.

SecSign 2FA