授權

應用程式會使用 OAuth 授權呼叫零接觸註冊 客戶 API。本文件說明 API 對 包括企業行動管理服務 (EMM) 供應商和企業 IT 開發人員。 閱讀本文件後,您將瞭解如何在以下位置授權 API 要求: 並為您的應用程式使用者說明帳戶需求。

授權快速入門導覽課程

  • 如何使用零接觸註冊 API 設定 Google Cloud Platform 專案 和 OAuth 用戶端密鑰,請執行這個精靈
  • 建構 Java.NETPython。使用 Google 的 API 用戶端程式庫支援其他 語言。

總覽

裝置和顧客資源關係

  1. 零接觸註冊客戶帳戶中有一位或多位 IT 管理員使用者。
  2. IT 管理員使用 Google 帳戶驗證自己的身分。
  3. 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 要求,應用程式的使用者必須執行下列操作:

  1. 將 Google 帳戶與對方的電子郵件地址建立關聯。
  2. 請使用同一個電子郵件地址加入客戶帳戶。
  3. 接受零接觸註冊客戶《服務條款》(ToS)。

如要協助應用程式的使用者完成設定,請在「取得 已開始連結 Google 帳戶 請參閱說明文件

使用者管理

IT 管理員可在零接觸的情況下,為客戶帳戶管理使用者 註冊入口網站客戶帳戶中的使用者俱備屬於 擁有者管理員。這兩個角色都具備相同的客戶 API 存取權,但 擁有者可以管理其他使用者。

接受《服務條款》

應用程式使用者必須先接受最新版 API 呼叫,才能授權 API 呼叫 服務條款這可能是因為 IT 管理員首次使用零接觸註冊機制 更新《服務條款》。使用者尚未接受最新的《服務條款》時,API 會傳回 HTTP 403 Forbidden 狀態碼,回應主體包含 TosError

入口網站會在使用者簽署時自動提示接受最新的《服務條款》 。如要查看應用程式的建議做法,請參閱「處理服務條款 服務

為應用程式新增授權

您的應用程式傳送至客戶 API 的每項要求都必須包含授權 產生下一個符記這個權杖也可讓 Google 識別您的應用程式。由於 來使用用戶端 API 來存取使用者資料,則授權必須由 資料。您的應用程式會使用 OAuth 2.0 通訊協定,將 API 授權委派給 IT 管理員。

操作說明

我們提供 Java.NETPython 應用程式。如要使用其他語言,請按照當中的指示操作 請按照下列步驟為 應用程式。

如要進一步瞭解授權,請參閱使用 OAuth 2.0 存取 Google API

授權範圍

使用 API 授權範圍 您應用程式中的 https://www.googleapis.com/auth/androidworkzerotouchemm 可提出要求 取得 OAuth 2.0 存取權杖

範圍參數可控制可存取的一組資源和作業 憑證允許呼叫。只有一組作業才適用存取權杖 並在權杖要求範圍內說明的資源API 涵蓋 這裡顯示的是單一零接觸註冊機制範圍的方法和資源 。

例如:與 Google API 搭配使用的零接觸註冊機制範圍 請參閱 Java.NETPython。如要進一步瞭解如何使用 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 金鑰或任何其他私密資訊 相關資訊。