Computer finestre Internet

1c autorizzazione all'ingresso dell'applicazione mobile. Chiamare un'operazione del server web

, PHP, sistemi di messaggistica

Siamo lieti di presentare il servizio alla comunità PushAuth che consente ai tuoi clienti di accedere utilizzando i messaggi PUSH sul proprio dispositivo mobile!



Questa idea non è nuova e molte aziende utilizzano già questa tecnologia nelle loro applicazioni. Tutto sembra abbastanza semplice finché non si considerano i problemi: sicurezza, gestione di dispositivi e client, compatibilità e lavoro confortevole.

Come è nata l'idea?

Utilizziamo moltissimi servizi: email, social network, sistemi CRM, sistemi di controllo accessi, banche clienti, ecc. Per ciascuno dei servizi, come è corretto, per l'accesso, è necessario utilizzare accedi / e-mail e parola d'ordine... Possiamo già concludere che:

  1. Quasi tutti noi abbiamo un indirizzo email.
  2. Nella maggior parte dei casi, le password sono le stesse ovunque. (Supponiamo di non utilizzare servizi di terze parti come 1password e altri)

Sulla base di due punti, volevo:

  1. Usa questa email per l'autorizzazione.
  2. Non usare assolutamente le password.

Che ne è stato di questo?

Siamo nelle applicazioni mobili per la registrazione non usare affatto le password... Sì, non è necessario ricordare un'altra password. Per registrarsi / autorizzare nell'applicazione mobile, è sufficiente inserire solo un'e-mail, che riceverà una lettera con un collegamento per confermare l'azione. Dopo il successivo inserimento e-mail, entrerai automaticamente nell'applicazione senza registrazione.

Quali sono i tipi di autorizzazione?

Attualmente sono disponibili due tipi principali di richieste di autorizzazione:

  1. Spingi domanda per l'autorizzazione, in cui il cliente deve dare una risposta: Sì o No. Per questo metodo, il servizio è disponibile instradamento, di cui poco sotto.
  2. Codice push sicuro, che lo stesso titolare del servizio invia a app mobile client che utilizza il servizio PushAuth.
  3. Autorizzazione QR, che consente di scansionare il codice con l'applicazione mobile del cliente e passare l'autorizzazione. Questo metodo già in fase di closed testing con applicazioni mobile e sarà disponibile anche nel prossimo futuro.

Applicazioni mobili

  • Usiamo FireBase Cloud Messaging per fornire messaggi PUSH su Android e iOS. Tutti i dati trasferiti dall'applicazione mobile al server PushAuth sono firmati con HMAC SHA-256, chiavi private personali.
  • L'applicazione mobile è inoltre protetta da un codice PIN (TouchID-password), che aumenta il livello di sicurezza contro l'accesso non autorizzato.
  • Abbiamo in programma di sviluppare un SDK che ti consentirà di utilizzare la funzionalità API nelle tue applicazioni mobili.
  • I client possono avere 10 dispositivi contemporaneamente, ai quali possono essere ricevute richieste PUSH. Rispondendo su uno dei dispositivi, sugli altri dispositivi, le risposte a Push vengono ignorate. Abbiamo in programma di nascondere i messaggi Push su altri dispositivi quando rispondi a uno.


Spingi domanda



Codice push sicuro


Le applicazioni sono già disponibili:

Backend


Per i titolari dei servizi sono disponibili statistiche dettagliate sugli stati di autorizzazione dei propri clienti. Puoi creare un'Applicazione separata per ogni servizio e monitorarne l'utilizzo. Inoltre, puoi configurare Web Hook che invieranno dati di autorizzazione:

  • Codici QR
  • Richieste push
  • TimeOut delle risposte dei clienti

Dove puoi usarlo?

CRM

Iniziamo il nostro volo di immaginazione con i servizi IT, ad esempio gli stessi sistemi CRM, dove è necessario confermare l'azione del dipendente. Ad esempio, grazie al servizio instradamento, è possibile fare in modo che per firmare il documento sia richiesta la conferma della direzione. Quindi, l'intera immagine appare così:

  1. Il dipendente avvia un'azione e riceve una richiesta PUSH e risponde .
  2. Il suo diretto superiore riceve una richiesta PUSH e risponde .
  3. Il capo superiore riceve una richiesta PUSH e risponde .
  4. Il risultato di tutte le azioni sarà

Se ad un certo punto qualcuno risponde No, quindi il successivo collegamento a monte non riceverà una richiesta PUSH e il risultato complessivo delle richieste sarà la risposta No


Sopra abbiamo descritto il funzionamento del servizio instradamento con priorità. Ma questo servizio può essere utilizzato senza priorità. Ciò significa che tutti i collegamenti della catena (dipendenti) riceveranno una richiesta PUSH contemporaneamente. E solo se tutti rispondono positivamente, solo allora il risultato complessivo della query sarà positivo.

