iOS 8: Integrering Touch ID

iOS 8: Integrering Touch ID
72
Del
24
Del
Dette Cyber ​​mandag Envato Tuts + kursene vil bli redusert til bare $ 3. Ikke gå glipp av.

I september 2013 Apple avduket den nyeste iPhone med en rekke maskinvareforbedringer. Det mest nyskapende funksjon av iPhone 5s var en tynn metal band rundt hjem-knappen, en fingeravtrykksensor som heter Touch ID. Utviklere klatret å vite om API. Et år på og iOS 8 introduserer et nytt rammeverk som gir utviklere muligheten til å bruke fingeravtrykkssensoren.

Lokal autentisering
rammeverket gir metoder for å be en bruker til å godkjenne. Du kan bruke dette som en login til app eller bruke den bare for å beskytte sensitive data i et program. I denne opplæringen vil jeg forklare de tilgjengelige alternativene for deg, hvilke data du kan få fra enheten, og vi vil også bygge en prøve app.

Denne opplæringen krever Xcode 6 for å opprette prosjektet, og du ' ll trenger en enhet med berørings ID for å teste prøven app som vi vil lage.

1. Trykk ID

Touch ID henviser til fingeravtrykksensor innebygd i hjem-knappen på iPhone 5s. Den ble lagt til for å oppmuntre til bruk av passord ved å gjøre det enklere for brukerne å godkjenne. Du kan konfigurere hver enhet med maksimalt fem fingeravtrykk. Inntil nå har det blitt brukt til å låse opp enheten og til å foreta kjøp i iTunes Store, App Store, og iBooks Store. Før vi se hvordan du kan bruke den i programmene dine, her er en rask oversikt over selve sensoren.

Touch ID sensor er i stand til å skanne fingrene med en oppløsning på 500 piksler per tomme, slik at det å sette hver utskrifts i en av tre kategorier, bue, spinnehjul, eller sløyfe. Sensoren er designet for å være virkelig praktisk, kan du skanne fingeren i ønsket retning, og det vil avgjøre en kamp med noen eksisterende fingeravtrykk uavhengig av originalretning.

Apple hevder at oddsen for en falsk positiv for en gitt fingeravtrykk er en i 50 000, noe som er mye bedre enn oddsen for å gjette en 4-sifret pIN-kode på en av 10.000. De nevner ikke at det er mulig skal skje via hjelp av PIN-kode for tider når du ikke er i stand til å bruke fingeravtrykk, for eksempel når du er all rynkete etter bading.

Hvis du har tenkt å bruke berørings ID, så er det viktig at du også vurdere situasjoner der brukerne ikke kan bruke fingeren som et middel til å godkjenne. Fordi du ikke er i stand til å kontrollere mot enhetens pin-kode som Apple gjør det, kan det være en god idé å ha brukere lage et passord i appen.

2. Sikkerhetsaspekter

Den største bekymringen med fingeravtrykksensoren er at brukerne personvern er fundamentalt brutt. Hvis passordet er avslørt, kan du endre det til noe nytt og en ondsinnet person ville ikke lenger være i stand til å bruke den til å få tilgang til dine data. Hvis fingeravtrykk eller Apples matematisk representasjon av det, er utsatt, kan du ikke endre det ganske så enkelt.

Lokal autentisering
rammeverk håndterer alle de tunge løftene verifisere brukere. Når du arbeider med Touch ID, er det viktig å vite at det avslører ingen detaljer om brukeren og ingen data overføres fra enheten. Imidlertid kan utviklere bruke rammeverk for å sjekke om en bruker har lov til å bruke programmet.

Hvis du er kjent med OAuth-spesifikasjonen, kan du se likheter i måten autentisering håndteres, spør du en tredje part for å verifisere identiteten til en bruker, hvis du stoler på tredjepart, kan du bruke deres svar i stedet for å be om legitimasjon direkte fra brukeren.

3. LAContext

I hjertet av den lokale Authentication rammeverket er LAContext klasse. Utviklere kan bruke en forekomst av LAContext å vurdere et sikkerhetspolitikk. I skrivende stund er det bare én politikk. Den kontrollerer ved hjelp av Touch ID sensor, at personen godkjennings er enheten eieren. I fremtiden kan det være andre sikkerhetspolitikk. For eksempel kan Apple introdusere en svakstilte rolle som bare er i stand til å få tilgang til visse ressurser.

