Računala Windows Internet

1c autorizacija na ulazu u mobilnu aplikaciju. Pozivanje operacije web poslužitelja

, PHP, Sustavi razmjene poruka

Zadovoljstvo nam je predstaviti uslugu zajednici PushAuth koji vašim klijentima omogućuje prijavu pomoću PUSH poruka na svom mobilnom uređaju!



Ova ideja nije nova i mnoge tvrtke već koriste ovu tehnologiju u svojim aplikacijama. Sve izgleda dovoljno jednostavno dok ne razmotrite pitanja: sigurnost, upravljanje uređajima i klijentima, kompatibilnost i udoban rad.

Kako je nastala ideja?

Koristimo mnogo usluga: e -poštu, društvene mreže, CRM sustave, sustave kontrole pristupa, banke klijenata itd. Za svaku od usluga, kako je ispravno, za pristup morate koristiti prijava / email i lozinka... Već možemo zaključiti sljedeće:

  1. Gotovo svi mi imamo adresu e -pošte.
  2. U većini slučajeva lozinke su svugdje iste. (Pretpostavit ćemo da ne koristimo usluge trećih strana kao što su 1 lozinka i druge)

Na temelju dvije točke htio sam:

  1. Za autorizaciju upotrijebite ovu e -poštu.
  2. Ne koristite lozinke uopće.

Što je iz ovoga proizašlo?

U mobilnim smo aplikacijama za registraciju uopće ne koristite lozinke... Da, nema potrebe pamtiti drugu lozinku. Za registraciju / autorizaciju u mobilnoj aplikaciji dovoljno je unijeti samo e -mail koji će primiti pismo s vezom za potvrdu radnje. Nakon sljedećeg unosa e -pošte, automatski ćete ući u aplikaciju bez registracije.

Koje su vrste ovlaštenja?

Trenutno postoje dvije glavne vrste zahtjeva za autorizaciju:

  1. Potisno pitanje za autorizaciju, u kojoj klijent treba dati odgovor: Da ili Ne. Za ovu metodu usluga je dostupna usmjeravanje, o čemu malo ispod.
  2. Sigurnosni kod, koju sam vlasnik usluge šalje mobilnu aplikaciju klijent koji koristi uslugu PushAuth.
  3. QR autorizacija, koji vam omogućuje skeniranje koda pomoću mobilne aplikacije klijenta i prolazak autorizacije. Ova metoda već u fazi zatvorenog testiranja s mobilnim aplikacijama, a također će postati dostupna u bliskoj budućnosti.

Mobilne aplikacije

  • Koristimo FireBase Cloud Messaging za isporuku PUSH poruka na Androidu i iOS -u. Svi podaci preneseni iz mobilne aplikacije na PushAuth poslužitelj potpisani su osobnim privatnim ključevima HMAC SHA-256.
  • Mobilna aplikacija dodatno je zaštićena PIN-kodom (TouchID-lozinkom), što povećava razinu sigurnosti od neovlaštenog pristupa.
  • Planiramo razviti SDK koji će vam omogućiti korištenje API funkcije u mobilnim aplikacijama.
  • Klijenti mogu imati 10 uređaja odjednom, na koje se mogu primati PUSH zahtjevi. Odgovaranje na jednom od uređaja, na drugim uređajima, odgovori na Push zanemaruju se. Planiramo sakriti Push poruke na drugim uređajima kada odgovarate na jedan.


Potisno pitanje



Sigurnosni kod


Prijave su već dostupne:

Pozadina


Vlasnicima usluga dostupni su detaljni statistički podaci o autorizacijskim statusima njihovih klijenata. Za svaku uslugu možete stvoriti zasebnu aplikaciju i pratiti njezinu upotrebu. Osim toga, možete konfigurirati web udice koje će slati podatke o autorizaciji:

  • QR kodovi
  • Push zahtjevi
  • TimeOut odgovora kupaca

Gdje ga možete koristiti?

