OAuth 2.0系列教程(四) 客戶端型別
作者:Jakob Jenkov 譯者:林浩 校對:郭蕾
OAuth 2.0客戶端角色被細分為一系列型別和配置,本節將闡述這些型別和配置。
OAuth 2.0規範定義了兩種客戶端型別:
- 保密的
- 公有的
保密的客戶端能夠對外部保持客戶端密碼保密。該客戶端密碼是由授權伺服器分配給客戶端應用的。為了避免欺騙,該密碼是授權伺服器用來識別客戶端的。例如一個保密的客戶端可以是web應用,除了管理員,沒有任何人能夠訪問伺服器和看到該密碼。
公有的客戶端不能使客戶端密碼保密。比如移動手機應用或桌面應用會將密碼嵌入在內部。這樣的應用可能被破解,並且洩漏密碼。這同於在使用者的瀏覽器上執行的JavaScript應用。使用者可以使用一個JavaScript偵錯程式來尋找到應用程式,並檢視客戶端密碼。
客戶端配置
OAuth 2.0規範也提到了一系列客戶端配置檔案。這些配置檔案是具體型別的應用程式,這可以是保密或公開的。這些配置檔案有:
- web應用
- 使用者代理
- 原生
Web應用
Web應用是指執行在Web伺服器內的應用。實際上,Web應用典型地由瀏覽器部分和服務端部分組成。如果Web應用需要訪問資源伺服器(如Facebook賬號),然後客戶端密碼被儲存在伺服器上。因此密碼是保密的。
這裡闡釋了一個保密的客戶端應用:
使用者代理應用
使用者代理應用比如執行在瀏覽器上的的JavaScript應用。瀏覽器是使用者代理。使用者代理應用可以儲存在web伺服器上,但應用程式只執行一次下載的使用者代理。一個例子就像一個JavaScript遊戲只能執行在瀏覽器裡。
這裡闡釋了一個客戶端使用者代理應用:
原生應用
原生應用比如桌面應用或移動手機應用。原生應用典型地被安裝在使用者計算機或裝置(手機,平板等)上。因此客戶端密碼也被儲存在使用者計算機或裝置上。
這裡闡釋了客戶端原生應用:
混合應用
有些應用是這些配置的混合使用。比如本地應用也可以有伺服器部分,來做一些工作(如資料儲存)。OAuth2.0規範沒有提及這種混合型。然而,在大多數情況下,混合型將能夠使用這些配置檔案的認證模型。