Sito web

L'autorizzazione a due fattori oa un fattore semplice sul sito può semplificare o proteggere l'accesso alle risorse interne. Ad esempio, per accedere al pannello web di amministrazione di WordPress, quando dai l'accesso al tuo appaltatore/sviluppatore e vuoi controllarlo rigorosamente tramite richieste di autorizzazione Push.

OS

Stai utilizzando l'accesso SSH/telnet? O vuoi ricevere una richiesta di autorizzazione quando apri il coperchio del tuo laptop? Allora questo servizio sarà semplicemente perfetto.

Ingegneria e attrezzature

È inoltre possibile implementare l'accesso alle strutture (cassaforte, ascensore, tornello, allarme) su scala industriale utilizzando un'applicazione mobile.

Sicurezza


Questa è la domanda più importante in questo servizio. Vale la pena prestare attenzione a cose come lo scambio di dati tra il Servizio dell'Utente<-->PushAuth Server<-->Applicazione del cliente.
Tutti i dati vengono trasferiti su HTTPS (TLS), con firma HMAC, algoritmo SHA-256. Ogni cliente e utente del servizio ha la propria coppia di chiavi pubbliche e private. La chiave pubblica nel nostro caso è necessaria per l'identificazione nella memoria di rete condivisa e può essere trasmessa in chiaro. La chiave privata viene trasmessa in modo sicuro. Nel caso di un'applicazione mobile, tutte le chiavi vengono trasmesse solo tramite APN/GCM. Pertanto, forniamo una protezione aggiuntiva a livello di certificati di questi servizi.

Prima o poi, lo sviluppatore di applicazioni mobili ha il desiderio di distinguere in qualche modo ogni utente: creare un profilo personale per lui, dargli l'opportunità di trasferire l'applicazione a nuovo telefono senza perdere contenuti o semplicemente inviare annunci personalizzati.

introduzione

La base di ogni personalizzazione è il proprio account per ogni utente. Ma una persona è così organizzata che poche persone vogliono perdere tempo con la noiosa registrazione: gli utenti hanno già Instagram, Twitter e Facebook e potrebbe non esserci abbastanza spazio nella loro testa per nuovi account. Non c'è nemmeno bisogno di andare lontano per un esempio: guarda nel tuo cuore :). Immagina di essere un utente - per uno di voi Google Play ci sono dozzine di applicazioni utili, ma probabilmente non hai voglia di registrarti in ognuna di esse.

Ecco come è apparsa la tecnologia OAuth, un meccanismo per autorizzare un utente su risorse di terze parti utilizzando una terza parte fidata. Questo servizio è diventato estremamente popolare: Instagram, Facebook e molti altri grandi progetti ora consentono ai loro utenti di accedere rapidamente a una risorsa di terze parti. Unisciti anche a te: anche in un piccolo progetto oggi ha senso implementare OAuth - gli utenti sono già abituati a questo meccanismo.

Un buon programmatore, a differenza di un junior, capisce almeno in termini generali cosa sta facendo, quindi prima di implementare l'API, analizziamo come funziona il tutto.

Nota che è arrivato OAuth dispositivi mobili dal Web, quindi anche se sei lontano da Java e Android, le informazioni su come funziona tale meccanismo di autorizzazione potrebbero esserti comunque utili.

Dispositivo OAuth

Con l'avvento della tecnologia OAuth, l'algoritmo di registrazione per una nuova risorsa per un utente è cambiato radicalmente. Ora non hai bisogno di memorizzare le prossime credenziali, ma puoi entrare nel sito con pochi click utilizzando il tuo account uno dei social network.

Immaginiamo una piccola applicazione chiamata App, dove l'utente vuole davvero creare un account. Non ha voglia di inventare un nuovo nome utente e password, ma c'è una pagina in un certo rete sociale quindi decide di accedere all'App con il suo account cliccando sull'icona familiare. Questo avvia il processo di autorizzazione, in cui sono coinvolti un numero sorprendentemente elevato di parti, anche se esteriormente tutto avviene come all'interno dell'applicazione. L'intero processo può essere suddiviso in sei fasi.

È così che funziona. Lo schema è piuttosto semplificato e voglio attirare la vostra attenzione sulla caratteristica fondamentale di OAuth: questa tecnologia non si autentica utente. OAuth non è responsabile della validità della coppia "login - password", e ancor più del fatto che questi dati vengano inseriti dall'utente! L'intero processo coinvolge solo autorizzazione- ovvero, all'applicazione viene concesso il diritto di eseguire azioni con i dati dell'utente archiviati su un server di terze parti.

