Komputery Okna Internet

1c autoryzacja przy wejściu do aplikacji mobilnej. Wywoływanie operacji serwera WWW

, PHP, Systemy komunikacyjne

Z przyjemnością przedstawiamy usługę społeczności PushAuth który pozwala Twoim klientom logować się za pomocą wiadomości PUSH na swoim urządzeniu mobilnym!



Pomysł ten nie jest nowy i wiele firm korzysta już z tej technologii w swoich aplikacjach. Wszystko wygląda dość prosto, dopóki nie weźmiesz pod uwagę kwestii: bezpieczeństwa, zarządzania urządzeniami i klientami, kompatybilności i wygodnej pracy.

Jak narodził się pomysł?

Korzystamy z wielu usług: poczty elektronicznej, sieci społecznościowych, systemów CRM, systemów kontroli dostępu, banków klientów itp. Dla każdej z usług, zgodnie z poprawką, aby uzyskać dostęp, musisz użyć login / e-mail oraz hasło... Możemy już stwierdzić, że:

  1. Prawie każdy z nas ma adres e-mail.
  2. W większości przypadków hasła są wszędzie takie same. (Zakładamy, że nie korzystamy z usług stron trzecich, takich jak 1password i inne)

Na podstawie dwóch punktów chciałem:

  1. Użyj tego jednego e-maila do autoryzacji.
  2. W ogóle nie używaj haseł.

Co z tego wynikło?

Jesteśmy w aplikacjach mobilnych do rejestracji w ogóle nie używaj haseł... Tak, nie ma potrzeby zapamiętywania kolejnego hasła. Do rejestracji/autoryzacji w aplikacji mobilnej wystarczy wpisać tylko e-mail, na który otrzymasz list z linkiem do potwierdzenia akcji. Po kolejnym wprowadzeniu wiadomości e-mail automatycznie wejdziesz do aplikacji bez rejestracji.

Jakie są rodzaje autoryzacji?

Obecnie dostępne są dwa główne typy wniosków o autoryzację:

  1. Pytanie Push o autoryzację, w której klient musi udzielić odpowiedzi: Tak lub Nie. Dla tej metody usługa jest dostępna rozgromienie, o którym trochę poniżej.
  2. Bezpieczny kod Push, do którego wysyła sam właściciel serwisu mobilna aplikacja klient korzystający z usługi PushAuth.
  3. Autoryzacja QR, który umożliwia zeskanowanie kodu aplikacją mobilną klienta i przekazanie autoryzacji. Ta metoda już na etapie testów zamkniętych z aplikacjami mobilnymi, a także będą dostępne w niedalekiej przyszłości.

Aplikacje mobilne

  • Używamy FireBase Cloud Messaging do dostarczania wiadomości PUSH na Androida i iOS. Wszystkie dane przesyłane z aplikacji mobilnej na serwer PushAuth są sygnowane osobistymi kluczami prywatnymi HMAC SHA-256.
  • Aplikacja mobilna jest dodatkowo chroniona kodem PIN (hasło TouchID), co zwiększa poziom zabezpieczenia przed nieautoryzowanym dostępem.
  • Planujemy stworzyć SDK, który pozwoli Ci wykorzystać funkcjonalność API w Twoich aplikacjach mobilnych.
  • Klienci mogą mieć jednocześnie 10 urządzeń, na które można odbierać żądania PUSH. Odpowiadając na jednym z urządzeń, na innych, odpowiedzi na Push są ignorowane. Planujemy ukryć wiadomości Push na innych urządzeniach podczas odpowiadania na jedno.


Pytanie Push



Bezpieczny kod Push


Aplikacje są już dostępne:

Zaplecze


Dla właścicieli usług dostępne są szczegółowe statystyki dotyczące statusów autoryzacji ich klientów. Możesz stworzyć osobną Aplikację dla każdej usługi i monitorować jej wykorzystanie. Dodatkowo możesz skonfigurować Web Hooki, które będą wysyłać dane autoryzacyjne:

  • Kody QR
  • Żądania push
  • Limit czasu odpowiedzi klientów

Gdzie możesz go użyć?

CRM

