Компютри Windows интернет

1в разрешение на входа на мобилното приложение. Извикване на операция на уеб сървър

, PHP, Системи за съобщения

Имаме удоволствието да представим услугата на общността PushAuthкоето позволява на вашите клиенти да влизат с PUSH съобщения на мобилното си устройство!



Тази идея не е нова и много компании вече използват тази технология в своите приложения. Всичко изглежда достатъчно просто, докато не разгледате въпросите: сигурност, управление на устройства и клиенти, съвместимост и удобна работа.

Как се роди идеята?

Ние използваме много услуги: имейл, социални мрежи, CRM системи, системи за контрол на достъпа, клиентски банки и др. За всяка от услугите, както е правилно, за достъп трябва да използвате вход / имейли парола... Вече можем да заключим, че:

  1. Почти всички ние имаме имейл адрес.
  2. В повечето случаи паролите са еднакви навсякъде. (Ще приемем, че не използваме услуги на трети страни като 1password и други)

Въз основа на две точки исках:

  1. Използвайте този имейл за оторизация.
  2. Изобщо не използвайте пароли.

Какво стана от това?

Ние сме в мобилни приложения за регистрация изобщо не използвайте пароли... Да, няма нужда да помните друга парола. За да се регистрирате / оторизирате в мобилното приложение, е достатъчно да въведете само имейл, на който ще получите писмо с линк за потвърждение на действието. След следващото въвеждане на имейл, автоматично ще влезете в приложението без регистрация.

Какви са видовете оторизация?

Понастоящем има два основни типа заявки за оторизация:

  1. Пуш въпросза упълномощаване, при което клиентът трябва да даде отговор: Да или Не. За този метод услугата е достъпна маршрутизиране, за което малко по -долу.
  2. Безопасен Push код, до който собственикът на услугата сам изпраща мобилно приложениеклиент, използващ услугата PushAuth.
  3. QR оторизация, което ви позволява да сканирате кода с мобилното приложение на клиента и да преминете оторизация. Този методвече на етапа на затворено тестване с мобилни приложения и също ще стане достъпно в близко бъдеще.

Мобилни приложения

  • Ние използваме FireBase Cloud Messaging за доставяне на PUSH съобщения на Android и iOS. Всички данни, прехвърлени от мобилното приложение към сървъра PushAuth, са подписани с HMAC SHA-256, лични лични ключове.
  • Мобилното приложение е допълнително защитено с PIN-код (TouchID-парола), което повишава нивото на защита срещу неоторизиран достъп.
  • Планираме да разработим SDK, който ще ви позволи да използвате функционалността на API във вашите мобилни приложения.
  • Клиентите могат да имат 10 устройства наведнъж, към които могат да се получават PUSH заявки. При отговаряне на едно от устройствата, на други устройства, отговорите на Push се игнорират. Планираме да скрием Push съобщения на други устройства, когато отговаряме на едно.


Пуш въпрос



Безопасен Push код


Приложенията вече са налични:

Бекенд


За собствениците на услуги са достъпни подробни статистически данни за статусите на оторизация на техните клиенти. Можете да създадете отделно приложение за всяка услуга и да наблюдавате нейното използване. Освен това можете да конфигурирате уеб куки, които да изпращат данни за упълномощаване:

  • QR кодове
  • Push заявки
  • Време Извън отговорите на клиентите

Къде можете да го използвате?

CRM

Нека започнем полета си на въображение с ИТ услуги, например същите CRM системи, където има нужда да потвърдим действията на служителя. Например, благодарение на услугата маршрутизиране, възможно е да се направи така, че за да се подпише документът, се изисква потвърждение от ръководството. Така цялата картина изглежда така:

  1. Служителят инициира действие и получава PUSH заявка и отговаря Да.
  2. Неговият непосредствен началник получава заявка PUSH и отговаря Да.
  3. Висшият лидер получава заявка PUSH и отговаря Да.
  4. Резултатът от всички действия ще бъде Да

Ако на някакъв етап някой отговори Не, тогава следващата връзка нагоре по веригата няма да получи PUSH заявка и общият резултат от заявките ще бъде отговорът Не


По -горе описахме работата на услугата маршрутизиранес приоритет. Но тази услуга може да се използва без приоритет. Това означава, че всички връзки във веригата (служители) ще получат PUSH заявка едновременно. И само ако всички те отговорят положително, само тогава общият резултат от заявката ще бъде положителен.

