如果您的應用程式要求使用 Google API 存取 Google 使用者資料的權限,您可能必須完成驗證程序,才能首次公開發布應用程式。
這項規定主要取決於兩個因素:
- 您存取的使用者資料類型:公開個人資料、日曆項目、雲端硬碟中的檔案、特定健康與健身資料等。
- 您需要的存取權層級,例如唯讀、讀寫等。
使用 OAuth 2.0 取得 Google 帳戶存取使用者資料的權限時,可使用名為「範圍」的字串來指定要代表使用者存取的資料類型。如果您的應用程式要求的範圍為「機密」或「受限制」,除非應用程式的用途符合例外狀況,否則您可能必須完成驗證程序。
機密範圍的範例包括讀取儲存在 Google 日曆中的活動、在 Google 聯絡人中儲存新聯絡人,或是刪除 YouTube 影片。如要進一步瞭解可用的範圍及其分類,請參閱應用程式呼叫的 API 端點參考說明文件,以及針對 API 發布的任何相關授權指南。
您必須要求存取使用者資料所需的範圍,以提供該功能。舉例來說,如果 API 及其相關端點的範圍較小,則僅讀取資料的應用程式不得要求讀取、寫入及刪除內容的權限。從 Google API 收到的資料只能遵循 API 政策,而且必須以您在應用程式的動作和隱私權政策中呈現的方式向使用者呈現。
請務必考量到完成應用程式發布計畫所需的時間,或是需要推出新範圍的任何新功能。敏感範圍的驗證程序通常會在 3 至 5 個工作天內完成。請注意,您的應用程式可能符合完成品牌驗證的資格,視為敏感範圍驗證要求的一部分。
瞭解機密範圍
敏感範圍需要 Google 審查後,所有 Google 帳戶才能授予存取權。Google Workspace 機構管理員可能會限制存取機密範圍,以免 OAuth 用戶端 ID 未明確標示為可信任,防止其存取。
瞭解範圍使用情形
- 查看應用程式使用或想使用的範圍。如要瞭解現有的範圍用量,請檢查應用程式原始碼,找出與授權要求一併傳送的所有範圍。
- 確認每個要求的範圍對於應用程式功能執行的動作都必須具備所需範圍,並使用提供該功能所需的最低權限。Google API 通常可在產品的 Google 開發人員頁面上,提供其端點的參考說明文件,包括呼叫端點或其中特定屬性所需的範圍。如要進一步瞭解應用程式呼叫的 API 端點必要存取權範圍,請參閱這些端點的參考說明文件。
- 從 Google API 收到的資料必須遵循 API 政策,而且必須透過應用程式的動作和隱私權政策向使用者呈現。
- 如要進一步瞭解各個範圍,包括其潛在的 sensitive or restricted 狀態,請參閱 API 說明文件。
- 在 API Console的 OAuth 同意畫面設定範圍頁面中,宣告應用程式使用的所有範圍。您指定的範圍會分組為敏感或受限類別,醒目顯示所有必要的額外驗證。
- 找出與整合作業使用的資料相符的最佳範圍,瞭解其用途,然後重新確認一切在測試環境中都能正常運作,然後準備提交驗證用資料。
![表格會顯示 API 的名稱、其中一個機密範圍,以及範圍涵蓋內容的說明。](https://developers-dot-devsite-v2-prod.appspot.com/static/identity/protocols/oauth2/images/examples/sensitive-scope-example.png?authuser=5&hl=zh-tw)
驗證準備步驟
凡是使用 Google API 要求資料存取權的應用程式,都必須執行下列步驟來完成品牌驗證:
- 確認應用程式不屬於「驗證規定例外狀況」一節中的任何用途。
- 確認您的應用程式符合相關聯 API 或產品的品牌宣傳要求。如需範例,請參閱 Google 登入範圍的品牌宣傳規範。
- 在 Google Search Console 中驗證專案的授權網域擁有權。請使用與專案相關聯的 Google 帳戶 API Console 做為「擁有者」或「編輯者」。
- 請確認 OAuth 同意畫面上的所有品牌宣傳資訊 (例如應用程式名稱、支援電子郵件、首頁 URI、隱私權政策 URI 等) 均能準確反映應用程式的身分。
應用程式首頁需求
請確認首頁符合下列規定:
- 您的首頁必須開放所有人存取,且不得僅供已登入網站的使用者存取。
- 首頁與審核中應用程式的關聯性必須明顯。
- 系統不會將 Google Play 商店中的應用程式資訊連結或 Facebook 粉絲專頁的連結視為有效的應用程式首頁。
應用程式隱私權政策連結規定
請確認您的應用程式隱私權政策符合下列規定:
- 您必須向使用者顯示隱私權政策,且該政策必須與應用程式首頁位於相同網域,而且須連結至 Google API Console的 OAuth 同意畫面。請注意,首頁必須包含應用程式功能說明、隱私權政策連結和選用服務條款。
- 隱私權政策必須揭露您的應用程式存取、使用、儲存或分享 Google 使用者資料的方式。 使用 Google 使用者資料的行為時,您必須遵循已發布隱私權政策揭露的做法。
如何提交應用程式進行驗證
Google API Console 專案可整理您所有的 API Console 資源。專案是由一組相關聯的 Google 帳戶組成,這些帳戶具備執行專案作業的權限、一組已啟用的 API,以及這些 API 的計費、驗證和監控設定。舉例來說,一項專案可包含一或多個 OAuth 用戶端、設定 API 供這些用戶端使用,並在使用者授權存取您的應用程式前設定 OAuth 同意畫面。
如有任何 OAuth 用戶端還無法投入實際工作環境,建議您將這些用戶端從要求驗證的專案中刪除。您可以在 Google API Console中執行這項操作。
送交驗證的步驟如下:
- 確認您的應用程式符合《Google API 服務條款》和《Google API 服務使用者資料政策》。
- 請在 API Console中保持專案關聯帳戶的擁有者和編輯者角色,以及 OAuth 同意畫面中的使用者支援電子郵件和開發人員聯絡資訊。確保團隊成員會收到任何新要求的通知。
- 前往 API ConsoleOAuth Consent Screen page。
- 按一下「Project selector」按鈕。
-
在隨即顯示的「Select from」(可用的選項) 對話方塊中,選取您的專案。如果您找不到專案,但已經知道專案 ID,則可在瀏覽器中以下列格式建構網址:
https://console.developers.google.com/apis/credentials/consent?project=[PROJECT_ID]
將 [PROJECT_ID] 替換成您要使用的專案 ID。
- 選取「Edit App」按鈕。
- 在 OAuth 同意畫面上輸入必要資訊,然後選取「儲存並繼續」按鈕。
- 使用「新增或移除範圍」按鈕,宣告應用程式要求的所有範圍。「非機密範圍」部分會預先填入 Google 登入作業所需的初始範圍組合。新增的範圍會歸類為非機密 sensitive, or restricted。
- 應用程式最多可提供三個連結,讓使用者連往相關的應用程式功能說明文件。
-
在後續步驟中,提供任何要求的應用程式相關資訊。
- Prepare a detailed justification for each requested sensitive scope, as well as an explanation
for why a narrower scope isn't sufficient. For example: "My app will use
https://www.googleapis.com/auth/calendar
to show a user's Google calendar data on the scheduling screen of my app. This lets users manage their schedules through my app and sync the changes with their Google calendar." -
Prepare a video that fully demonstrates how a user initiates and grants access to the requested scopes and shows, in detail, the usage of the granted sensitive and restricted scopes in the app. Upload the video to YouTube Studio and set its Visibility as Unlisted. You need to provide a link to the demonstration video in the YouTube link field.
- Show the OAuth grant process that users will experience, in English. This includes the consent flow and, if you use Google Sign-In, the sign-in flow.
- Show that the OAuth consent screen correctly displays the App Name.
- Show that the browser address bar of the OAuth consent screen correctly includes your app's OAuth client ID.
- To show how the data will be used, demonstrate the functionality that's enabled by each sensitive scope that you request.
- Prepare a detailed justification for each requested sensitive scope, as well as an explanation
for why a narrower scope isn't sufficient. For example: "My app will use
- 如果您提供的應用程式設定需要驗證,您可以提交應用程式進行驗證。填寫必填欄位,然後按一下「提交」,即可開始驗證程序。
在您提交應用程式後,Google 信任與安全團隊會透過電子郵件聯繫您,並提供他們所需的額外資訊或您必須完成的步驟。請查看「開發人員聯絡資訊」部分中的電子郵件地址,以及 OAuth 同意畫面的支援電子郵件地址,索取其他資訊。您也可以查看專案的 OAuth 同意畫面頁面,確認專案目前的審查狀態,包括在等待您的回應期間,審核程序是否已暫停。
驗證規定例外狀況
如果您的應用程式會在以下各節所述的任何情境中使用,則無須送交審查。
個人使用
其中一種用途是應用程式的唯一使用者,或應用程式只有少數使用者使用,所有使用者都能辨識您。您和少數使用者或許會願意透過未經驗證的應用程式畫面推動進階作業,並授予個人帳戶存取應用程式的權限。
用於開發、測試或測試環境的專案
為遵守 Google OAuth 2.0 政策,建議您為測試和實際工作環境建立不同的專案。除非您想讓應用程式向任何擁有 Google 帳戶的使用者提供應用程式,否則建議您只提交應用程式進行驗證。因此,如果您的應用程式處於開發、測試或階段,就不必進行驗證。
如果應用程式處於開發或測試階段,您可以在「測試」的預設設定中保留「發布狀態」。這項設定表示您的應用程式仍處於開發階段,且僅供您新增至測試使用者清單的使用者使用。您必須管理與應用程式開發或測試相關的 Google 帳戶清單。
![警告訊息,指出 Google 尚未驗證正在進行測試的應用程式。](https://developers-dot-devsite-v2-prod.appspot.com/static/identity/protocols/oauth2/images/examples/tester-warning-screen.png?authuser=5&hl=zh-tw)
僅限服務擁有的資料
如果您的應用程式僅透過服務帳戶存取自己的資料,而且並未存取任何使用者資料 (連結至 Google 帳戶),則您不需要提交驗證用資料。
如要瞭解服務帳戶,請參閱 Google Cloud 說明文件中的服務帳戶。如需使用服務帳戶的操作說明,請參閱針對伺服器對伺服器應用程式使用 OAuth 2.0。
僅限內部使用
也就是說,只有您的 Google Workspace 或 Cloud Identity 機構的使用者能使用應用程式。專案必須為機構所有,且 OAuth 同意畫面需要設定「內部」使用者類型。在此情況下,您的應用程式可能需要取得機構管理員的核准。詳情請參閱「Google Workspace 的其他注意事項」。
- 進一步瞭解公開和內部應用程式。
- 如要瞭解如何將應用程式標示為內部使用,請參閱常見問題「如何將應用程式標示為僅限內部使用?」
全網域安裝
如果您打算應用程式只以 Google Workspace 或 Cloud Identity 機構的使用者為目標對象,而且一律使用全網域安裝功能,則應用程式不需要驗證應用程式。這是因為在網域層級安裝作業,網域管理員就能授權第三方和內部應用程式存取您使用者資料。只有機構管理員才能將應用程式加入許可清單,以在其網域中使用。
請參閱「我的應用程式使用者有來自其他 Google Workspace 網域的企業帳戶」,瞭解如何將應用程式設為全網域安裝。