OAuth client authentication for public clients -
good morning,
i spent quite time researching oauth 2 spec , different grant , client types. haven't found satisfying answer though question of how authenticate public clients (i.e. mobile installed apps) using client secrets.
i looked @ fb , google , realised use bundleid (ios) , public signing key (android).
can explain how client auth works in these cases, how complements/fits in oauth 2.0 spec , how security loop holes avoided (i.e. decompilation of mobile app code) ?
thx nick
the short answer: public clients not authenticated in oauth 2.0.
the specification distinguishes confidential (usually webapp) , public (usually embedded) clients. confidential clients use authorization code grant scenario maximal security , authenticate. however, applications installed on user device, javascript apps not hide client_secret , received authorization code, standard made simplified scenario them: implicit grant flow.
in scenario, no client_secret or code => token exchange needed. note it's less secure design because embedded applications less secure, steps security cannot protected omitted. client uses client_id without client_secret , retrieves token authorization endpoint instead of authorization code. safety still present in scenario using https, explicit authorization of request user , returning results registered redirect_uri. note specification forbids issuing refresh token in scenario safety reasons.
Comments
Post a Comment