開發人員建構軟體時,通常會納入在網頁伺服器上執行的模組、在瀏覽器中執行的其他模組,以及以 Android 或 iOS 行動應用程式執行的模組。開發人員和軟體使用者通常會將所有這些模組視為單一應用程式的一部分。
Google 的 OAuth 2.0 實作項目支援這種世界觀。如要使用任何以 OAuth 2.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 時,可以使用特定專案中用戶端 ID 的使用者核准資訊。
也就是說,如果 Android 應用程式要求特定範圍的存取權杖,且要求存取的使用者已在同一個專案中,針對該範圍核准網路應用程式,系統就不會再次要求使用者核准。這項功能是雙向的:如果 Android 應用程式已授予範圍存取權,同一個專案中的其他用戶端 (例如 Web 應用程式) 就不會再次要求存取權。