Naszą wyobraźnię zacznijmy od usług IT, na przykład tych samych systemów CRM, gdzie istnieje potrzeba potwierdzenia działania pracownika. Na przykład dzięki usłudze rozgromienie, można sprawić, że do podpisania dokumentu wymagane jest potwierdzenie od kierownictwa. Cały obraz wygląda więc tak:

  1. Pracownik inicjuje akcję i otrzymuje żądanie PUSH i odpowiada tak.
  2. Jego bezpośredni przełożony otrzymuje prośbę PUSH i odpowiada tak.
  3. Przełożony otrzymuje prośbę PUSH i odpowiada tak.
  4. Rezultatem wszystkich działań będzie tak

Jeśli na którymś etapie ktoś odpowie Nie, wtedy następny link upstream nie otrzyma żądania PUSH, a ogólny wynik żądań będzie odpowiedzią Nie


Powyżej opisaliśmy działanie usługi rozgromienie z priorytetem. Ale z tej usługi można korzystać bez pierwszeństwa. Oznacza to, że wszystkie ogniwa w łańcuchu (pracownicy) otrzymają jednocześnie żądanie PUSH. I tylko jeśli wszyscy odpowiedzą pozytywnie, tylko wtedy ogólny wynik zapytania będzie pozytywny.

Strona internetowa

Dwuskładnikowa lub prosta jednoskładnikowa autoryzacja w witrynie może uprościć lub zabezpieczyć dostęp do zasobów wewnętrznych. Na przykład, aby uzyskać dostęp do panelu administracyjnego WordPressa, gdy dajesz dostęp swojemu kontrahentowi/deweloperowi i chcesz go ściśle kontrolować za pomocą żądań autoryzacji Push.

OS

Czy korzystasz z dostępu SSH/telnet? A może chcesz otrzymać prośbę o autoryzację po otwarciu pokrywy laptopa? Wtedy ta usługa będzie po prostu idealna.

Inżynieria i sprzęt

Dodatkowo możesz wdrożyć dostęp do obiektów (sejf, winda, kołowrót, alarm) na skalę przemysłową za pomocą aplikacji mobilnej.

Bezpieczeństwo


To jest najważniejsze pytanie w tej usłudze. Warto zwrócić uwagę na takie rzeczy jak wymiana danych pomiędzy Serwisem Użytkownika<-->Serwer PushAuth<-->Aplikacja klienta.
Wszystkie dane są przesyłane przez HTTPS (TLS), z podpisem HMAC, algorytmem SHA-256. Każdy klient i użytkownik usługi ma własną parę kluczy publicznych i prywatnych. Klucz publiczny w naszym przypadku jest niezbędny do identyfikacji we współdzielonej pamięci sieciowej i może być przesyłany w postaci zwykłego tekstu. Klucz prywatny jest przesyłany w bezpieczny sposób. W przypadku aplikacji mobilnej wszystkie klucze transmitowane są wyłącznie przez APN/GCM. Tym samym zapewniamy dodatkową ochronę na poziomie certyfikatów tych usług.

Wcześniej czy później twórca aplikacji mobilnych ma chęć jakoś odróżnić każdego użytkownika - stworzyć dla niego osobisty profil, dać mu możliwość przeniesienia aplikacji do nowy telefon bez utraty treści lub po prostu wysyłania spersonalizowanych reklam.

Wprowadzenie

Podstawą każdej personalizacji jest własne konto dla każdego użytkownika. Ale człowiek jest tak zaaranżowany, że niewiele osób chce marnować czas na nudną rejestrację – użytkownicy mają już Instagram, Twitter i Facebook, a w ich głowach może zabraknąć miejsca na nowe konta. Na przykład nie ma potrzeby daleko sięgać - spójrz w swoje serce :). Wyobraź sobie, że jesteś użytkownikiem - dla jednego z was w Graj w Google istnieją dziesiątki przydatnych aplikacji, ale prawdopodobnie nie masz ochoty rejestrować się w każdej z nich.

Tak pojawiła się technologia OAuth - mechanizm autoryzacji użytkownika na zasobach firm trzecich z wykorzystaniem zaufanej firmy trzeciej. Ta usługa stała się niezwykle popularna: Instagram, Facebook i wiele innych dużych projektów pozwala teraz swoim użytkownikom na szybkie logowanie się do zasobu strony trzeciej. Dołącz do Ciebie: nawet w małym projekcie dzisiaj sensowne jest wdrożenie OAuth - użytkownicy są już przyzwyczajeni do tego mechanizmu.