Уеб сайт

Двуфакторното или просто еднофакторно оторизиране на сайта може да опрости или осигури достъп до вътрешни ресурси. Например за достъп до уеб панела на администратора на WordPress, когато дадете достъп на вашия изпълнител / разработчик и искате строго да го контролирате чрез заявки за push-оторизация.

операционна система

Използвате ли SSH / telnet достъп? Или искате да получите заявка за упълномощаване, когато отворите капака на вашия лаптоп? Тогава тази услуга ще бъде просто перфектна.

Инженеринг и оборудване

Можете допълнително да реализирате достъп до съоръжения (сейф, асансьор, турникет, аларма) в промишлен мащаб с помощта на мобилно приложение.

Сигурност


Това е най -важният въпрос в тази услуга. Струва си да се обърне внимание на такива неща като обмен на данни между Услугата на потребителя<-->PushAuth сървър<-->Клиентско приложение.
Всички данни се прехвърлят по HTTPS (TLS), с подпис HMAC, алгоритъм SHA-256. Всеки клиент и потребител на услугата има своя собствена двойка публичен и частен ключ. Публичният ключ в нашия случай е необходим за идентификация в споделеното мрежово хранилище и може да се предава в ясен текст. Частният ключ се предава по защитен начин. В случай на мобилно приложение, всички ключове се предават само чрез APN / GCM. По този начин ние осигуряваме допълнителна защита на ниво сертификати за тези услуги.

Рано или късно разработчикът на мобилни приложения има желание по някакъв начин да разграничи всеки потребител - да създаде личен профил за него, да му даде възможност да прехвърли приложението на нов телефонбез да губите съдържание или просто да изпращате персонализирани реклами.

Въведение

Основата на всяко персонализиране е неговият собствен акаунт за всеки потребител. Но човек е така подреден, че малко хора искат да губят време за скучна регистрация - потребителите вече имат Instagram, Twitter и Facebook и може да няма достатъчно място в главите им за нови акаунти. Дори няма нужда да ходите далеч за пример - погледнете в сърцето си :). Представете си, че сте потребител - за един от вас Google Playима десетки полезни приложения, но вероятно нямате желание да се регистрирате във всяко от тях.

Така се появи технологията OAuth - механизъм за оторизиране на потребител в ресурси на трети страни, използвайки доверена трета страна. Тази услуга стана изключително популярна: Instagram, Facebook и много други големи проекти вече позволяват на потребителите си да влизат бързо в ресурс на трета страна. Присъединете се и вие: дори в малък проект днес има смисъл да внедрите OAuth - потребителите вече са свикнали с този механизъм.

Един добър програмист, за разлика от младши, разбира поне в общи линии какво прави, така че преди да внедрим API, нека анализираме как работи всичко.

Обърнете внимание, че OAuth влезе мобилни устройстваот мрежата, следователно, дори ако сте далеч от Java и Android, информацията за това как работи такъв механизъм за упълномощаване все още може да ви бъде полезна.

OAuth устройство

С появата на технологията OAuth алгоритъмът за регистрация на нов ресурс за потребител се промени драстично. Сега не е нужно да запомняте следващите идентификационни данни, но можете да влезете в сайта с няколко кликвания, като използвате вашия сметкаедна от социалните мрежи.

Нека си представим малко приложение, наречено App, където потребителят наистина иска да си създаде акаунт. Той няма желание да измисля ново потребителско име и парола, но има страница в определена социална мрежазатова решава да влезе в приложението със своя акаунт, като кликне върху познатата икона. Това стартира процеса на оторизация, в който участват изненадващо много страни, въпреки че външно всичко се случва сякаш вътре в приложението. Целият процес може да бъде разделен на шест стъпки.

Ето как работи. Схемата е доста опростена и искам да насоча вниманието ви към основната характеристика на OAuth: тази технология не се удостоверявапотребител. OAuth не носи отговорност за валидността на двойката "вход - парола" и още повече за факта, че тези данни са въведени от потребителя! Целият процес включва само оторизация- тоест на приложението се предоставя правото да извършва действия с потребителски данни, съхранявани на сървър на трета страна.

