跨用戶端身分

開發人員建構軟體時,通常會包含在網路伺服器上執行的模組、在瀏覽器中執行的其他模組,以及其他以原生行動應用程式形式執行的模組。一般而言,開發人員和使用自家軟體的人員都會將這些模組視為單一應用程式的一部分。

Google 的 OAuth 2.0 實作支援這個世界檢視模式。如要使用任何 OAuth2.0 式服務,您必須在 Google API Console中設定軟體。 API Console 中的機構單位為一個「專案」,可以對應至多元件應用程式。您可以為每個專案提供品牌資訊,必須指定應用程式要存取哪些 API。多元件應用程式的每個元件都是由「用戶端 ID」識別,這是在 API Console中產生的不重複字串。

跨客戶授權目標

當應用程式使用 OAuth 2.0 進行授權時,應用程式會代表使用者要求取得 OAuth 2.0 存取權杖以存取資源,而應用程式會由一或多個範圍字串識別該資源。一般而言,系統會要求使用者核准存取要求。

當使用者授予特定範圍的應用程式存取權時,使用者會查看使用者同意畫面,其中包含您在 Google API Console中設定的專案層級產品品牌。因此,Google 會考量當使用者已授予專案中任何用戶端 ID 特定範圍的存取權時,授予的權限就代表使用者對該範圍對整個應用程式中的信任。

而是只要讓 Google 的授權基礎架構以可靠的方式驗證應用程式元件 (包括網頁應用程式、Android 應用程式、Chrome 應用程式、iOS 應用程式、原生電腦版應用程式和有限輸入裝置),系統就不會提示使用者重複核准同一個邏輯應用程式的存取資源。

跨用戶端存取權杖

軟體取得 OAuth 2.0 存取權杖的方式有很多,取決於執行程式碼的平台。詳情請參閱使用 OAuth 2.0 存取 Google API。一般而言,授予存取權杖時,必須經過使用者核准。

幸好,Google 授權基礎架構可在評估是否要為相同專案中的其他使用者提供授權時,使用特定專案中用戶端 ID 的使用者核准相關資訊。

事實上,如果 Android 應用程式要求特定範圍的存取權杖,且提出要求的使用者已授予相同範圍中相同專案的網頁應用程式的核准,系統不會再次詢問使用者。這項功能在這兩種情況下都可運作:如果 Android 應用程式已授予某個範圍的存取權,就不會再要求相同專案中的其他用戶端 (例如網頁應用程式) 存取該範圍。