Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The problem that you describe with "delegated authentication" is a real one. It means that a "client application" using it's credentials has access to the whole breadth of user data. This access can be used maliciously (for example a "semi-trusted" app harvesting api data) or negligently (for example an app accidentally exposing a Direct Object Reference Vulnerability - <a href="https://www.owasp.org/index.php/Top_10_2010-A4-Insecure_Direct_Object_References" rel="nofollow">https://www.owasp.org/index.php/Top_10_2010-A4-Insecure_Direct_Object_References</a>)</p> <p>Probably the most prevalent "token based" scheme is OAuth2 (<a href="http://oauth.net/2/" rel="nofollow">http://oauth.net/2/</a>), and the precursor, OAuth, which many sites choose to continue to use.</p> <p>OAuth2 has a number of roles:</p> <ol> <li>resource owner (the user in your case) </li> <li>resource server (your api)</li> <li>client (the apps you talk about) </li> <li>authorization server (not clear who or what would fulfil this role in your case)</li> </ol> <p>The basic scheme is that the resource owner authenticates using their credentials directly with the authorization server. They are then asked if they want to grant some information (which may just be a persistent identifier, or a description of the information exposed by your api) to some client. When they accept an 'auth code' is sent to the client and they use that (combined with their own credentials) to receive an 'access token'. This access token can then be used to authenticate against the resource server (which can check it's authenticity back against the authorization server).</p> <p>Normally the way this is used is that the authorization server and the resource server are owned and managed by the same entity (for example google and facebook would fulfil this role) and then clients are independently managed.</p> <p>The scheme can also be used internally within an organisation without the "explicit grant" which can still at least confirm that a specific end-user is present before releasing any data from an api.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload