È sicuro utilizzare OAuth (concessione delle credenziali della password del proprietario della risorsa) per l'autenticazione?

1

In particolare, devo preoccuparmi del problema del vice confuso se sto solo cercando di autorizzare un utente contro una singola API?

Ad esempio: un servizio di messaggistica di base vorrà autenticarsi e quindi autorizzare un utente a inviare un messaggio.

Utilizzando un'applicazione mobile, è sicuro / intelligente utilizzare le credenziali della password del proprietario della risorsa Concessione in OAuth2 come forma di autenticazione e autorizzazione per l'invio di un messaggio tramite questa API?

    
posta d1str0 07.09.2016 - 23:34
fonte

2 risposte

1

Il più grande problema di sicurezza associato a Concessione delle credenziali password del proprietario di risorse è che l'applicazione / il client è a conoscenza della password dell'utente.

Ad esempio, se l'applicazione / client proveniva da una società AwesomeACME e il provider di identità era Google, certamente non vorrei che l'applicazione / client di AwesomeACME conoscesse la mia password Google.

Tuttavia, se AwesomeACME dovesse anche essere l'IdP, sarei meno preoccupato, ma mi chiederei comunque perché non hanno usato la concessione del codice di autorizzazione.

    
risposta data 16.01.2018 - 23:18
fonte
0

Il problema con la concessione di credenziali password è che le credenziali vengono inoltrate in testo normale. Non è un problema di per sé, se il backend è chiuso (serveride), ma ciò vanifica lo scopo del tuo metodo di autenticazione del client.

OAuth può essere utilizzato per dimostrare l'autenticazione dell'oggetto, ma non puoi utilizzare OAuth per questo. Il modo migliore sarebbe utilizzare la sovvenzione del codice di autenticazione e inviare l'utente a una pagina di accesso sul provider OAuth tramite una visualizzazione Web. La prima volta che l'utente può decidere di accettare o rifiutare il client OAuth. Successivamente il client (la tua app) può parlare con l'API utilizzando il token di accesso al portatore. Se il provider OAuth associa il token di accesso con l'oggetto di autenticazione (lo consiglio), l'API è sempre in grado di controllare lo stato di autenticazione.

Per un'autenticazione più sofisticata, dovresti prendere in seria considerazione JWT. JWT e OAuth giocano bene insieme e prendono il meglio di entrambi.

    
risposta data 08.09.2016 - 11:21
fonte