Dobry programista w przeciwieństwie do juniora rozumie przynajmniej ogólnie to, co robi, dlatego przed wdrożeniem API przeanalizujmy, jak to wszystko działa.

Zwróć uwagę, że pojawił się protokół OAuth urządzenia mobilne z sieci, dlatego nawet jeśli jesteś daleko od Javy i Androida, informacje o tym, jak działa taki mechanizm autoryzacji, nadal mogą Ci się przydać.

Urządzenie OAuth

Wraz z pojawieniem się technologii OAuth algorytm rejestracji nowego zasobu dla użytkownika zmienił się radykalnie. Teraz nie musisz zapamiętywać kolejnych poświadczeń, ale możesz wejść na stronę kilkoma kliknięciami, używając swojego konto jedna z sieci społecznościowych.

Wyobraźmy sobie małą aplikację o nazwie App, w której użytkownik naprawdę chce założyć konto dla siebie. Nie ma ochoty wymyślać nowej nazwy użytkownika i hasła, ale w pewnym jest strona sieć społeczna więc decyduje się zalogować do Aplikacji za pomocą swojego konta, klikając znajomą ikonę. Rozpoczyna się proces autoryzacji, w który zaangażowanych jest zaskakująco wiele stron, choć na zewnątrz wszystko dzieje się jak wewnątrz aplikacji. Cały proces można podzielić na sześć kroków.

Tak to działa. Schemat jest dość uproszczony i chcę zwrócić uwagę na podstawową cechę OAuth: tę technologię nie uwierzytelnia użytkownik. OAuth nie odpowiada za ważność pary "login - hasło", a tym bardziej za to, że dane te wprowadza użytkownik! Cały proces obejmuje: tylko autoryzacja- to znaczy, aplikacja otrzymuje prawo do wykonywania działań na danych użytkownika przechowywanych na serwerze firmy trzeciej.

Jednocześnie uwierzytelnianie również jest tutaj i odbywa się na etapach 1–3, ale jest dla nas niewidoczne przy użyciu protokołu OpenID wbudowanego w OAuth. Protokół ten wprowadza odrobinę magii kryptograficznej, której opis będzie wymagał kilku takich artykułów, więc nie będziemy się nim dzisiaj poruszać.

Realizacja

Część teoretyczna się skończyła, zaczynajmy Studio Android... OAuth jest teraz bardzo popularny, strona internetowa projektu zawiera listę ponad dziesięciu dużych projektów, które obsługują tę technologię. Jak można się domyślić, ogólna zasada działania jest w każdym przypadku taka sama, różnią się jedynie nazwy klas i adresy centrów certyfikacji.

Kontynuacja jest dostępna tylko dla uczestników

Opcja 1. Dołącz do społeczności „strony”, aby przeczytać wszystkie materiały na stronie

Członkostwo w społeczności w wyznaczonym okresie otworzy dostęp do WSZYSTKICH materiałów hakerskich, zwiększy osobistą skumulowaną zniżkę i pozwoli na zgromadzenie profesjonalnego wyniku Xakep!

Oferujemy Państwu mały przegląd, który mamy nadzieję zainteresuje projektantów, programistów, a przede wszystkim menedżerów produktów. Powiemy Ci, kiedy lepiej pokazać formularz autoryzacyjny, jak go pokazać, jak skrócić czas wypełniania dla użytkownika, o czym nie należy zapominać przy wejściu przez portale społecznościowe i jak łatwiej jest dokonać autoryzacji przez telefon.

Jak w seksie: im później, tym lepiej

Czy zmuszasz użytkownika do zalogowania się lub rejestracji w Twojej aplikacji zaraz po tym, jak ją pobrał i otworzył po raz pierwszy? Oznacza to, że zwiększasz szanse, że aplikacja znajdzie się od razu w koszyku. Potwierdzają to statystyki, więc nasza pierwsza rada: autoryzację odkładaj do momentu, kiedy jest naprawdę potrzebna. Może to być złożenie zamówienia lub utworzenie komentarza. ...

Główne sposoby wejścia do aplikacji, które są dziś szeroko stosowane, to login + hasło, sieci społecznościowe, telefon + kod z SMS-a. Przyjrzyjmy się bardziej szczegółowo pierwszej z tych metod.

