cosa significa "client_id" nella concessione delle credenziali password di OAuth 2.0?

1

I client pubblici non possono nascondere le loro richieste. Pertanto, la concessione di credenziali password non richiede clientSecret . Quello che sono curioso è che è necessario client_id ? perché l'hacker o l'utente client possono conoscere o rintracciare l'id_client e fare facilmente la stessa richiesta. I client pubblici come le app per dispositivi mobili o le app Web non possono garantire che si tratti di un client riservato.

Voglio davvero sapere come i clienti pubblici risolvono questo problema. Ad esempio l'app per dispositivi mobili di Facebook e Google Inbox. Hanno implementato il modo di autenticazione per se stessi? Eliminare OAuth 2.0?

    
posta BaHwan Han 10.04.2016 - 18:28
fonte

1 risposta

1

In breve:
client_id e client_secret vengono utilizzati per autenticare APP .
per l'autenticazione di < username e password < strong> user .

Significa anche protezione a doppio strato.

La specifica dice:

the client MUST authenticate with the authorization server as described in Section 3.2.1.

L'autenticazione del client viene eseguita utilizzando un valore client_id e un valore client_secret .

In realtà l'ultimo paragrafo della sezione 3.2.1 dice

A public client that was not issued a client password MAY use the client_id request parameter to identify itself when sending requests to the token endpoint (e.g. for the purpose of providing end-user context, client usage statistics).

Tuttavia, potrebbe semplicemente. Ma Google fornisce una client_id e una client_secret alla console dello sviluppatore quando tenti di utilizzare un'API.

Se si desidera utilizzare Resource Owner Password Credentials per un'API o un'autorizzazione Web, è possibile fornire una pagina di registro ai tuoi clienti per registrarsi. (Raccomando di utilizzare Flusso di credenziali client per API)

Se vuoi utilizzare Resource Owner Password Credentials per un'app per dispositivi mobili, potresti fornire un% standartclient_id come AwesomeAPP e un client_secret come Bl**123_Blabla .

Oppure puoi utilizzare AwesomeAPP_v1.0 come client_id per tenere traccia del numero di persone che utilizzano la versione dell'app, anche se non è il modo migliore. Ma puoi.

Spero che questo aiuti ...

    
risposta data 22.07.2016 - 16:00
fonte

Leggi altre domande sui tag