1 / 12

Deploying OAuth for native apps

Deploying OAuth for native apps. Premise. Based on a number of different deployment characteristics, you will be led to/from choices you need to make about How you authenticate the user How you get the tokens to the native app The OAuth grant type to use Note – the rules are not hard & fast

samson
Download Presentation

Deploying OAuth for native apps

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Deploying OAuth for native apps

  2. Premise • Based on a number of different deployment characteristics, you will be led to/from choices you need to make about • How you authenticate the user • How you get the tokens to the native app • The OAuth grant type to use • Note – the rules are not hard & fast • Generally, certain characteristics will tend to preclude particular choices (these shown in red in the following)

  3. Characteristics • Local authn vs 3rd party authn – will the AS authenticate the user of the app itself, or will it rely on SSO from a 3rd party IdP? • Own app vs do not own app – does the AS/RS create and distribute its own native application (eg Salesforce Chatter) or is the app created by a 3rd party (e.g. Seesmic as client of Chatter) • Need refresh vs do not need refresh – do you need refresh tokens to enable long-lived SSO? • Does the app distribution channel guard against rogue apps getting installed and creating a phishing risk? • Is it important to keep user in application context or not? • Is the app 'hybrid', ie a native shell around web app internals?

  4. Key Choices • User authentication mechanism - Will the app use a browser as the means of getting the user authenticated? If so, will the browser be separate or embedded in the app? If not, will the app collect the user credentials directly? • OAuth grant type – authz code, implicit, or RO creds? • Token passing mechanism - If you use a browser for user authentication, how will you get the token from the browser to the native app, via cookie, HTML title, or a custom URI scheme?

  5. User authentication mechanism Embedded browser External browser Inline Custom Authz code Implicit Cookie Title RO Creds OAuth grant type Token passing mechanism

  6. Embedded browser External browser Inline Need 3rd party authn? Custom Authz code Implicit Cookie Title RO Creds Justification – if you need 3rd party authn, you likely want a browser for SSO. The alternative is collecting the creds in the app, and having the AS proxy the verification

  7. Embedded browser External browser Inline Don’t own app? Custom Authz code Implicit Cookie Title RO Creds Justification – if the AS/RS doesn’t distribute its own app, it shouldn't ask user to enter creds into a 3rd party app, or into an embedded browser, in which the native app could see passwords presented

  8. Embedded browser External browser Inline Need refresh? Custom Authz code Implicit Cookie Title RO Creds Justification – the implicit grant doesn’t support refresh tokens

  9. Embedded browser External browser Inline Phishing risk? Custom Authz code Implicit Cookie Title RO Creds Justification – if the app distribution channel can't guarantee a rogue app can't claim the custom scheme, may lead to preference for embedded browser or inline

  10. Embedded browser External browser Inline Keep user in app context? Custom Authz code Implicit Cookie Title RO Creds Justification - external browser takes user out of application context. And if you are embedding the browser, the custom scheme may be unnecessary overhead.

  11. Embedded browser External browser Inline Hybrid app? Custom Authz code Implicit Cookie Title RO Creds Justification - a hybrid app relies on an embedded browser by definition.

  12. Comparison of different authn models Embedded browser Inline • No need to leave app context • Pwd shared with 3rd party • App owns login UI • Enables SSO • Enables strong authn • AS owns login UI • Visual trust cues • Authn can leverage stored pwds • Authn can leverage existing sessions Separate browser

More Related