Hvis rammen ikke er i stand til å godkjenne, det kaster en feil. Det er flere grunner til at en enhet ikke er i stand til å godkjenne.

  • LAErrorTouchIDNotAvailable Enheten har ikke en fingeravtrykksensor.
  • LAErrorPasscodeNotSet Det er ingen passord angitt på enheten, noe som betyr at Touch ID er deaktivert.

    LAErrorTouchIDNotEnrolled det er et passord satt, men enheten er ikke konfigurert med eventuelle fingeravtrykk.

    Hvis en feil blir kastet med noen av de ovennevnte feilkoder, så du trenger å gi noen annen metode for brukere å godkjenne. På dette punktet, kan du ikke stole utelukkende på Touch ID.

    La oss lage en prøve app for å lære hvordan vi kan gjøre bruk av den lokale Authentication rammeverket.

    4. Prosjektoppsett

    Trinn 1

    Åpne Xcode og velg Ny > Prosjekt ...
    fra Fil
    menyen. Velg Enkel visning Application
    fra listen over iOS Søknad
    maler og klikk Neste
    .

    Trinn 2

    Skriv inn et navn for prosjektet, har jeg kalt meg Auth
    . Skriv inn organisasjonens navn, firma identifikator, og klasse prefiks. Velg iPhone
    fra Enheter
    liste klikker Neste
    , og velge hvor du vil lagre prosjektet.

    Trinn 3

    Klikk på ViewController.h Hotell og definere en ny handling, authenticateButtonTapped, noe som vil utløse godkjenningsprosessen. Grensesnittet i ViewController klassen skal se slik ut:
    #import < UIKit /UIKit.h >interface ViewController: UIViewController- (IBAction) authenticateButtonTapped: (id) avsender,end
    Trinn 4

    Åpne Main.storyboard Hotell og dra en Button
    på visningen kontrolleren syn. Endre knappeetiketten til å lese Autentisering
    .

    Trinn 5

    Høyreklikk på knappen for å vise Tilkoblinger Inspector
    . Klikk på pluss til venstre på Touch Up Inside
    hendelsen og velge visningen kontrolleren som inneholder knappen. En annen meny vil vises der du kan velge den handlingen vi erklært et øyeblikk siden.

    5. Godkjenne en bruker:
    Trinn 1

    Bytt til ViewController.m
    å implementere authenticateButtonTapped metoden. På toppen av filen legg til følgende import erklæring for den lokale autentisering rammeverk
    #import. ≪ LocalAuthentication /LocalAuthentication.h >
    Trinn 2

    I authenticateButtonTapped metoden, skaper vi en sammenheng og avgjøre om sammenhengen kan vurdere LAPolicyDeviceOwnerAuthenticationWithBiometrics politikk, ellers viser en feilmelding Anmeldelser - (IBAction) authenticateButtonTapped:. (id) avsender {LAContext * context = [[LAContext Alloc] init]; NSError * error = null; if ([sammenheng canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics feil: & error]) {//godkjenne bruker} else {UIAlertView * alert = [[UIAlertView Alloc] initWithTitle: @ meldingen "Feil": @ ". Enheten kan ikke godkjenne bruker TouchID" delegat: nil cancelButtonTitle: @ "Ok" otherButtonTitles: null]; [Varsling showet]; }}
    Trinn 3

    Hvis LAContext objektet er i stand til å autentisere bruker Touch ID, så prøver vi å verifisere brukerens identitet. Hvis ingen feil er kastet, forteller vi brukeren om de er eier av enheten. Den endelige gjennomføringen av authenticateButtonTapped metoden er vist nedenfor Anmeldelser - (void) authenicateButtonTapped:. (Id) avsender {LAContext * context = [[LAContext Alloc] init]; NSError * error = null; hvis; "Er du eieren av enheten" ([kontekst canEvaluatePolicy:: LAPolicyDeviceOwnerAuthenticationWithBiometrics error & feil]) {[sammenheng evaluatePolicy:: LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason @ Svar: ^ (BOOL suksess, NSError * error) {if (feil) {UIAlertView * alert = [[UIAlertView Alloc] initWithTitle: @ "Feil" budskap: ". Det var et problem å bekrefte identiteten din" @ delegat: nil cancelButtonTitle: @ "Ok" otherButtonTitles: null]; [Varsling showet]; komme tilbake; } If (suksess) {UIAlertView * alert = [[UIAlertView Alloc] initWithTitle: @ meldingen "Suksess": @ "Du er enheten eier" delegat: nil cancelButtonTitle: @ "Ok" otherButtonTitles: null]; [Varsling showet]; } Else {UIAlertView * alert = [[UIAlertView Alloc] initWithTitle: @ "Feil" meldingen: ". Du er ikke den enheten eier" @ delegat: nil cancelButtonTitle: @ "Ok" otherButtonTitles: null]; [Varsling showet]; }}]; } Else {UIAlertView * alert = [[UIAlertView Alloc] initWithTitle: @ "Error" beskjed: @ "Enheten kan ikke godkjenne bruker TouchID." delegat: nil cancelButtonTitle: @ "Ok" otherButtonTitles: null]; [Varsling showet]; }}
    6. Bygg og Kjør

    Bygg og kjøre programmet på en fysisk enhet med en fingeravtrykksensor og trykk på knappen for å godkjenne. Så lenge enheten har Touch ID-støtte, bør du bli bedt om å godkjenne. Hvis du setter fingeren på sensoren, skal programmet fortelle deg om du er eieren av enheten eller ikke.

    Konklusjon

    I denne opplæringen, har vi sett på den lokale autentisering rammeverk introdusert i iOS 8. Ved å kontrollere identiteten til godkjennings bruker, gjør at LAContext klassen brukerne å identifisere seg selv uten å gi sensitive data direkte til applikasjonen.