CRM

Započnimo let mašte s IT uslugama, na primjer, istim CRM sustavima, gdje postoji potreba za potvrđivanjem radnje zaposlenika. Na primjer, zahvaljujući usluzi usmjeravanje, moguće je učiniti tako da je za potpisivanje dokumenta potrebna potvrda uprave. Dakle, cijela slika izgleda ovako:

  1. Zaposlenik pokreće radnju i prima PUSH zahtjev te odgovara Da.
  2. Njegov neposredni nadređeni prima zahtjev PUSH i odgovara Da.
  3. Nadređeni vođa prima zahtjev PUSH i odgovara Da.
  4. Rezultat svih radnji bit će Da

Ako se u nekoj fazi netko javi Ne, tada sljedeća uzvodna veza neće primiti PUSH zahtjev, a ukupni rezultat zahtjeva bit će odgovor Ne


Gore smo opisali rad usluge usmjeravanje s prioritetom. No, ova se usluga može koristiti bez prioriteta. To znači da će sve karike u lancu (zaposlenici) istovremeno primiti PUSH zahtjev. I samo ako svi odgovore pozitivno, tek tada će ukupni rezultat upita biti pozitivan.

Web stranica

Dvofaktorska ili jednostavna jednofaktorska autorizacija na web mjestu može pojednostaviti ili osigurati pristup internim resursima. Na primjer, za pristup web stranici administratorske ploče WordPress, kada dajete pristup svom izvođaču / razvojnom programeru i želite to strogo kontrolirati putem zahtjeva za autorizaciju putem Push-a.

OS

Koristite li SSH / telnet pristup? Ili želite primiti zahtjev za autorizaciju kada otvorite poklopac prijenosnog računala? Tada će ova usluga biti savršena.

Inženjering i oprema

Dodatno možete implementirati pristup objektima (sef, dizalo, okretnice, alarm) u industrijskim razmjerima pomoću mobilne aplikacije.

Sigurnost


Ovo je najvažnije pitanje u ovoj službi. Vrijedi obratiti pozornost na stvari poput razmjene podataka između Korisničke usluge<-->PushAuth poslužitelj<-->Aplikacija klijenta.
Svi se podaci prenose putem HTTPS-a (TLS), s potpisom HMAC-a, SHA-256 algoritmom. Svaki klijent i korisnik usluge ima svoj par javnih i privatnih ključeva. Javni ključ u našem slučaju neophodan je za identifikaciju u zajedničkoj mrežnoj pohrani i može se prenijeti u čistom tekstu. Privatni ključ prenosi se na siguran način. U slučaju mobilne aplikacije, svi se ključevi prenose samo putem APN / GCM -a. Stoga pružamo dodatnu zaštitu na razini certifikata ovih usluga.

Prije ili kasnije, programer mobilnih aplikacija ima želju nekako razlikovati svakog korisnika - stvoriti mu osobni profil, dati mu priliku da prenese aplikaciju na novi telefon bez gubitka sadržaja ili jednostavnog slanja prilagođenih oglasa.

Uvod

Temelj svake prilagodbe je vlastiti račun za svakog korisnika. No, osoba je tako uređena da malo ljudi želi gubiti vrijeme na dosadnu registraciju - korisnici već imaju Instagram, Twitter i Facebook, a možda neće imati dovoljno prostora u glavi za nove račune. Čak nema potrebe ići daleko za primjerom - pogledajte u svoje srce :). Zamislite da ste korisnik - za jednog od vas Google play postoji na desetke korisnih aplikacija, ali vjerojatno nemate želju registrirati se u svakoj od njih.

Tako se pojavila OAuth tehnologija - mehanizam za autorizaciju korisnika na resursima trećih strana pomoću pouzdane treće strane. Ova je usluga postala iznimno popularna: Instagram, Facebook i mnogi drugi veliki projekti sada omogućuju svojim korisnicima da se brzo prijave na izvor treće strane. Pridružite se i vi: čak i u malom projektu danas ima smisla implementirati OAuth - korisnici su već navikli na ovaj mehanizam.