Login + hasło

Jeżeli użytkownik musi wprowadzić dane osobowe, naszym zadaniem jest ułatwienie mu tego procesu.

Wskazówki dotyczące pól wejściowych

W prostych formularzach, na przykład, jeśli używamy zwykłego loginu i hasła, możemy umieścić nazwy pól w symbolach zastępczych, jest to dość oczywiste dla użytkownika. W bardziej złożonej formie, gdzie występują ograniczenia we wprowadzaniu danych, musimy użyć etykiet i symbolu zastępczego, na przykład wyjaśnienia długości hasła. Lepiej jest umieścić etykiety i symbole zastępcze nad polem wejściowym, aby użytkownik w dowolnym momencie wiedział, co wypełnia i jak należy to zrobić.

W aplikacjach mobilnych umieszczanie etykiet w tym samym wierszu co pole wejściowe nie jest najlepszą praktyką. To pochłania użyteczną przestrzeń poziomą. Na przykład formularz rejestracyjny iPhone'a Lamoda.

Dwa wysokiej jakości artykuły na ten temat: Symbole zastępcze w polach formularzy są szkodliwe, Użyteczność formularzy mobilnych: nigdy nie używaj etykiet wbudowanych.

autouzupełnienie

Uzupełnianie popularnych domen. Biblioteka HotelTonight na iOS przyspiesza wprowadzanie wiadomości e-mail w oparciu o popularne domeny e-mail. W Androidzie możesz zrobić to samo ręcznie. Wszystko to przyjemnie przyspiesza wprowadzanie wiadomości e-mail.

Uzupełnianie popularnych domen pocztowych

Autouzupełnianie wiadomości e-mail dla kont Google. Aplikacja na Androida może pobrać listę kont Google na urządzeniu i sugerować użytkownikowi automatyczne uzupełnianie. Tak robią na przykład Evernote i Instagram. Możesz działać inaczej: automatycznie wypełnij pole wprowadzania jednym z adresy e-mail... Ponieważ większość użytkowników ma jedno konto Google, jest duża szansa, że ​​zrobimy to dobrze. To właśnie robią Facebook i Twitter. iOS nie daje dostępu do poczty e-mail użytkownika, więc tego autouzupełniania nie można wykonać.

Automatyczne uzupełnianie poczty dla kont Google w Evernote

Autouzupełnianie nazwy. Po stronie serwera lub w aplikacji możesz zapisać bazę popularnych nazw i zaoferować użytkownikowi autouzupełnianie. W Androidzie znowu Google+ może pomóc. Ale to wciąż niejednoznaczny sposób – w końcu wpisanie nazwy zajmuje kilka sekund, a autouzupełnianie w pewnym stopniu rozprasza użytkownika.

Autouzupełnianie poprzednio użytego loginu podczas autoryzacji. Jeśli aplikacja nie przełącza się między kontami, jak w oficjalnym Twitterze czy Gmailu, przy logowaniu przydaje się autouzupełnianie wcześniej używanych e-maili/logowań. Na przykład Instagram pokazuje ostatnio używany login. Jednak ta metoda nie nadaje się do zastosowań finansowych, ponieważ bezpieczeństwo jest w nich ważne. Jeśli użytkownik wylogował się z aplikacji, to nikt nie powinien wiedzieć, jakiego loginu użył.

Automatyczne wykrywanie ♀ ♂. Aplikacje mogą określić płeć na podstawie wprowadzonego imienia i nazwiska. Serwis genderize.io zawiera bazę ponad 200 000 nazwisk, 79 krajów i 89 języków. 100 000 żądań miesięcznie kosztuje 9 USD. Dla obu platform istnieje zestaw SDK. Na Androidzie możesz spróbować uzyskać płeć z konto Google+. Niestety nie zawsze jest on umieszczany przez użytkownika, a w Rosji G+ jest na ogół mało używany.

Autouzupełnianie adresu przyspiesza wprowadzanie danych w formularzach kasowych, czasami takie pole występuje w formularzu rejestracyjnym. Istnieje dobry przegląd usług, które rozwiązują problem.

Hasła

Dwukrotne wpisanie hasła w aplikacji jest trudne. Wystarczy to zrobić raz, a jeśli dane wejściowe zostały wykonane z błędem, użytkownik powinien mieć możliwość zmiany/odzyskania hasła.

