1. 程式人生 > >OAuth 2.0系列教程(四) 客戶端型別

OAuth 2.0系列教程(四) 客戶端型別

作者:Jakob Jenkov   譯者:林浩    校對:郭蕾

OAuth 2.0客戶端角色被細分為一系列型別和配置,本節將闡述這些型別和配置。

OAuth 2.0規範定義了兩種客戶端型別:

  • 保密的
  • 公有的

保密的客戶端能夠對外部保持客戶端密碼保密。該客戶端密碼是由授權伺服器分配給客戶端應用的。為了避免欺騙,該密碼是授權伺服器用來識別客戶端的。例如一個保密的客戶端可以是web應用,除了管理員,沒有任何人能夠訪問伺服器和看到該密碼。

公有的客戶端不能使客戶端密碼保密。比如移動手機應用或桌面應用會將密碼嵌入在內部。這樣的應用可能被破解,並且洩漏密碼。這同於在使用者的瀏覽器上執行的JavaScript應用。使用者可以使用一個JavaScript偵錯程式來尋找到應用程式,並檢視客戶端密碼。

客戶端配置

OAuth 2.0規範也提到了一系列客戶端配置檔案。這些配置檔案是具體型別的應用程式,這可以是保密或公開的。這些配置檔案有:

  • web應用
  • 使用者代理
  • 原生

Web應用

Web應用是指執行在Web伺服器內的應用。實際上,Web應用典型地由瀏覽器部分和服務端部分組成。如果Web應用需要訪問資源伺服器(如Facebook賬號),然後客戶端密碼被儲存在伺服器上。因此密碼是保密的。

這裡闡釋了一個保密的客戶端應用:

保密的客戶端:web應用

使用者代理應用

使用者代理應用比如執行在瀏覽器上的的JavaScript應用。瀏覽器是使用者代理。使用者代理應用可以儲存在web伺服器上,但應用程式只執行一次下載的使用者代理。一個例子就像一個JavaScript遊戲只能執行在瀏覽器裡。

這裡闡釋了一個客戶端使用者代理應用:

公有客戶端:使用者代理應用

原生應用

原生應用比如桌面應用或移動手機應用。原生應用典型地被安裝在使用者計算機或裝置(手機,平板等)上。因此客戶端密碼也被儲存在使用者計算機或裝置上。

這裡闡釋了客戶端原生應用:

公有客戶端:本地應用

混合應用

有些應用是這些配置的混合使用。比如本地應用也可以有伺服器部分,來做一些工作(如資料儲存)。OAuth2.0規範沒有提及這種混合型。然而,在大多數情況下,混合型將能夠使用這些配置檔案的認證模型。