Dobar programer, za razliku od mlađeg, razumije barem općenito ono što radi, pa prije nego što implementiramo API, analiziramo kako sve to radi.

Imajte na umu da je OAuth ušao Mobilni uredaji s weba, stoga, čak i ako ste daleko od Jave i Androida, informacije o tome kako takav mehanizam autorizacije funkcionira mogu vam biti korisne.

OAuth uređaj

Pojavom OAuth tehnologije, algoritam registracije za novi resurs za korisnika dramatično se promijenio. Sada ne morate zapamtiti sljedeće vjerodajnice, ali možete ući na web mjesto s nekoliko klikova koristeći svoj račun jednoj od društvenih mreža.

Zamislimo malu aplikaciju pod nazivom App, gdje korisnik doista želi stvoriti račun za sebe. Nema želju smisliti novo korisničko ime i lozinku, ali postoji stranica u određenom društvena mreža pa se odlučuje prijaviti u aplikaciju sa svojim računom klikom na poznatu ikonu. Time započinje postupak autorizacije, u koji je uključeno iznenađujuće mnogo strana, iako se izvana sve događa kao da se nalazi unutar aplikacije. Cijeli se proces može podijeliti u šest koraka.

Ovako to funkcionira. Shema je prilično pojednostavljena i želim vam skrenuti pozornost na temeljnu značajku OAuth -a: ovu tehnologiju ne potvrđuje autentičnost korisnik. OAuth ne snosi odgovornost za valjanost para "prijava - lozinka", a još više za činjenicu da te podatke unosi korisnik! Cijeli proces uključuje samo autorizacija- odnosno, aplikaciji se dodjeljuje pravo izvođenja radnji s korisničkim podacima pohranjenim na poslužitelju treće strane.

Istodobno, autentifikacija je također ovdje i događa se u fazama 1–3, ali nam se nevidljivo nastavlja pomoću OpenID protokola ugrađenog u OAuth. Ovaj protokol implementira malo kriptografske magije, čiji će opis zahtijevati nekoliko takvih članaka, pa ga se danas nećemo dotaknuti.

Implementacija

Teoretski dio je gotov, krenimo Android Studio... OAuth je sada vrlo popularan, na web stranici projekta navedeno je više od deset velikih projekata koji podržavaju ovu tehnologiju. Kao što ste mogli pretpostaviti, opći princip rada u svakom je slučaju isti, samo se nazivi klasa i adrese certifikacijskih centara razlikuju.

Nastavak je dostupan samo sudionicima

Opcija 1. Pridružite se zajednici "stranica" da biste pročitali sve materijale na web mjestu

Članstvo u zajednici tijekom navedenog razdoblja otvorit će vam pristup SVIM hakerskim materijalima, povećati vaš osobni kumulativni popust i omogućiti vam da sakupite profesionalni Xakep rezultat!

Nudimo vam mali pregled koji će, nadamo se, biti zanimljiv dizajnerima, programerima i prije svega voditeljima proizvoda. Reći ćemo vam o tome kada je bolje prikazati obrazac za autorizaciju, kako ga prikazati, kako skratiti vrijeme popunjavanja korisnika, što ne treba zaboraviti pri ulasku putem društvenih mreža i kako je lakše izvršiti autorizaciju putem telefon.

Kao u seksu: što kasnije, to bolje

Prisiljavate li korisnika da se prijavi ili registrira u vašoj aplikaciji odmah nakon što ju je preuzeo i otvorio prvi put? To znači da povećavate šanse da se aplikacija odmah nađe u košarici. To potvrđuju i statistike, pa je naš prvi savjet: autorizaciju odložite do trenutka kada je zaista potrebna. To može biti podnošenje narudžbe ili stvaranje komentara. ...

Glavni načini ulaska u aplikaciju, koji se danas široko koriste, su prijava + lozinka, društvene mreže, telefon + kôd iz SMS -a. Ispitajmo detaljnije prvu od ovih metoda.

Prijava + lozinka

Ako korisnik mora unijeti osobne podatke, naš je zadatak olakšati mu ovaj proces.

Savjeti za unos polja

U jednostavnim oblicima, na primjer, ako koristimo uobičajene podatke za prijavu i zaporku, možemo imena polja postaviti u rezervirana mjesta, to je korisniku sasvim očito. U složenijem obliku, gdje postoje ograničenja za unos podataka, moramo koristiti oznake i rezervirano mjesto, na primjer, objašnjenje duljine lozinke. Bolje je postaviti oznake i rezervirana mjesta iznad polja za unos, tako da je korisniku u svakom trenutku jasno što ispunjava i kako to treba učiniti.

U mobilnim aplikacijama nije najbolja praksa postavljanje oznaka na isti redak kao i polje za unos. Time se jede koristan vodoravni prostor. Na primjer, obrazac za registraciju Lamoda iPhone.

Dva kvalitetna članka na tu temu: Mjesta mjesta u poljima obrazaca su štetna, upotrebljivost mobilnih obrazaca: Nikada ne koristite umetnute naljepnice.

Automatsko dovršavanje

Dovršetak popularnih domena. IOS biblioteka HotelTonight ubrzava unos e -pošte na temelju popularnih domena e -pošte. Na Androidu možete isto učiniti ručno. Sve to ugodno ubrzava unos e-pošte.

Dovršetak popularnih domena pošte

Automatsko dovršavanje e-pošte za Google račune. Aplikacija za Android može dobiti popis Google računa na uređaju i korisniku predložiti automatsko dovršavanje. To rade, na primjer, Evernote i Instagram. Možete postupiti drugačije: automatski popunite polje za unos jednim od email adrese... Budući da većina korisnika ima jedan Google račun, dobre su šanse da ćemo to ispraviti. To rade Facebook i Twitter. iOS ne omogućuje pristup e-pošti korisnika, pa se takvo automatsko dovršavanje ne može napraviti.

Automatski dovršava poštu za Google račune u Evernoteu

Naziv za automatsko dovršavanje. Na strani poslužitelja ili u aplikaciji možete spremiti bazu popularnih imena i ponuditi korisniku automatsko dovršavanje. Na Androidu opet može pomoći Google+. No ovo je još uvijek dvosmislen način - uostalom, unos imena traje nekoliko sekundi, a svako automatsko dovršavanje donekle ometa korisnika.

Automatsko dovršavanje prethodno korištene prijave tijekom autorizacije. Ako se aplikacija ne prebacuje između računa, kao na službenim Twitterima ili Gmailu, korisno je prilikom prijave automatski dovršiti prethodno korištene e-poruke / prijave. Na primjer, Instagram prikazuje posljednju korištenu prijavu. Međutim, ova metoda nije prikladna za financijske aplikacije jer je u njima važna sigurnost. Ako se korisnik odjavio iz aplikacije, nitko ne bi trebao znati koju je prijavu koristio.

Automatsko otkrivanje ♀ ♂. Aplikacije mogu odrediti spol na temelju unesenog imena. Usluga genderize.io sadrži bazu podataka od 200.000+ imena, 79 zemalja i 89 jezika. 100.000 zahtjeva mjesečno košta 9 USD. Za obje platforme postoji SDK. Na Androidu možete pokušati dobiti spol Google račun+. Nažalost, korisnik ga ne stavlja uvijek, a u Rusiji se G + općenito malo koristi.

Automatsko popunjavanje adrese ubrzava unos u obrasce za odjavu, ponekad je takvo polje prisutno u obrascu za registraciju. Postoji dobar pregled usluga koje rješavaju problem.

Lozinke