В същото време удостоверяването също е тук и се случва на етапи 1–3, но то продължава невидимо за нас, използвайки протокола OpenID, вграден в OAuth. Този протокол реализира малко криптографска магия, чието описание ще изисква няколко такива статии, така че днес няма да се докосваме до нея.

Изпълнение

Теоретичната част приключи, нека започнем Android Studio... OAuth вече е много популярен, уебсайтът на проекта изброява повече от десет големи проекта, които поддържат тази технология. Както може би се досещате, общият принцип на действие е един и същ във всеки случай, само имената на класовете и адресите на центровете за сертифициране се различават.

Продължаването е достъпно само за участниците

Вариант 1. Присъединете се към общността „сайт“, за да прочетете всички материали на сайта

Членството в общността през посочения период ще ви отвори достъп до ВСИЧКИ материали на хакера, ще увеличи вашата лична кумулативна отстъпка и ще ви позволи да натрупате професионален резултат Xakep!

Предлагаме ви малък преглед, който, надяваме се, ще представлява интерес за дизайнерите, разработчиците и преди всичко продуктовите мениджъри. Ще ви разкажем кога е по -добре да покажете формуляра за упълномощаване, как да го покажете, как да съкратите времето за попълване на потребителя, какво не трябва да забравяте при влизане чрез социални мрежи и колко по -лесно е да направите упълномощаване чрез телефонът.

Както в секса: колкото по -късно, толкова по -добре

Принуждавате ли потребителя да влезе или да се регистрира във вашето приложение веднага след като го изтегли и отвори за първи път? Това означава, че увеличавате шансовете приложението да бъде веднага в кошницата. Това се потвърждава от статистиката, така че първият ни съвет: оставете разрешението до момента, в който наистина е необходимо. Това може да е изпращане на поръчка или създаване на коментар. ...

Основните начини за влизане в приложението, които се използват широко днес, са вход + парола, социални мрежи, телефон + код от SMS. Нека разгледаме по -подробно първия от тези методи.

Вход + парола

Ако потребителят трябва да въведе лични данни, нашата задача е да улесним този процес за него.

Съвети за полета за въвеждане

В прости форми, например, ако използваме обичайното въвеждане на вход и парола, можем да поставим имената на полетата в заместители, това е съвсем очевидно за потребителя. В по -сложна форма, където има ограничения за въвеждане на данни, трябва да използваме етикети и заместители, например обяснение за дължината на паролата. По -добре е да поставите етикети и заместители над полето за въвеждане, така че по всяко време да е очевидно за потребителя какво попълва и как трябва да се направи.

В мобилните приложения не е най -добрата практика да поставяте етикети на същия ред като полето за въвеждане. Това изяжда полезно хоризонтално пространство. Например формуляр за регистрация на Lamoda iPhone.

Две качествени статии по темата: Заместителите в полетата с формуляри са вредни, използваемостта на мобилни формуляри: Никога не използвайте вградени етикети.

Автодовършване

Завършване на популярни домейни. IOS библиотеката на HotelTonight ускорява въвеждането на имейли въз основа на популярни имейл домейни. В Android можете да направите същото ръчно. Всичко това приятно ускорява влизането на електронна поща.

Попълване на популярни пощенски домейни

Автоматично попълване на имейл за акаунти в Google. Приложение за Android може да получи списък с акаунти в Google на устройство и да предложи на потребителя автоматично попълване. Това правят Evernote и Instagram например. Можете да действате по различен начин: автоматично попълнете полето за въвеждане с един от имейл адреси... Тъй като повечето потребители имат един акаунт в Google, има голяма вероятност да го оправим. Това правят Facebook и Twitter. iOS не предоставя достъп до електронната поща на потребителя, така че такова автоматично попълване не може да бъде направено.

Автоматично попълване на поща за акаунти в Google в Evernote

Име за автоматично довършване. От страна на сървъра или в приложението можете да запишете база от популярни имена и да предложите автоматично довършване на потребителя. На Android отново Google+ може да помогне. Но това все още е двусмислен начин - в края на краищата въвеждането на име отнема няколко секунди и всяко автоматично довършване отвлича вниманието на потребителя до известна степен.

Автоматично завършване на предишно използваното влизане по време на оторизация. Ако приложението не превключва между акаунти, както в официалния Twitter или Gmail, е полезно да се попълват автоматично използваните преди това имейли / влизания при влизане. Например, Instagram показва последното използвано влизане. Този метод обаче не е подходящ за финансови приложения, тъй като сигурността е важна за тях. Ако потребителят е излязъл от приложението, тогава никой не трябва да знае какъв вход е използвал.

