- Mastering OAuth 2.0
- Charles Bihis
- 306字
- 2021-07-30 10:05:09
Authentication versus authorization
Before we dive into our discussion of OAuth 2.0, it is important to first define some terms. There are two terms in particular that are pivotal to our understanding of OAuth 2.0 and its uses: authentication and authorization. These terms are often conflated and sometimes interchanged, but they actually represent two distinct concepts, and their distinction is important to understand before continuing our discussion of OAuth 2.0.
Authentication
Authentication is the process of validating whether a person (or system) is actually who they say they are.
An example of this is when you go to the bank to withdraw money, and you provide your bank card and PIN to the teller. In some cases, the teller may ask for additional identification, such as your driver's license, to verify your identity. You may recognize this in other instances when you provide your username and password to a website, say, to view a document.
Authorization
Authorization is the process of determining what actions you are allowed to perform once you have been authenticated.
Referring to our previous bank example, once the teller has verified who you are, they can then proceed to fulfill your request to withdraw money. In order to do this, they must check whether you are allowed to withdraw money from the account that you are requesting (that is, you are actually the owner of the account). Relating to our website example, once you have authenticated by providing your username and password, the website will then check to see whether you are indeed allowed to see the document that you are requesting. This is usually done by looking up your permissions in some access control list.
Now that we have established the distinction between these two important concepts, we can look at what OAuth 2.0 actually is and the problems it solves.
- Java高并發核心編程(卷2):多線程、鎖、JMM、JUC、高并發設計模式
- Building a RESTful Web Service with Spring
- Offer來了:Java面試核心知識點精講(原理篇)
- 深度學習:算法入門與Keras編程實踐
- Swift Playgrounds少兒趣編程
- Java網絡編程實戰
- OpenGL Data Visualization Cookbook
- OpenCV 3計算機視覺:Python語言實現(原書第2版)
- Scratch從入門到精通
- PowerDesigner 16 從入門到精通
- Learning Image Processing with OpenCV
- Python深度學習(第2版)
- PHP從入門到精通(第7版)
- 計算機輔助設計與繪圖技術(AutoCAD 2014教程)(第三版)
- Programming MapReduce with Scalding