17. 4種Authorization Grant方法(Grant Flows)
Authorization Code Grant Type Flow
Implicit Grant Type Flow
Resource Owner Password Credentials
Grant Type Flow
Client Credentials Grant Type Flow
18. 4種Authorization Grant方法(Grant Flows)
Authorization Code Grant Type Flow
要向 Authorization Server 先取得 Grant Code再
取得 Access Token (兩步)
適合 Confidential Clients ,如部署在 Server 上
面的應用程式
可以核發 Refresh Token
需要 User-Agent Redirection
各大社群網站最常使用
19. 4種Authorization Grant方法(Grant Flows)
Implicit Grant Type Flow
Authorization Server 直接向 Client 核發 Access Token
(一步)
適合非常特定的 Public Clients ,例如跑在 Browser 裡面
的應用程式
Authorization Server 不必(也無法)驗證 Client 的身份
禁止核發 Refresh Token
需要 User-Agent Redirection
有資料外洩風險
20. 4種Authorization Grant方法(Grant Flows)
Resource Owner Password Credentials Grant
Type Flow
Resource Owner 的帳號密碼直接拿來當做 Grant
適用於 Resource Owner 高度信賴的 Client (像是
OS 內建的)或是官方應用程式
其他流程不適用時才能用
可以核發 Refresh Token
沒有 User-Agent Redirection
21. 4種Authorization Grant方法(Grant Flows)
Client Credentials Grant Type Flow
Client 的 ID 和 Secret 直接用來當做 Grant
適用於跑在 Server 上面的 Confidential
Client
不建議核發 Refresh Token
沒有 User-Agent Redirection
22. Authorization Code Grant Type Flow
Resource
Owner
Client
Authorization
Server
User Agent
Client將Resource Owner的User Agent
轉到Authorization Server,並告知驗證
完成後的轉址
GET
步驟(A)
23. Authorization Code Grant Type Flow
Resource
Owner
Client
Authorization
Server
User Agent
Resource Owner透過User Agent
對Authorization Server驗證
GET
步驟(B)
24. Authorization Code Grant Type Flow
Resource
Owner
Client
Authorization
Server
User Agent
將Authorization Code傳回給Client
步驟(C)
25. Authorization Code Grant Type Flow
Resource
Owner
Client
Authorization
Server
User Agent
Client將Authorization Code向
Authorization Server取得Access Token,
並告知回傳Access Token網址
POST
步驟(D)
26. Authorization Code Grant Type Flow
Resource
Owner
Client
Authorization
Server
User Agent
Authorization Server核發Access Token
步驟(E)