Allo stesso tempo, anche l'autenticazione è qui e si verifica nelle fasi 1-3, ma procede invisibilmente per noi utilizzando il protocollo OpenID integrato in OAuth. Questo protocollo implementa un po' di magia crittografica, la cui descrizione richiederà molti di questi articoli, quindi non ne parleremo oggi.

Implementazione

La parte teorica è finita, iniziamo Android Studio... OAuth è ora molto popolare, il sito Web del progetto elenca più di dieci grandi progetti che supportano questa tecnologia. Come avrete intuito, il principio generale di funzionamento è lo stesso in ogni caso, differiscono solo i nomi delle classi e gli indirizzi dei centri di certificazione.

La continuazione è disponibile solo per i partecipanti

Opzione 1. Unisciti alla comunità "sito" per leggere tutti i materiali sul sito

L'appartenenza alla community durante il periodo specificato ti aprirà l'accesso a TUTTI i materiali di Hacker, aumenterà il tuo sconto cumulativo personale e ti consentirà di accumulare un punteggio Xakep professionale!

Vi proponiamo una piccola panoramica, che, speriamo, possa interessare designer, sviluppatori e, soprattutto, product manager. Ti diremo quando è meglio mostrare il modulo di autorizzazione, come mostrarlo, come abbreviare il tempo di compilazione per l'utente, cosa non deve essere dimenticato quando si accede tramite i social network e quanto è più facile fare l'autorizzazione tramite il telefono.

Come nel sesso: più tardi, meglio è

Costringi l'utente ad accedere o registrarsi nella tua applicazione subito dopo averla scaricata e aperta per la prima volta? Ciò significa che aumenti le possibilità che l'applicazione sia immediatamente nel carrello. Ciò è confermato dalle statistiche, quindi il nostro primo consiglio: mettere l'autorizzazione fino al momento in cui è davvero necessaria. Questo potrebbe essere l'invio di un ordine o la creazione di un commento. ...

I modi principali per accedere all'applicazione, oggi ampiamente utilizzati, sono login + password, social network, telefono + codice da SMS. Esaminiamo più in dettaglio il primo di questi metodi.

Login + password

Se l'utente deve inserire dati personali, il nostro compito è facilitargli questo processo.

Suggerimenti per i campi di input

Nei moduli semplici, ad esempio, se usiamo il consueto input di login e password, possiamo inserire i nomi dei campi nei segnaposto, questo è abbastanza ovvio per l'utente. In una forma più complessa, dove ci sono restrizioni sull'immissione dei dati, dobbiamo utilizzare etichette e segnaposto, ad esempio una spiegazione della lunghezza della password. È meglio posizionare Etichette e segnaposto sopra il campo di input, quindi è ovvio per l'utente in qualsiasi momento cosa sta compilando e come dovrebbe essere fatto.

Nelle applicazioni mobili, non è consigliabile posizionare le etichette sulla stessa riga del campo di input. Questo divora spazio orizzontale utile. Ad esempio, modulo di registrazione Lamoda iPhone.

Due articoli di qualità sull'argomento: i segnaposto nei campi del modulo sono dannosi, l'usabilità dei moduli su dispositivi mobili: non utilizzare mai etichette in linea.

Completamento automatico

Completamento di domini popolari. La libreria iOS di HotelTonight velocizza l'inserimento delle e-mail in base ai domini e-mail più diffusi. Su Android, puoi fare lo stesso manualmente. Tutto ciò velocizza piacevolmente l'inserimento della posta elettronica.

Completamento dei domini di posta più diffusi

E-mail di completamento automatico per gli account Google. Un'app Android può ottenere un elenco di account Google su un dispositivo e suggerire all'utente il completamento automatico. Questo è ciò che fanno Evernote e Instagram, per esempio. Puoi agire in modo diverso: compila automaticamente il campo di input con uno dei indirizzi email... Poiché la maggior parte degli utenti ha un account Google, è probabile che lo faremo bene. Questo è ciò che fanno Facebook e Twitter. iOS non consente l'accesso all'e-mail dell'utente, quindi questo completamento automatico non può essere effettuato.

Posta di completamento automatico per gli account Google in Evernote

Nome di completamento automatico. Sul lato server o nell'applicazione, è possibile salvare la base dei nomi popolari e offrire il completamento automatico all'utente. Su Android, ancora, Google+ può aiutare. Ma questo è ancora un modo ambiguo: dopotutto, l'inserimento di un nome richiede un paio di secondi e qualsiasi completamento automatico distrae l'utente in una certa misura.

Completamento automatico del login utilizzato in precedenza durante l'autorizzazione. Se l'applicazione non passa da un account all'altro, come in Twitter o Gmail ufficiali, è utile completare automaticamente le e-mail / accessi utilizzati in precedenza al momento dell'accesso. Ad esempio, Instagram mostra l'ultimo accesso utilizzato. Tuttavia, questo metodo non è adatto per applicazioni finanziarie, poiché in esse la sicurezza è importante. Se l'utente si è disconnesso dall'applicazione, nessuno dovrebbe sapere quale login ha utilizzato.