Автоматично откриване ♀ ♂. Приложенията могат да определят пола въз основа на въведеното име. Услугата genderize.io съдържа база данни от 200 000+ имена, 79 държави и 89 езика. 100 000 заявки на месец струват 9 долара. Има SDK за двете платформи. В Android можете да опитате да получите пола от Акаунт в Google+. За съжаление, той не винаги е поставен от потребителя и в Русия G + обикновено се използва малко.

Автоматичното попълване на адреса ускорява въвеждането във формулярите за плащане, понякога такова поле присъства във формуляра за регистрация. Има добър преглед на услугите, които решават проблема.

Пароли

Трудно е да въведете паролата два пъти в приложението. Достатъчно е да направите това веднъж и ако въвеждането е направено с грешка, потребителят трябва да може да промени / възстанови паролата.

Прието е да се скрива паролата, когато се въвежда с точки. Бутонът „покажи парола“ е полезен - той е особено важен на екрана за регистрация, освен ако не помолим потребителя да въведе паролата два пъти. Това е интересно реализирано в спортни тракери Runtastic: паролата се показва, бутонът "око" се натиска.

Възстановяването на парола не е основна задача. Повечето топ приложения изпращат потребителя до уеб страница, за да направят това. Възстановяването не трябва да бъде отделен екран, който се отваря в браузъра, той може да бъде реализиран на екрана за вход с помощта на прости анимации. Страхотни примери: Airbnb, Tumblr, Runtastic.

Tumblr iOS Възстановяване на парола

Проверка на полета, клавиатура и оферта

Важно е да се провери правилността на попълване на полетата в самото приложение. Проверката от страна на сървъра отнема време и дразни потребителя. Това правило важи и за проверка на наличните данни за вход / електронна поща, които трябва да работят в движение. Добри примери са - Yandex Music, Twitter.

За всички различни видовеполета, важно е да използвате подходящите типове клавиатура: iOS, Android. Ако потребителят въведе поща, трябва да има знак @ на клавиатурата, номера за въвеждане на номер и т.н.

Знаете, че никой не чете офертата. Мисля, че квадратчето за споразумение с него е излишно - това отвлича вниманието на потребителя от съдържанието. Достатъчно е да поставите текста „като се регистрирате, вие се съгласявате с политиката за поверителност и условията на услугата“, като подчертавате желаните връзки.

Социални мрежата

Това е най -простият начин за потребителя да влезе: той не трябва да попълва данните за вход и парола ръчно. Разумно е да се сортират бутоните на социалните медии по честота на използване по платформа и държава. Google+ е по -удобен за Android, повечето потребители в Русия имат ВК и т.н. Това прави Foursquare на Android.

От технологична страна можете да използвате универсални oAuth библиотеки или официални SDK за социални медии, за да внедрите вход. Официалните SDK имат важно предимство: разрешават чрез инсталирани приложенияили чрез потребителски акаунти в системни настройки... Ако потребител влезе през социална мрежа, най -вероятно е инсталирано съответното приложение.

Как работят официалните SDK

Телефонен номер и код за потвърждение

В Android можете автоматично да попълвате номер от SIM карта, но това не работи на всички устройства, така че трябва да вземете предвид в кода възможни грешки... На практика не съм намерил приложения, които правят това, но използването на този метод е напълно приемливо.

След като въведе и изпрати номера, потребителят трябва да въведе кода от SMS. Приложението за Android може да направи това автоматично. Тази техника се използва от Viber, Telegram, Rocketbank. Важно е само да обясните на потребителя, че SMS ще пристигне скоро, просто трябва да изчакате малко.

Цифри от плат. Twitter има безплатно готово решение за оторизация чрез телефонен номер... Това е SMS шлюз + мобилен и уеб SDK. Външен видинтерфейс в определена рамка може да бъде персонализиран. Това е най -простото нестандартно решение.

Цифри от плат

Заключение

Тук се опитах да очертая всички мисли, които наскоро формулирах относно влизането в приложението и работата с формуляри. Тази публикация е един вид контролен списък, надявам се да ви бъде полезен. Ако имате въпроси, пишете: [защитен имейл]