Računalniki Windows Internet

1c avtorizacija ob vhodu v mobilno aplikacijo. Klicanje delovanja spletnega strežnika

, PHP, Sistemi sporočanja

Z veseljem predstavljamo storitev skupnosti PushAuth ki vašim strankam omogoča prijavo s sporočili PUSH na svoji mobilni napravi!



Ta ideja ni nova in mnoga podjetja to tehnologijo že uporabljajo v svojih aplikacijah. Vse je videti dovolj preprosto, dokler ne upoštevate vprašanj: varnost, upravljanje naprav in odjemalcev, združljivost in udobno delo.

Kako je nastala ideja?

Uporabljamo veliko storitev: e -pošto, družabna omrežja, CRM sisteme, sisteme za nadzor dostopa, banke strank itd. Za vsako od storitev, kot je pravilno, za dostop morate uporabiti prijava / e -pošta in geslo... Že lahko sklepamo, da:

  1. Skoraj vsi imamo e -poštni naslov.
  2. V večini primerov so gesla povsod enaka. (Predvidevali bomo, da ne uporabljamo storitev tretjih oseb, na primer 1 geslo in druge)

Na podlagi dveh točk sem hotel:

  1. Za avtorizacijo uporabite ta e -poštni naslov.
  2. Gesla sploh ne uporabljajte.

Kaj je iz tega nastalo?

Za registracijo smo v mobilnih aplikacijah gesla sploh ne uporabljajte... Da, drugega gesla si ni treba zapomniti. Za registracijo / avtorizacijo v mobilni aplikaciji je dovolj, da vnesete samo e -poštni naslov, ki bo prejel pismo s povezavo za potrditev dejanja. Po naslednjem vnosu e -pošte boste samodejno vstopili v aplikacijo brez registracije.

Kakšne so vrste pooblastil?

Trenutno sta na voljo dve glavni vrsti zahtev za avtorizacijo:

  1. Potisno vprašanje za avtorizacijo, pri kateri mora stranka dati odgovor: da ali ne. Za to metodo je storitev na voljo usmerjanje, o tem malo spodaj.
  2. Koda za varno potiskanje, ki ga lastnik storitve pošlje sam mobilno aplikacijo odjemalca, ki uporablja storitev PushAuth.
  3. QR pooblastilo, ki vam omogoča skeniranje kode z odjemalsko mobilno aplikacijo in prenos avtorizacije. Ta metodaže v fazi zaprtega testiranja z mobilnimi aplikacijami in bo na voljo tudi v bližnji prihodnosti.

Mobilne aplikacije

  • Za pošiljanje sporočil PUSH v sistemu Android in iOS uporabljamo FireBase Cloud Messaging. Vsi podatki, preneseni iz mobilne aplikacije na strežnik PushAuth, so podpisani z osebnimi zasebnimi ključi HMAC SHA-256.
  • Mobilna aplikacija je dodatno zaščitena s kodo PIN (geslo TouchID), ki poveča raven varnosti pred nepooblaščenim dostopom.
  • Načrtujemo razvoj SDK -ja, ki vam bo omogočal uporabo funkcionalnosti API -ja v mobilnih aplikacijah.
  • Odjemalci imajo lahko hkrati 10 naprav, na katere lahko prejemajo zahteve PUSH. Odgovarjanje na eni od naprav, na drugih napravah, odgovori na Push se prezrejo. Ko odgovarjate na eno, nameravamo skriti sporočila Push na drugih napravah.


Potisno vprašanje



Koda za varno potiskanje


Prijave so že na voljo:

Backend


Lastnikom storitev so na voljo podrobni statistični podatki o pooblastilih njihovih strank. Za vsako storitev lahko ustvarite ločeno aplikacijo in spremljate njeno uporabo. Poleg tega lahko konfigurirate spletne kljuke, ki bodo pošiljale avtorizacijske podatke:

  • QR kode
  • Potisne zahteve
  • TimeOut odzivov strank

