跨客戶身份

開發人員構建軟件時,通常包括在Web服務器上運行的模塊,在瀏覽器中運行的其他模塊以及作為本機移動應用程序運行的其他模塊。開發人員和使用其軟件的人員通常都將所有這些模塊視為單個應用程序的一部分。

Google的OAuth 2.0實現支持這種世界觀。要使用任何基於OAuth2.0的服務,您必須在Google API Console中設置軟件。 API Console中的組織單位是一個“項目”,可以對應一個多組件應用程序。對於每個項目,您都可以提供品牌信息,並且必須指定應用程序將訪問哪些API。多組件應用程序的每個組件都由客戶端ID標識客戶端ID是在API Console中生成的唯一字符串。

跨客戶授權目標

當應用程序使用OAuth 2.0進行授權時,該應用程序代表用戶執行操作,以請求OAuth 2.0訪問令牌來訪問資源,該令牌由一個或多個作用域字符串標識。通常,要求用戶批准訪問。

當用戶為特定範圍授予對您的應用的訪問權限時,該用戶將查看用戶同意屏幕,其中包括您在Google API Console中設置的項目級產品品牌。因此,Google認為,當用戶向項目中的任何客戶端ID授予對特定範圍的訪問權限時,授予表示該用戶對該範圍內的整個應用程序的信任。

結果是,只要Google的授權基礎架構可以可靠地對應用程序的組件進行身份驗證,則不應提示用戶多次批准同一邏輯應用程序對任何資源的訪問,該授權基礎結構如今包括Web應用程序,Android應用程序,Chrome應用程序,iOS應用程序,本機桌面應用程序和有限輸入的設備。

跨客戶端訪問令牌

軟件可以通過多種方式獲得OAuth 2.0訪問令牌,具體取決於運行代碼的平台。有關詳細信息,請參閱使用OAuth 2.0訪問Google API 。通常,授予訪問令牌時需要用戶批准。

幸運的是,當評估是否要授權同一項目中的其他項目時,Google授權基礎結構可以使用有關給定項目中的客戶ID的用戶批准信息。

結果是,如果Android應用程序請求特定範圍的訪問令牌,並且發出請求的用戶已經針對同一範圍的同一項目中的Web應用程序授予了批准,則不會再次要求用戶批准。這兩種方法都起作用:如果您的Android應用程序中已授予對范圍的訪問權限,則同一項目中的另一個客戶端(例如Web應用程序)將不再再次要求它。