開發人員建構軟體時,通常會包含在網路伺服器上執行的模組、在瀏覽器中執行的其他模組,以及以原生行動應用程式形式運作的其他模組。開發人員和使用者通常會將所有這些模組視為單一應用程式的一部分。
Google 的 OAuth 2.0 實作方式支援這種觀點。如要使用任何以 OAuth 2.0 為基礎的服務,您必須在 Google API Console中設定軟體。 API Console 中的組織單位是「專案」,可對應至多元件應用程式。您可以為每個專案提供品牌資訊,並必須指定應用程式將存取哪些 API。多元件應用程式每個元件都有一個「用戶端 ID」來識別,用戶端 ID 是在 API Console中產生的不重複字串。
跨客戶授權目標
當應用程式使用 OAuth 2.0 進行授權時,應用程式會代替使用者要求 OAuth 2.0 存取權杖,以便存取應用程式透過一或多個範圍字串識別的資源。通常會要求使用者核准存取權。
當使用者授予特定範圍的應用程式存取權時,使用者就會看到同意畫面,其中包含您在 Google API Console中設定的專案層級產品品牌。因此,Google 認為,當使用者將特定範圍的存取權授予專案中的任何用戶端 ID 時,該授權表示使用者信任該範圍的整個應用程式。
換句話說,只要應用程式元件可透過 Google 授權基礎架構進行可靠驗證,就不會在同一個邏輯應用程式中,重複提示使用者核准存取任何資源。目前的 Google 授權基礎架構包括網頁應用程式、Android 應用程式、Chrome 應用程式、iOS 應用程式、原生桌面應用程式和輸入受限裝置。
跨用戶端存取權杖
軟體可以透過多種方式取得 OAuth 2.0 存取權憑證,具體取決於程式碼執行的平台。詳情請參閱「使用 OAuth 2.0 存取 Google API」的說明。通常,授予存取權杖時必須取得使用者核准。
幸好,Google 授權基礎架構可以在評估特定專案中的用戶端 ID 使用者核准內容時,運用相關資訊評估是否授權同一項專案中的其他使用者。
這表示如果 Android 應用程式要求特定範圍的存取權權杖,且要求使用者已針對相同範圍,核准同一個專案中的網頁應用程式,則系統不會再次要求使用者核准。這兩種做法皆有效:如果您已在 Android 應用程式中授予範圍存取權,就不會再透過相同專案中的其他用戶端 (例如網頁應用程式) 要求該範圍。