OAuth 2.0客戶端角色被細分為一系列類型和配置,本節(jié)將闡述這些類型和配置。
OAuth 2.0規(guī)范定義了兩種客戶端類型:
保密的客戶端能夠?qū)ν獠勘3挚蛻舳嗣艽a保密。該客戶端密碼是由授權服務器分配給客戶端應用的。為了避免欺騙,該密碼是授權服務器用來識別客戶端的。例如一個保密的客戶端可以是web應用,除了管理員,沒有任何人能夠訪問服務器和看到該密碼。
公有的客戶端不能使客戶端密碼保密。比如移動手機應用或桌面應用會將密碼嵌入在內(nèi)部。這樣的應用可能被破解,并且泄漏密碼。這同于在用戶的瀏覽器上運行的JavaScript應用。用戶可以使用一個JavaScript調(diào)試器來尋找到應用程序,并查看客戶端密碼。
OAuth 2.0規(guī)范也提到了一系列客戶端配置文件。這些配置文件是具體類型的應用程序,這可以是保密或公開的。這些配置文件有:
Web應用是指運行在Web服務器內(nèi)的應用。實際上,Web應用典型地由瀏覽器部分和服務端部分組成。如果Web應用需要訪問資源服務器(如Facebook賬號),然后客戶端密碼被保存在服務器上。因此密碼是保密的。
這里闡釋了一個保密的客戶端應用:
保密的客戶端:web應用
用戶代理應用比如運行在瀏覽器上的的JavaScript應用。瀏覽器是用戶代理。用戶代理應用可以保存在web服務器上,但應用程序只運行一次下載的用戶代理。一個例子就像一個JavaScript游戲只能運行在瀏覽器里。
這里闡釋了一個客戶端用戶代理應用:
公有客戶端:用戶代理應用
原生應用比如桌面應用或移動手機應用。原生應用典型地被安裝在用戶計算機或設備(手機,平板等)上。因此客戶端密碼也被存儲在用戶計算機或設備上。
這里闡釋了客戶端原生應用:
公有客戶端:本地應用
有些應用是這些配置的混合使用。比如本地應用也可以有服務器部分,來做一些工作(如數(shù)據(jù)存儲)。OAuth2.0規(guī)范沒有提及這種混合型。然而,在大多數(shù)情況下,混合型將能夠使用這些配置文件的認證模型。
更多建議: