應用程式會使用 OAuth 授權呼叫零接觸註冊 客戶 API。本文件說明 API 對 包括企業行動管理服務 (EMM) 供應商和企業 IT 開發人員。 閱讀本文件後,您將瞭解如何在以下位置授權 API 要求: 並為您的應用程式使用者說明帳戶需求。
授權快速入門導覽課程
- 如何使用零接觸註冊 API 設定 Google Cloud Platform 專案 和 OAuth 用戶端密鑰,請執行這個精靈。
- 建構 Java、.NET 或 Python。使用 Google 的 API 用戶端程式庫支援其他 語言。
總覽
- 零接觸註冊客戶帳戶中有一位或多位 IT 管理員使用者。
- IT 管理員使用 Google 帳戶驗證自己的身分。
- API 要求會傳送 OAuth2 權杖,以便代表 IT 管理員。
客戶帳戶
機構的設定、裝置和 (IT 管理員) 使用者隸屬於 客戶帳戶客戶帳戶類似群組,並非個別使用者。經銷商會在機構首次建立客戶時設定 購買裝置以進行零接觸註冊機制。IT 管理員負責管理其他使用者 為機構啟用零接觸註冊機制入口網站。
API 會使用數字中的客戶 ID 來識別帳戶。您可以在呼叫 API 方法時,將客戶 ID 傳遞為網址路徑的一部分。應用程式必須 客戶 ID。
以下範例說明如何取得 授權 API 呼叫:
Java
AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list(); accountRequest.setPageSize(100); CustomerListCustomersResponse accountResponse = accountRequest.execute(); List<Company> customers = accountResponse.getCustomers(); if (customers == null || customers.isEmpty()) { // No accounts found for the user. Confirm the Google Account // that authorizes the request can access the zero-touch portal. System.out.println("No zero-touch enrollment account found."); } else { // Print the customers in this page. for (Company customer : customers) { System.out.format("%s\tcustomers/%d\n", customer.getCompanyName(), customer.getCompanyId()); } }
.NET
CustomersResource.ListRequest accountRequest = service.Customers.List(); accountRequest.PageSize = 100; CustomerListCustomersResponse accountResponse = accountRequest.Execute(); IList<Company> customers = accountResponse.Customers ?? new List<Company>(); if (customers.Count == 0) { // No accounts found for the user. Confirm the Google Account // that authorizes the request can access the zero-touch portal. Console.WriteLine("No zero-touch enrollment account found."); } foreach (Company customer in customers) { Console.WriteLine("{0}\tcustomers/{1}", customer.CompanyName, customer.CompanyId); }
Python
response = service.customers().list(pageSize=100).execute() if 'customers' not in response: # No accounts found for the user. Confirm the Google Account # that authorizes the request can access the zero-touch portal. print('No zero-touch enrollment account found.') response['customers'] = [] for customer in response['customers']: print('{0}\tcustomers/{1}'.format( customer['companyName'], customer['companyId']))
在您的應用程式中,您必須瀏覽帳戶結果頁面,因為 上述範例只會顯示前 100 個帳戶。如要瞭解操作方法,請參閱 分頁結果。
機構通常擁有一個客戶帳戶,但大型機構
可能會為每個部門使用不同的客戶帳戶。由於 IT 管理員可以是不同客戶帳戶的成員,因此您的應用程式應協助使用者尋找及使用新的客戶帳戶。在您的應用程式中,使用
companyName
的值。
使用者
IT 管理員會授權您的應用程式代為傳送的 API 要求。如要授權 API 要求,應用程式的使用者必須執行下列操作:
- 將 Google 帳戶與對方的電子郵件地址建立關聯。
- 請使用同一個電子郵件地址加入客戶帳戶。
- 接受零接觸註冊客戶《服務條款》(ToS)。
如要協助應用程式的使用者完成設定,請在「取得 已開始並連結 Google 帳戶 請參閱說明文件
使用者管理
IT 管理員可在零接觸的情況下,為客戶帳戶管理使用者 註冊入口網站客戶帳戶中的使用者俱備屬於 擁有者或管理員。這兩個角色都具備相同的客戶 API 存取權,但 擁有者可以管理其他使用者。
接受《服務條款》
應用程式使用者必須先接受最新版 API 呼叫,才能授權 API 呼叫
服務條款這可能是因為 IT 管理員首次使用零接觸註冊機制
更新《服務條款》。使用者尚未接受最新的《服務條款》時,API 會傳回
HTTP 403 Forbidden
狀態碼,回應主體包含
TosError
。
入口網站會在使用者簽署時自動提示接受最新的《服務條款》 。如要查看應用程式的建議做法,請參閱「處理服務條款 服務。
為應用程式新增授權
您的應用程式傳送至客戶 API 的每項要求都必須包含授權 產生下一個符記這個權杖也可讓 Google 識別您的應用程式。由於 來使用用戶端 API 來存取使用者資料,則授權必須由 資料。您的應用程式會使用 OAuth 2.0 通訊協定,將 API 授權委派給 IT 管理員。
操作說明
我們提供 Java、.NET 和 Python 應用程式。如要使用其他語言,請按照當中的指示操作 請按照下列步驟為 應用程式。
如要進一步瞭解授權,請參閱使用 OAuth 2.0 存取 Google API
授權範圍
使用 API 授權範圍
您應用程式中的 https://www.googleapis.com/auth/androidworkzerotouchemm
可提出要求
取得 OAuth 2.0 存取權杖
範圍參數可控制可存取的一組資源和作業 憑證允許呼叫。只有一組作業才適用存取權杖 並在權杖要求範圍內說明的資源API 涵蓋 這裡顯示的是單一零接觸註冊機制範圍的方法和資源 。
例如:與 Google API 搭配使用的零接觸註冊機制範圍 請參閱 Java、.NET 和 Python。如要進一步瞭解如何使用 Google API 範圍,請參閱使用 OAuth 2.0 存取 Google API。
API 金鑰的最佳做法
在應用程式中使用 API 金鑰時,請務必妥善保管這些金鑰。 公開您的憑證可能會使您的帳戶遭到盜用,導致您的帳戶產生意外的費用。為確保您 API 金鑰的安全,請遵循下列最佳做法:
- 不要直接在程式碼中嵌入 API 金鑰
- 內嵌在程式碼中的 API 金鑰可能會意外外洩 。例如,您忘記從先前程式碼中移除的金鑰 分享。與其將 API 金鑰嵌入應用程式,請將其儲存在 環境變數或位於應用程式來源外的檔案 。
- 不要將 API 金鑰儲存在應用程式原始碼樹狀結構內的檔案中
- 如果您將 API 金鑰儲存在檔案中,請將檔案儲存在應用程式的 原始碼樹狀結構,協助確保金鑰不會出現在原始碼控管機制中 有些人會將 Cloud Storage 視為檔案系統 但實際上不是假如您使用的是公開原始碼管理系統 (例如 GitHub),特別需要注意這點。
- 限制 API 金鑰只能用於 IP 位址、參照網址、 和具有業務需求的行動應用程式
- 限制可存取的 IP 位址、參照網址和行動應用程式 也能降低 API 金鑰遭駭時造成的影響。您可以在 Google API 控制台開啟「憑證」頁面,然後依需求建立新的 API 金鑰,或是編輯現有 API 金鑰的設定,指定可使用每個金鑰的主機和應用程式。
- 刪除不需要的 API 金鑰
- 如要盡量降低遭受攻擊的風險,請刪除所有未使用的 API 金鑰 這種模型
- 定期重新產生 API 金鑰
- 如要重新產生 API 金鑰,請前往 Google API 控制台開啟 憑證頁面,選取 API 金鑰,然後按一下「重新產生」 鍵。然後更新應用程式,以使用新產生的 鍵。產生後的 24 小時內,舊金鑰仍可繼續使用 替代金鑰
- 在公開發布程式碼前檢查
- 確認程式碼不含 API 金鑰或任何其他私密資訊 相關資訊。