reading-notes

Software Development reading-notes repository

View the Project on GitHub

Code401# What is OAuth

  1. What is 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 actually sharing the initial, related, single logon credential

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

login/signup with google account on canvas

  1. How does OAuth work? What are the steps that it takes to authenticate the user?
  1. What is OpenID?

human verification / to check for bots

Authorization and Authentication flows

  1. What is the difference between authorization and authentication? authorization and authentication

  2. What is Authorization Code Flow?

authorization

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

Auth with proof

  1. What is Implicit Flow with Form Post? Implicit

  2. What is Client Credentials Flow?

With machine-to-machine (M2M) applications, such as CLIs, daemons, or services running on your back-end, the system authenticates and authorizes the app rather than a user. For this scenario, typical authentication schemes like username + password or social logins don’t make sense. Instead, M2M apps use the Client Credentials Flow, in which they pass along their Client ID and Client Secret to authenticate themselves and get a token.

  1. What is Device Authorization Flow?

With input-constrained devices that connect to the internet, rather than authenticate the user directly, the device asks the user to go to a link on their computer or smartphone and authorize the device. This avoids a poor user experience for devices that do not have an easy way to enter text.

device

  1. What is Resource Owner Password Flow?

    Though we do not recommend it, highly-trusted applications can use the Resource Owner Password Flow , which requests that users provide credentials (username and password), typically using an interactive form. Because credentials are sent to the backend and can be stored for future use before being exchanged for an Access Token, it is imperative that the application is absolutely trusted with this information

password