Zwyczajowo ukrywa się hasło przy wprowadzaniu go kropkami. Przydatny jest przycisk „pokaż hasło” – jest to szczególnie ważne na ekranie rejestracji, chyba że poprosimy użytkownika o dwukrotne wpisanie hasła. Jest to ciekawie zaimplementowane w trackerach sportowych Runtastic: wyświetlane jest hasło, naciśnięty jest przycisk „oko”.

Odzyskiwanie hasła nie jest podstawowym zadaniem. Większość najlepszych aplikacji wysyła użytkownika do strony internetowej, aby to zrobić. Odzyskiwanie nie musi być osobnym ekranem otwierającym się w przeglądarce, można je zaimplementować na ekranie logowania za pomocą prostych animacji. Świetne przykłady: Airbnb, Tumblr, Runtastic.

Odzyskiwanie hasła na Tumblr iOS

Sprawdzanie pól, klawiatury i oferty

Ważne jest, aby sprawdzić poprawność wypełniania pól w samym wniosku. Sprawdzanie poprawności po stronie serwera zajmuje czas i denerwuje użytkownika. Zasada ta dotyczy również sprawdzania dostępnych loginów/e-maili, które powinny działać w locie. Dobrymi przykładami są: Muzyka Yandex, Twitter.

Dla wszystkich różne rodzaje pola, ważne jest, aby używać odpowiednich typów klawiatury: iOS, Android. Jeśli użytkownik wprowadza pocztę, na klawiaturze powinien znajdować się znak @, cyfry do wprowadzania numeru itp.

Wiesz, że nikt nie czyta oferty. Uważam, że checkbox umowy z nim jest zbędny – odwraca uwagę użytkownika od treści. Wystarczy umieścić tekst „rejestrując się, zgadzasz się z polityką prywatności i regulaminem serwisu”, zaznaczając żądane linki.

Społeczny sieć

Jest to najprostszy sposób logowania użytkownika: nie musi on ręcznie wpisywać loginu i hasła. Rozsądne jest sortowanie przycisków mediów społecznościowych według częstotliwości użycia według platformy i kraju. Google+ jest wygodniejszy dla Androida, większość użytkowników w Rosji ma VK itp. To właśnie robi Foursquare na Androidzie.

Po stronie technologii możesz użyć uniwersalnych bibliotek OAuth lub oficjalnych pakietów SDK mediów społecznościowych, aby wdrożyć logowanie. Oficjalne pakiety SDK mają ważną zaletę: autoryzują przez zainstalowane aplikacje albo poprzez konta użytkowników w Ustawienia systemowe... Jeśli użytkownik loguje się za pośrednictwem sieci społecznościowej, najprawdopodobniej ma zainstalowaną odpowiednią aplikację.

Jak działają oficjalne pakiety SDK

Numer telefonu i kod weryfikacyjny

W Androidzie możesz autouzupełniać numer z karty SIM, ale to nie działa na wszystkich urządzeniach, więc musisz wziąć pod uwagę w kodzie możliwe błędy... W praktyce nie znalazłem aplikacji, które to robią, ale korzystanie z tej metody jest całkiem do przyjęcia.

Po wpisaniu i wysłaniu numeru użytkownik musi wprowadzić kod z SMS-a. Aplikacja na Androida może to zrobić automatycznie. Ta technika jest używana przez Viber, Telegram, Rocketbank. Ważne jest tylko wyjaśnienie użytkownikowi, że SMS wkrótce nadejdzie, wystarczy trochę poczekać.

Cyfry z tkaniny. Twitter oferuje bezpłatne, gotowe rozwiązanie do autoryzacji za pośrednictwem numer telefonu... Jest to bramka SMS + SDK mobilny i webowy. Wygląd zewnętrzny interfejs w określonych ramach można dostosować. To najprostsze rozwiązanie po wyjęciu z pudełka.

Cyfry z tkaniny

Wniosek

Tutaj starałem się nakreślić wszystkie przemyślenia, które ostatnio sformułowałem na temat logowania do aplikacji i pracy z formularzami. Ten post jest rodzajem listy kontrolnej, mam nadzieję, że będzie dla Ciebie przydatny. Jeśli masz jakieś pytania, napisz: [e-mail chroniony]