Rilevamento automatico ♀ ♂. Le applicazioni possono determinare il sesso in base al nome inserito. Il servizio genderize.io contiene un database di oltre 200.000 nomi, 79 paesi e 89 lingue. 100.000 richieste al mese costano $ 9. C'è un SDK per entrambe le piattaforme. Su Android, puoi provare a ottenere il genere da account Google+. Purtroppo non sempre viene apposto dall'utente, e in Russia il G+ è generalmente poco utilizzato.

Il completamento automatico dell'indirizzo velocizza l'inserimento nei moduli di checkout, a volte tale campo è presente nel modulo di registrazione. C'è una buona panoramica dei servizi che risolvono il problema.

Le password

È difficile inserire la password due volte nell'applicazione. È sufficiente farlo una volta e, se l'immissione è stata effettuata con un errore, l'utente dovrebbe essere in grado di modificare/recuperare la password.

È consuetudine nascondere la password quando la si immette con i punti. Il pulsante "mostra password" è utile: è particolarmente importante nella schermata di registrazione, a meno che non chiediamo all'utente di inserire la password due volte. Questo è implementato in modo interessante nei tracker sportivi Runtastic: viene visualizzata la password, viene premuto il pulsante "occhio".

Il recupero della password non è un'attività primaria. La maggior parte delle app principali invia l'utente a una pagina Web per farlo. Il ripristino non deve essere una schermata separata che si apre nel browser, può essere implementato nella schermata di accesso utilizzando semplici animazioni. Grandi esempi: Airbnb, Tumblr, Runtastic.

Recupero password Tumblr iOS

Controllo campi, tastiera e offerta

È importante verificare la correttezza della compilazione dei campi della domanda stessa. La convalida lato server richiede tempo e infastidisce l'utente. Questa regola si applica anche al controllo degli accessi/e-mail disponibili, che dovrebbero funzionare al volo. Buoni esempi sono - Yandex Music, Twitter.

Per tutti tipi diversi campi, è importante utilizzare i tipi di tastiera appropriati: iOS, Android. Se l'utente inserisce la posta, dovrebbe esserci un segno @ sulla tastiera, numeri per l'immissione di un numero, ecc.

Sai che nessuno legge l'offerta. Penso che la casella di controllo di un accordo con esso sia ridondante: distrae l'utente dal contenuto. È sufficiente inserire il testo "registrandoti accetti la privacy policy e i termini di servizio", evidenziando i link desiderati.

Sociale il network

Questo è il modo più semplice per l'utente di accedere: non è necessario inserire manualmente login e password. È ragionevole ordinare i pulsanti dei social media in base alla frequenza di utilizzo per piattaforma e paese. Google+ è più conveniente per Android, la maggior parte degli utenti in Russia ha VK, ecc. Questo è ciò che fa Foursquare su Android.

Dal punto di vista tecnologico, puoi utilizzare le librerie oAuth universali o gli SDK ufficiali dei social media per implementare l'accesso. Gli SDK ufficiali hanno un vantaggio importante: autorizzano tramite applicazioni installate sia tramite account utente in Impostazioni di sistema... Se un utente accede tramite un social network, è molto probabile che abbia installato l'applicazione corrispondente.

Come funzionano gli SDK ufficiali

Numero di telefono e codice di verifica

In Android, puoi completare automaticamente un numero da una carta SIM, ma questo non funziona su tutti i dispositivi, quindi devi tenerne conto nel codice possibili errori... In pratica, non ho trovato applicazioni che lo facciano, ma l'utilizzo di questo metodo è abbastanza accettabile.

Dopo aver inserito e inviato il numero, l'utente deve inserire il codice dall'SMS. L'app per Android può farlo automaticamente. Questa tecnica è utilizzata da Viber, Telegram, Rocketbank. È importante solo spiegare all'utente che gli SMS arriveranno presto, devi solo aspettare un po'.

Cifre in tessuto. Twitter ha una soluzione pronta all'uso gratuita per l'autorizzazione tramite numero di telefono... È gateway SMS + SDK mobile e web. Aspetto esteriore l'interfaccia all'interno di un determinato framework può essere personalizzata. Questa è la soluzione più semplice pronta all'uso.

Cifre in tessuto

Conclusione

Qui ho cercato di delineare tutti i pensieri che ho formulato di recente sull'accesso all'applicazione e sull'utilizzo dei moduli. Questo post è una specie di lista di controllo, spero ti sia utile. Se hai domande scrivi: [e-mail protetta]