Kje ga lahko uporabite?

CRM

Začnimo let domišljije z IT storitvami, na primer z istimi CRM sistemi, kjer je treba potrditi dejanje zaposlenega. Na primer, zahvaljujoč storitvi usmerjanje, je mogoče narediti tako, da je za podpis dokumenta potrebna potrditev vodstva. Tako je celotna slika videti tako:

  1. Zaposleni začne dejanje in prejme zahtevo PUSH ter se odzove Da.
  2. Njegov neposredni nadrejeni prejme zahtevo PUSH in se odzove Da.
  3. Vodja, ki stoji zgoraj, prejme zahtevo PUSH in se odzove Da.
  4. Rezultat vseh dejanj bo Da

Če na neki stopnji kdo odgovori Ne, potem naslednja vzhodna povezava ne bo prejela zahteve PUSH, splošni rezultat zahtev pa bo odgovor Ne


Zgoraj smo opisali delovanje storitve usmerjanje s prednostjo. Toda to storitev je mogoče uporabljati brez prednostne naloge. To pomeni, da bodo vsi členi v verigi (zaposleni) prejeli zahtevo PUSH hkrati. In le če bodo vsi odgovorili pozitivno, bo šele potem celoten rezultat poizvedbe pozitiven.

Spletna stran

Dvofaktorska ali preprosta enofaktorska avtorizacija na spletnem mestu lahko poenostavi ali zaščiti dostop do notranjih virov. Na primer za dostop do skrbniške spletne plošče WordPress, ko omogočite dostop do svojega izvajalca / razvijalca in ga želite strogo nadzorovati z zahtevami za potrditev potiskanja.

OS

Ali uporabljate dostop SSH / telnet? Ali pa želite prejeti zahtevo za avtorizacijo, ko odprete pokrov prenosnika? Potem bo ta storitev popolna.

Inženiring in oprema

Dostop do objektov (sef, dvigalo, okret, alarm) lahko dodatno izvedete v industrijskem obsegu z uporabo mobilne aplikacije.

Varnost


To je najpomembnejše vprašanje v tej storitvi. Vredno je biti pozoren na stvari, kot je izmenjava podatkov med uporabniškimi storitvami<-->Strežnik PushAuth<-->Odjemalska aplikacija.
Vsi podatki se prenašajo prek HTTPS (TLS) s podpisom HMAC, algoritmom SHA-256. Vsak odjemalec in uporabnik storitve ima svoj par javnega in zasebnega ključa. Javni ključ je v našem primeru potreben za identifikacijo v skupni shrambi omrežja in ga je mogoče poslati v čistem besedilu. Zasebni ključ se prenaša na varen način. V primeru mobilne aplikacije se vsi ključi prenašajo samo prek APN / GCM. Tako zagotavljamo dodatno zaščito na ravni certifikatov teh storitev.

Prej ali slej ima razvijalec mobilnih aplikacij željo, da vsakega uporabnika nekako loči - ustvari mu osebni profil, mu da možnost, da aplikacijo prenese na nov telefon brez izgube vsebine ali preprosto pošiljanja prilagojenih oglasov.

Uvod

Osnova vsake prilagoditve je lasten račun za vsakega uporabnika. A človek je tako urejen, da si malo ljudi želi izgubljati čas z dolgočasno registracijo - uporabniki že imajo Instagram, Twitter in Facebook, v njihovih glavah pa morda ni dovolj prostora za nove račune. Za primer sploh ni treba iti daleč - poglejte v svoje srce :). Predstavljajte si, da ste uporabnik - za enega od vas Google Play uporabnih aplikacij je na ducate, vendar se verjetno ne želite prijaviti v vsako od njih.

Tako se je pojavila tehnologija OAuth - mehanizem za pooblastitev uporabnika na virih tretjih oseb z uporabo zaupanja vredne tretje osebe. Ta storitev je postala izjemno priljubljena: Instagram, Facebook in številni drugi veliki projekti zdaj svojim uporabnikom omogočajo hitro prijavo v vir tretjih oseb. Pridružite se vam tudi vi: tudi v majhnem projektu je danes smiselno implementirati OAuth - uporabniki so tega mehanizma že vajeni.

