reading-notes

Reading 15 - Authentication

Source: What is 0Auth?

Q1 What is OAuth?

OAuth is an open-standard authorization protocol or framework that describes how unrelated servers and services can safely allow authenticated access to their assets without sharing their credentials.

Q2 Give an example of what using OAuth would look like.

Using OAuth is when you go to log onto a website, and it lets your log on through another service’s logon.

Q3 How does OAuth work? What are the steps that it takes to authenticate the user?

  1. Using OAuth, a website connects to a second website on behalf of the user using the user’s verified identity.

  2. The second site generates a single-use token and secret unique to the transaction

  3. The first site provides the token and secret to the user’s software.

  4. The user’s software gives the request token and secret to their authorization provider (which may be the second site, or another site)

  5. The user is asked to approve the authorization to the second website

  6. The user approves

  7. The user is granted an access token

  8. The user gives the access token to the first website

  9. The first website gives the access token to the second website as proof of authentication

  10. The second website grants access to the site

  11. The user views the results of the successful transaction.

Q4 What is OpenID?

OpenID is like OAuth, but for authentication. “OpenID is for humans logging into machines. OAuth is for machines logging into machines on behalf of humans”

Source: Authorization and Authentication flows

Q5 What is the difference between authorization and authentication?

Authorization verifies what a user has access to.

Authentication verifies who a user is.

Q6 What is Authorization Code Flow?

Authorization code flow involves exchanging an Authorization Code for a token

Q7 What is Authorization Code Flow with Proof Key for Code Exchange (PKCE)?

A grant type for applications that cannot securely store a client secret, like native or single-page apps.

Q8 What is Implicit Flow with Form Post?

A flow that uses OpenID Connet (OIDC) to implement web sign-ins without needing a secret.

Q9 What is Client Credentials Flow?

A flow that is used by machine-to-machine(M2M) applications to authenticate and authorize instead of the user needing to.

Q10 What is Device Authorization Flow?

A flow where a user is asked to click a link in order to authorize a device.

Q11 What is Resource Owner Password Flow?

A flow where users enter their username and password directly.

Things I want to know more about

Is one company involved that does all of this, and how do they make their money?