Teško je dvaput unijeti lozinku u aplikaciju. Dovoljno je to učiniti jednom, a ako je unos izvršen s pogreškom, korisnik bi trebao moći promijeniti / oporaviti lozinku.

Uobičajeno je sakriti lozinku kada je unosite točkama. Gumb "prikaži lozinku" koristan je - posebno je važan na zaslonu za registraciju, osim ako od korisnika tražimo dva puta unos lozinke. Ovo je zanimljivo implementirano u Runtastic sportskim trackerima: prikazana je lozinka, pritisnuta tipka "oko".

Oporavak lozinke nije primarni zadatak. Većina vrhunskih aplikacija šalje korisnika na web stranicu da to učini. Oporavak ne mora biti zaseban zaslon koji se otvara u pregledniku, može se provesti na zaslonu za prijavu pomoću jednostavnih animacija. Sjajni primjeri: Airbnb, Tumblr, Runtastic.

Tumblr iOS Password Recovery

Provjera polja, tipkovnice i ponude

Važno je provjeriti ispravnost popunjavanja polja u samoj aplikaciji. Potvrda na strani poslužitelja oduzima vrijeme i nervira korisnika. Ovo pravilo vrijedi i za provjeru dostupnih prijava / e-pošte, koje bi trebale raditi u hodu. Dobri primjeri su - Yandex glazba, Twitter.

Za sve različiti tipovi polja, važno je koristiti odgovarajuće vrste tipkovnice: iOS, Android. Ako korisnik unosi poštu, na tipkovnici bi trebao biti znak @, brojevi za unos broja itd.

Znate da nitko ne čita ponudu. Mislim da je potvrdni okvir ugovora s njim suvišan - odvlači pažnju korisnika od sadržaja. Dovoljno je postaviti tekst "registracijom, slažete se s politikom privatnosti i uvjetima pružanja usluge", ističući željene poveznice.

Društvena mreža

Ovo je najjednostavniji način da se korisnik prijavi: ne mora ručno ispuniti prijavu i lozinku. Razumno je razvrstavati gumbe na društvenim mrežama prema učestalosti upotrebe prema platformi i zemlji. Google+ je prikladniji za Android, većina korisnika u Rusiji ima VK itd. Ovo Foursquare radi na Androidu.

Što se tehnologije tiče, za implementaciju prijave možete koristiti univerzalne oAuth knjižnice ili službene SDK -ove društvenih medija. Službeni SDK -ovi imaju važnu prednost: autoriziraju putem instalirane aplikacije bilo putem korisničkih računa u Postavke sustava... Ako se korisnik prijavi putem društvene mreže, najvjerojatnije je instalirana odgovarajuća aplikacija.

Kako funkcioniraju službeni SDK -ovi

Telefonski broj i kontrolni kôd

U Androidu možete automatski dovršiti broj sa SIM kartice, ali to ne radi na svim uređajima, pa morate uzeti u obzir kod moguće greške... U praksi nisam pronašao aplikacije koje to rade, ali uporaba ove metode sasvim je prihvatljiva.

Nakon unosa i slanja broja, korisnik mora unijeti kôd iz SMS -a. Android aplikacija to može učiniti automatski. Ovu tehniku ​​koriste Viber, Telegram, Rocketbank. Važno je samo objasniti korisniku da će SMS uskoro stići, samo trebate malo pričekati.

Brojke od tkanine. Twitter ima besplatno out-of-box rješenje za autorizaciju putem telefonski broj... To je SMS gateway + mobilni i web SDK. Izgled sučelje unutar određenog okvira može se prilagoditi. Ovo je najjednostavnije rješenje.

Brojke od tkanine

Zaključak

Ovdje sam pokušao iznijeti sva razmišljanja koja sam nedavno formulirao o prijavi u aplikaciju i radu s obrascima. Ovaj je post svojevrsni popis za provjeru, nadam se da će vam biti od koristi. Ako imate pitanja, napišite: [zaštićena e -pošta]