Dober programer, za razliko od mlajšega, vsaj na splošno razume, kaj počne, zato pred izvedbo API -ja analizirajmo, kako vse to deluje.

Upoštevajte, da je prišel OAuth mobilne naprave iz spleta, zato so vam informacije o tem, kako deluje tak mehanizem za pooblastitev, tudi če ste daleč od Jave in Androida, lahko koristne.

OAuth naprava

S prihodom tehnologije OAuth se je algoritem registracije za nov vir za uporabnika dramatično spremenil. Zdaj vam ni treba zapomniti naslednjih poverilnic, lahko pa vstopite na spletno mesto z nekaj kliki z uporabo svoje račun eno izmed družabnih omrežij.

Predstavljajmo si majhno aplikacijo z imenom App, kjer si uporabnik resnično želi ustvariti račun. Nima želje, da bi si omislil novo uporabniško ime in geslo, vendar obstaja stran v določenem socialno omrežje zato se odloči prijaviti v aplikacijo s svojim računom s klikom na znano ikono. S tem se začne postopek avtorizacije, v katerega je vključenih presenetljivo veliko strank, čeprav se navzven vse dogaja, kot da je znotraj aplikacije. Celoten postopek lahko razdelimo na šest korakov.

Tako deluje. Shema je precej poenostavljena in želim vas opozoriti na temeljno lastnost OAuth: to tehnologijo ne overja uporabnik. OAuth ne odgovarja za veljavnost para "prijava - geslo", še bolj pa za dejstvo, da te podatke vnese uporabnik! Celoten proces vključuje samo pooblastilo- to pomeni, da je aplikaciji podeljena pravica do izvajanja dejanj z uporabniškimi podatki, shranjenimi na strežniku tretje osebe.

Hkrati je tudi tu prisotno preverjanje pristnosti in se pojavlja na stopnjah 1–3, vendar nam nevidno nadaljuje z uporabo protokola OpenID, vgrajenega v OAuth. Ta protokol izvaja malo kriptografske magije, katere opis bo zahteval več takih člankov, zato se je danes ne bomo dotikali.

Izvajanje

Teoretičnega dela je konec, začnimo Android Studio... OAuth je zdaj zelo priljubljen, na spletnem mestu projekta je naštetih več kot deset velikih projektov, ki podpirajo to tehnologijo. Kot ste morda uganili, je splošno načelo delovanja v vsakem primeru enako, le imena razredov in naslovi certifikacijskih centrov se razlikujejo.

Nadaljevanje je na voljo samo udeležencem

Možnost 1. Pridružite se skupnosti "spletno mesto" in preberite vse gradivo na spletnem mestu

Članstvo v skupnosti v določenem obdobju vam bo odprlo dostop do VSEH materialov hekerjev, povečalo vaš osebni kumulativni popust in vam omogočilo kopičenje profesionalne ocene Xakep!

Ponujamo vam majhen pregled, ki bo, upamo, zanimiv za oblikovalce, razvijalce in predvsem vodje izdelkov. Povedali vam bomo, kdaj je bolje prikazati obrazec za avtorizacijo, kako ga prikazati, kako skrajšati čas polnjenja uporabnika, na kaj ne smemo pozabiti pri prijavi prek družabnih omrežij in kako je lažje avtorizirati prek telefona.

Tako kot seks: kasneje, bolje

Ali uporabnika prisilite, da se prijavi ali registrira v vaši aplikaciji takoj, ko jo je naložil in prvič odprl? To pomeni, da povečate možnosti, da bo aplikacija takoj v košarici. To potrjujejo statistični podatki, zato je naš prvi nasvet: dovoljenje položite do trenutka, ko ga resnično potrebujete. To je lahko oddaja naročila ali ustvarjanje komentarja. ...

