Correggi il metodo auth usando oAuth 2.0?

1

Ho provato a capirci qualcosa su oAuth 2.0, ma sto cercando di capire il modo corretto di implementarlo per il nostro sistema, dal momento che ci sono molti approcci diversi.

Le nostre specifiche sono:

  • Protezione di un'API REST.
  • App e siti web personali si connettono alla nostra API.
  • Gli utenti accedono ai nostri servizi senza credenziali.
  • Attualmente la nostra API è privata ma potrebbe renderla pubblica in futuro.

Dalla ricerca che ho fatto, penso che dovrei usare l'autenticazione oAuth 2.0 (Two-Legged) con il tipo di concessione "Credenziali client".

Tuttavia, temo di poter fraintendere il processo, poiché sembrerebbe che con questo metodo tutto ciò che è richiesto sia l'invio attraverso ConsumerId e ConsumerSecret. Considerando che, il metodo OAuth 1.0 richiede un HashKey, ConsumerKey, Nonce ecc.

In sintesi, le mie domande sono:

  • OAuth 2.0 (Two-Legged) utilizza "Credenziali client" l'approccio migliore da seguire per me.
  • Il flusso di autenticazione è semplice come inviare ClientId e ClientSecret e recuperare il token al portatore.

Grazie in anticipo

Fonti che ho usato per oAuth 2.0 (Two-Legged)

OAuthBible - Stabilisce tutti i diversi approcci oAuth

Mostra come OAuth (Two-Legged) è implementato in 1.0 e 2.0

www.tomdupont.net/2011/03/oauth-1.html

    
posta Kyle 20.01.2015 - 11:45
fonte

1 risposta

0

Se non si sta autenticando l'utente, IMHO non ha senso usare oAuth. oAuth è tutto per autenticare l'utente e autorizzare un'applicazione a fare cose per conto di quell'utente. se si desidera autenticare la propria applicazione con l'API, è sufficiente utilizzare SSL con l'autenticazione del client, ovvero eseguire tre operazioni: autenticare l'API per l'applicazione, autenticare l'applicazione nell'API e crittografare le comunicazioni tra di esse. SSL con autenticazione client richiede che oltre al server che invia il suo certificato al client anche il server richieda il certificato client e possa autenticare il client.

NOTA: questo è solo nel caso di un'applicazione di back-end come un'applicazione web. Se intendi un'applicazione client per accedere alla tua API, non hai modo di mantenere la tua API davvero privata. In tal caso, puoi provare a oscurare la tua API dal pubblico usando qualche tipo di token, ma questo token dovrà essere incorporato nel tuo codice client che chiunque con abilità di reverse engineering di base sarà in grado di estrarre e utilizzare.

    
risposta data 20.01.2015 - 15:30
fonte

Leggi altre domande sui tag