【程式設計開發】之 OAuth2
一、什麼是 OAuth2
1、OAuth2正式定義
2、令牌的核心
3、OAuth2的歷史
4、OAuth2的優勢
5、OAuth2的不足
6、Auth2涉及的角色
7、OAuth2術語
8、OAuth2 令牌的型別
9、OAuth2的誤解
總結
二、OAuth2 的使用場景
1、OAuth2 解決的問題
- OAuth2 是針對特定問題的一種解決方案
- OAuth2 主要解決兩個問題:
- 開發系統間的授權問題
- 分散式微服務的安全
2、開發系統間的授權問題
比如:使用者想要在雲沖印服務上列印照片,雲沖印服務需要訪問雲端儲存服務上的資源
我們知道圖片資源的擁有者為使用者,使用者可以使用密碼登入訪問,而列印服務商是沒有許可權進行訪問列印圖片的:
要解決這個問題我們有一下方法:
方式一:使用者名稱密碼複製
但這種方式會造成使用者的密碼洩露,顯示是行不通的。
方式二:使用通用開發者key
但這種方式只適用於合作商或者授信的不同業務部門之間,比如阿里巴巴和百度合作商,但問題是如果你是創業公司,想要和百度合作顯然是不行的,因為公司實力差距大不對等。
方式三:頒發令牌
接近 OAuth2 方式,需要考慮如何管理令牌、頒發令牌、吊銷令牌,需要統一的協議,因此就有了OAuth2協議。所以解決授權問題的最佳方式就是使用令牌來授權。
3、分散式微服務安全
除了開放系統授權外,OAuth2 還可以應用於現代分散式微服務安全
傳統單塊應用的安全:
現代微服務安全:
- 現代微服務中系統微服務化以及應用的形態和裝置型別增多,不能用傳統的登入方式;
- 核心的技術不是使用者名稱和密碼,而是 token,由 AuthServer 頒發 token,使用者使用 token 進行登入。
典型的 OAuth2 應用場景:
4、總結
說白了 OAuth2 就是一種解決方案:一種令牌機制,按照一定規則生成字串,字串中可包含使用者資訊。而具體的生產規則可以使用 JWT 工具來生成,OAuth2 僅僅提供這種解決方案而已。
相關文章
- 【程式設計開發】之開發解決的“坑“程式設計
- Flutter開發之非同步程式設計Flutter非同步程式設計
- 併發程式設計之volatile程式設計
- 併發程式設計之:Atomic程式設計
- 併發程式設計之:Lock程式設計
- 併發程式設計之:ForkJoin程式設計
- 併發程式設計之:ThreadLocal程式設計thread
- 併發程式設計之:CountDownLatch程式設計CountDownLatch
- 併發程式設計之:synchronized程式設計synchronized
- 併發程式設計之:JMM程式設計
- Java 程式設計開發Java程式設計
- Java併發程式設計之synchronizedJava程式設計synchronized
- Go 併發程式設計之 MutexGo程式設計Mutex
- iOS開發 面向切面程式設計之 Aspects 原始碼解析iOS程式設計原始碼
- 程式設計體系結構(07):JavaEE之Web開發程式設計JavaWeb
- Java程式設計開發之資料圖表分析模型Java程式設計模型
- Python併發程式設計之從效能角度來初探併發程式設計(一)Python程式設計
- 好程式設計師web前端開發測驗之css部分程式設計師Web前端CSS
- 3、Dart:併發程式設計之IsolateDart程式設計
- 併發程式設計之 CAS 的原理程式設計
- 併發程式設計之Wait和Notify程式設計AI
- 併發程式設計之:執行緒程式設計執行緒
- Java 併發程式設計之 Condition 介面Java程式設計
- 併發程式設計之:JUC併發控制工具程式設計
- WEB程式設計開發常用的程式碼Web程式設計
- Java併發程式設計之鎖機制之AQSJava程式設計AQS
- TCP程式設計之服務端和客戶端的開發TCP程式設計服務端客戶端
- 併發程式設計之 wait notify 方法剖析程式設計AI
- 併發程式設計之 Java 三把鎖程式設計Java
- Java併發程式設計之原子變數Java程式設計變數
- 併發程式設計之 LinkedBolckingQueue 原始碼剖析程式設計原始碼
- 併發程式設計之 ThreadLocal 原始碼剖析程式設計thread原始碼
- 併發程式設計之 Condition 原始碼分析程式設計原始碼
- 併發程式設計之 CyclicBarrier 原始碼分析程式設計原始碼
- 併發程式設計之 CountDown 原始碼分析程式設計原始碼
- 併發程式設計之 ConcurrentLinkedQueue 原始碼剖析程式設計原始碼
- Java併發程式設計之Java CAS操作Java程式設計
- Go併發程式設計之美-CAS操作Go程式設計