Glavni načini vstopa v aplikacijo, ki se danes pogosto uporabljajo, so prijava + geslo, družabna omrežja, telefon + koda iz SMS -a. Podrobneje preučimo prvo od teh metod.

Prijava + geslo

Če mora uporabnik vnesti osebne podatke, je naša naloga, da mu olajšamo ta postopek.

Namigi za vnosna polja

V enostavnih oblikah, na primer, če uporabljamo običajne vnose za prijavo in geslo, lahko imena polj razporedimo po ogradah, kar je uporabniku povsem očitno. V bolj zapleteni obliki, kjer obstajajo omejitve pri vnosu podatkov, moramo uporabiti nalepke in nadomestne znake, na primer razlago dolžine gesla. Oznake in nadomestne znake je bolje postaviti nad polje za vnos, tako da bo uporabniku kadar koli jasno, kaj izpolnjuje in kako naj to stori.

V mobilnih aplikacijah ni najboljša praksa postavljanje oznak na isto vrstico kot polje za vnos. To požira uporaben vodoravni prostor. Na primer obrazec za registracijo iPhone Lamoda.

Dva kakovostna članka na to temo: Mejniki na poljih obrazcev so škodljivi, Uporabnost mobilnih obrazcev: Nikoli ne uporabljajte vrstnih nalepk.

Samodejno dokončanje

Dokončanje priljubljenih domen. Knjižnica iOS HotelTonight pospeši vnos e -pošte na podlagi priljubljenih e -poštnih domen. V sistemu Android lahko enako storite ročno. Vse to prijetno pospeši vnos e-pošte.

Dokončanje priljubljenih poštnih domen

Samodejno dokončanje e-pošte za Google Račune. Aplikacija za Android lahko dobi seznam Googlovih računov v napravi in ​​uporabniku predlaga samodejno dokončanje. To na primer počneta Evernote in Instagram. Lahko ravnate drugače: samodejno izpolnite polje za vnos z enim od e -poštne naslove... Ker ima večina uporabnikov en Google Račun, obstaja velika verjetnost, da ga bomo uredili. To počneta Facebook in Twitter. iOS ne omogoča dostopa do e-pošte uporabnika, zato takega samodokončanja ni mogoče izvesti.

Samodejno dokončanje pošte za Googlove račune v Evernote

Ime za samodokončanje. Na strani strežnika ali v aplikaciji lahko shranite bazo priljubljenih imen in uporabniku ponudite samodejno dokončanje. V sistemu Android lahko spet pomaga Google+. Toda to je še vedno dvoumen način - navsezadnje vnos imena traja nekaj sekund in vsako samodejno dokončanje do neke mere odvrne uporabnika.

Samodejno dokončanje prej uporabljene prijave med avtorizacijo. Če aplikacija ne preklaplja med računi, kot v uradnem Twitterju ali Gmailu, je pri prijavi koristno samodejno dokončati prej uporabljena e-poštna sporočila / prijave. Na primer, Instagram prikazuje zadnjo uporabljeno prijavo. Vendar ta metoda ni primerna za finančne aplikacije, saj je pri njih pomembna varnost. Če se je uporabnik odjavil iz aplikacije, potem nihče ne sme vedeti, katero prijavo je uporabil.

Samodejno zaznavanje ♀ ♂. Aplikacije lahko določijo spol glede na vneseno ime. Storitev genderize.io vsebuje bazo podatkov z 200.000 imeni, 79 državami in 89 jeziki. 100.000 zahtevkov na mesec stane 9 USD. Za obe platformi obstaja SDK. V sistemu Android lahko poskusite pridobiti spol Google račun+. Žal ga uporabnik ne prilepi vedno, v Rusiji pa se G + na splošno malo uporablja.

Samodejno izpolnjevanje naslova pospeši vnos v obrazce za odjavo, včasih je takšno polje v obrazcu za registracijo. Obstaja dober pregled nad storitvami, ki rešujejo težavo.

