Autentica utente semplicemente facendo clic su un collegamento su un sito esterno

4

Mi è stato solo chiesto di consentire agli utenti di un partner di autenticarsi nel backoffice semplicemente facendo clic su un collegamento nel backoffice. Gli unici dati comuni che abbiamo sono questi utenti mail.

Non riesco a vedere come posso implementarlo in modo sicuro. Qualche informazione?

Sembra che OAuth2 sia la strada da percorrere. Dopo un po 'di lettura suppongo che il flusso debba essere come

  1. dare al backoffice del partner un token di accesso attraverso credenziali del cliente concedere
  2. falli usare questo token chiamando un endpoint che restituirà un link data la posta dell'utente come parametro

Il link conterrà un token univoco di utilizzo che verrà utilizzato per autenticare l'utente.

Dato che tutte le chiamate utilizzano HTTPS, penso che sarebbe sicuro?

    
posta MatTheCat 17.02.2017 - 12:20
fonte

2 risposte

1

Potresti implementare qualcosa come OAuth 2.0 ( example ). Fondamentalmente, hai un'applicazione, un server di autenticazione e un server di risorse. L'applicazione vuole accedere alla tua risorsa attraverso un server di autenticazione / autorizzazione. Una serie di scambi di token in un modo particolare rende possibile farlo in modo sicuro.

    
risposta data 17.02.2017 - 13:55
fonte
0

Sarei molto attento a questo. Probabilmente la prima domanda è: dove vogliono creare il collegamento?

Sarà un collegamento statico per ogni utente? - IDEA CATTIVO

O ci sarà un pulsante sul loro portale con una logica di back-end (connessa al tuo back-end) che creerà un collegamento limitato una tantum con scarsissima scadenza (secondi) e reindirizzamento automatico? - QUESTO POTREBBE FUNZIONARE.

Modifica

Sì, OAuth è una soluzione. Vorrei usare qualcosa di simile:

  1. Fornirai una chiave segreta per PBO.
  2. Diciamo che PBO utilizza il sito partner-backoffice.org, c'è un pulsante "Vai a YBO".
  3. L'utente fa clic sul pulsante e passa a partner-backoffice.org/ybo-oauth (ancora sito PBO)
  4. Lo script / ybo-oauth effettua la richiesta in cURL su YBO (your-backoffice.org/oauth-endpoint) - e invia l'email dell'utente e altri dati rilevanti inclusa la chiave segreta
  5. YBO convalida la chiave segreta e altri dati (sarebbe bello aggiungere gli indirizzi IP PBO alla whitelist) e restituisce il token di accesso con una scadenza molto breve (secondi)
  6. Lo script / ybo-oauth reindirizza l'utente al tuo sito web your-backoffice.org/?access_token = ...
  7. YBO convalida il token di accesso (e controlla la scadenza) e avvia la sessione utente (o qualsiasi altra cosa tu generalmente usi)

Questo dovrebbe funzionare. Se utilizzerai la whitelist HTTPS e IP, potrebbe essere sufficiente per i tuoi scopi.

Abbrs:

  • PBO - backoffice del partner
  • YBO - il tuo backoffice
risposta data 17.02.2017 - 13:08
fonte

Leggi altre domande sui tag