Gesla

Geslo je dvakrat težko vnesti v aplikacijo. Dovolj je, da to storite enkrat, in če je bil vnos opravljen z napako, bi moral uporabnik imeti možnost spremeniti / obnoviti geslo.

Geslo je običajno skrito, ko ga vnesete s pikami. Gumb »pokaži geslo« je uporaben - še posebej je pomemben na zaslonu za registracijo, razen če uporabnika dvakrat vnesemo geslo. To je zanimivo izvedeno v športnih sledilcih Runtastic: prikaže se geslo, pritisne se gumb "oko".

Obnovitev gesla ni primarna naloga. Večina najboljših aplikacij za to pošlje uporabnika na spletno stran. Obnovitev ni nujno ločen zaslon, ki se odpre v brskalniku, lahko ga izvedete na zaslonu za prijavo s preprostimi animacijami. Odlični primeri: Airbnb, Tumblr, Runtastic.

Tumblr iOS obnovitev gesla

Preverjanje polj, tipkovnice in ponudbe

Pomembno je preveriti pravilnost izpolnjevanja polj v sami prijavi. Preverjanje na strani strežnika traja nekaj časa in moti uporabnika. To pravilo velja tudi za preverjanje razpoložljivih prijav / e-pošte, ki bi morale delovati sproti. Dobri primeri so - Glasba Yandex, Twitter.

Za vse različni tipi polja, je pomembno, da uporabite ustrezne vrste tipkovnic: iOS, Android. Če uporabnik vnese pošto, mora biti na tipkovnici znak @, številke za vnos številke itd.

Veš, da ponudbe nihče ne bere. Mislim, da je potrditveno polje dogovora z njim odveč - odvrača uporabnika od vsebine. Dovolj je, da postavite besedilo "z registracijo, se strinjate s politiko zasebnosti in pogoji storitve", pri čemer označite želene povezave.

Družbena omrežje

To je najpreprostejši način za prijavo uporabnika: ni mu treba ročno vnesti prijave in gesla. Gumbe za družabne medije je smiselno razvrstiti po pogostosti uporabe po platformi in državi. Google+ je bolj primeren za Android, večina uporabnikov v Rusiji ima VK itd. To počne Foursquare v sistemu Android.

Na tehnološki strani lahko za izvajanje prijave uporabite univerzalne knjižnice oAuth ali uradne SDK -je za družabne medije. Uradni SDK imajo pomembno prednost: dovoljujejo prek nameščene aplikacije bodisi prek uporabniških računov v sistemske nastavitve... Če se uporabnik prijavi prek družabnega omrežja, je najverjetneje nameščena ustrezna aplikacija.

Kako delujejo uradni SDK -ji

Telefonska številka in koda za preverjanje

V sistemu Android lahko samodejno dokončate številko s kartice SIM, vendar to ne deluje v vseh napravah, zato morate v kodi upoštevati možne napake... V praksi nisem našel aplikacij, ki bi to omogočale, vendar je uporaba te metode povsem sprejemljiva.

Po vnosu in pošiljanju številke mora uporabnik vnesti kodo iz SMS -a. Aplikacija za Android lahko to stori samodejno. To tehniko uporabljajo Viber, Telegram, Rocketbank. Pomembno je le, da uporabniku razložite, da bo SMS kmalu prispel, le počakati morate.

Številke tkanine. Twitter ima brezplačno rešitev za avtorizacijo prek telefonska številka... To je prehod SMS + mobilni in spletni SDK. Videz vmesnik v določenem okviru je mogoče prilagoditi. To je najpreprostejša rešitev.

Številke tkanine

Zaključek

Tu sem poskušal orisati vse misli, ki sem jih pred kratkim oblikoval o prijavi v aplikacijo in delu z obrazci. Ta objava je nekakšen kontrolni seznam, upam, da vam bo koristen. Če imate kakršna koli vprašanja, napišite: [zaščiteno po e -pošti]