身分驗證 (或帳戶驗證) 是指設定帳戶並在三個系統之間建立連線的程序,在某些情況下,還會設定使用者與裝置之間的連線。

在 Android 企業環境中,最多有三個不同的系統會儲存帳戶資訊:
- 機構的使用者目錄是使用者資訊的最終來源。
- 您 (EMM 解決方案供應商) 必須至少維護機構使用者的最小目錄。
- Google 會維護 Google Play 管理版帳戶和 Google 帳戶的部分資訊,以便透過 Google Play 提供應用程式管理功能。
Users 資源代表與企業相關聯的帳戶。帳戶可以與特定裝置相關聯,也可以與擁有多部裝置 (行動電話、平板電腦等) 並在所有裝置上使用帳戶的使用者相關聯。帳戶可提供 Google Play 管理版或其他 Google 服務的存取權,具體取決於您設定客戶企業的方式:
- Google Play 管理版帳戶提供透明的管道,讓企業透過企業行動裝置管理 (EMM) 解決方案供應商自動建立使用者或裝置帳戶。這些帳戶只提供 Google Play 管理版的存取權。 
- Google 帳戶是 Google 管理的現有帳戶,需要與 Google 帳戶來源同步。 
表 1:Users API 欄位和方法
| Google Play 管理版帳戶 | Google 管理的帳戶 | |
|---|---|---|
| 欄位 | ||
| id | ||
| kind | ||
| accountIdentifier | 您建立的專屬 ID,並對應至 Google Play 傳回的 ID ( userId)。請勿使用個人識別資訊 (PII)。 | 未設定。 | 
| accountType | deviceAccount、userAccount | userAccount | 
| displayName | 您在 UI 項目中顯示的名稱,例如 Google Play 中的名稱。請勿使用個人識別資訊。 | 未設定。 | 
| managementType | emmManaged | googleManaged、emmManaged | 
| primaryEmail | 未設定。 | 這個欄位是主要索引鍵,可用於管理從 Google 管理的網域帳戶到系統中使用者帳戶的同步作業。 | 
| 方法 | ||
| 刪除 | ||
| generateAuthenticationToken | ||
| generateToken | ||
| get | ||
| getAvailableProductSet | ||
| insert | ||
| list | ||
| revokeToken | ||
| setAvailableProductSet | ||
| update | ||
Google Play 管理版帳戶
管理式 Google Play 帳戶分為兩種:
- 使用者帳戶
- 讓單一使用者可透過所有裝置存取 Google Play 管理版。您必須為使用者佈建使用者帳戶,因為他們沒有自行新增受管理 Google Play 帳戶的憑證。
- 如要建立使用者帳戶,請呼叫 Users.insert。將帳戶類型設為userType,並設定accountIdentifier,這會以唯一方式參照企業內的使用者。
- 最佳做法:請勿在超過 10 部裝置上使用同一個帳戶。
- 裝置帳戶
- 可透過單一裝置存取 Google Play 管理版。如果已為裝置帳戶核發驗證權杖,則針對該裝置帳戶提出新的驗證權杖要求,就會停用先前的權杖。每部裝置都必須具備各自的應用程式授權。
- 如要建立裝置帳戶,請呼叫 Users.insert,並將帳戶類型設為deviceType。

您會建立並維護使用者或裝置身分與對應的 Google Play 管理版帳戶之間的對應關係,並在帳戶的整個生命週期中管理帳戶。機構不需要直接控管這些 Google Play 管理版帳戶,因為這些帳戶純粹用於應用程式管理。
EMM 控制台和伺服器需求
系統會透過程式設計,在 EMM 解決方案的各個元件 (EMM 控制台、EMM 伺服器和 DPC) 中使用 Google Play EMM API 和 Android 架構 API,按需建立 Google Play 管理版帳戶。這些元件會在執行階段互動,以建立使用者帳戶,並在目標裝置上佈建工作資料夾。
EMM 控制台或伺服器必須符合下列條件:
- 提供建立不重複的匿名帳戶 ID ( - accountIdentifier欄位) 的機制,以便在呼叫- Users.insert時使用。舉例來說,您可以為使用者使用一些內部值 (「sanjeev237389」),或神秘的資產標記號碼 (「asset#44448」)。請勿使用個人識別資訊 (PII) 做為帳戶 ID。
- 將對應項目儲存在 - userId(從- insert呼叫傳回) 和您選取的- accountIdentifier之間。
如要瞭解 DPC 的相關規定,請參閱「建構裝置政策控制器」。
建立 Google Play 管理版使用者帳戶
- 使用者 (通常) 使用公司憑證登入 DPC。
- DPC 會向 EMM 伺服器或控制台要求使用者詳細資料。假設系統不認識使用者:
- 請呼叫 Users.insert,並使用新accountIdentifier、displayName和accountType的值,提交新 Google Play 管理版帳戶的要求。- 您的系統必須建立 accountIdentifier。帳戶 ID 必須是系統中的專屬值。請勿將個人識別資訊用於帳戶 ID。
- displayName會顯示在 Google Play 商店的帳戶切換器中,並應對使用者具有某種意義 (但不是使用者的個人識別資訊)。例如,名稱可以是機構名稱,或是與 EMM 相關的通用名稱。
- 將 accountType設為userAccount或deviceAccount。userAccount可用於多部裝置,而deviceAccount則僅限於單一裝置。指定的accountType可以是deviceType或userType。
- 將 managementType設為emmManaged。
 
- 您的系統必須建立 
- Google Play 會處理要求、建立帳戶,並傳回 userId。
- 在資料儲存庫中儲存 accountIdentifier和userId之間的對應關係。
- 使用 userId和enterpriseId呼叫Users.generateAuthenticationToken。Google Play 會傳回可用於一次驗證權杖,且必須在幾分鐘內使用。
- 安全地將驗證權杖轉送至 DPC。
 
- 請呼叫 
- DPC 會佈建工作資料夾,並將帳戶新增至工作資料夾或裝置。
- 使用者可以在工作資料夾或裝置中存取受管理的 Google Play。
管理員帳戶
管理員建立 Google Play 管理版帳戶企業時,使用的 Google 帳戶不得是 G Suite 帳戶。他們使用的帳戶會成為企業的擁有者,而擁有者可以在 Google Play 管理版中新增更多擁有者和管理員。
Enterprises.get 和 Enterprises.completeSignup 都會傳回與企業相關聯的管理員電子郵件地址清單 (僅限設有 Google Play 管理版帳戶的企業)。
管理帳戶生命週期
在 Google Play 管理版帳戶部署中,您負責使用者和裝置帳戶的生命週期,也就是建立、更新和刪除這些帳戶。
您可以在裝置佈建期間建立帳戶,這個程序會涉及 DPC 應用程式和 EMM 控制台。如需操作說明,請參閱Google Play 管理版帳戶方法。
如要變更帳戶資訊,請呼叫 Users.update。
如要刪除帳戶,請呼叫 Users.delete。
管理員無法刪除個別帳戶,但可以刪除使用 Google Play 管理版帳戶的企業。這樣一來,與企業相關聯的裝置和使用者帳戶最終會遭到刪除,如「取消註冊、重新註冊、刪除」一節所述。
帳戶到期
帳戶或其權杖有時會到期,這可能有多種原因:
- 用於將帳戶新增至裝置的驗證權杖已過期。
- 帳戶或企業已刪除。
- 對於裝置帳戶,帳戶已新增至新裝置,因此舊裝置會停用該帳戶。
- 觸發自動濫用行為檢查。
- 如果裝置離線超過 270 天,系統可能會在批次清理程序中刪除該裝置的資訊。
在大多數情況下 (除非 EMM 故意將裝置帳戶移至新裝置),最佳做法是使用 Play EMM API 向 EMM 伺服器要求新的權杖,記下帳戶和企業的狀態以及任何傳回的錯誤,然後對裝置採取適當行動。例如,重新產生權杖,或在無法復原錯誤時,重設或取消註冊裝置。
如要正確續約權杖,請遵循下列步驟:
- 呼叫 users.generateAuthenticationToken,為帳戶要求新的驗證權杖。
- 如果呼叫成功,請使用 DPC 支援程式庫移除現有帳戶,然後新增帳戶。
- 如果呼叫失敗,請從裝置中移除帳戶,然後使用 users.insert建立新使用者、產生驗證權杖,並將帳戶新增至裝置。
Google Play 服務 9.0.00 版會使用廣播動作通知 DPC,指出帳戶已過期:
- 當受管理的 Google Play 帳戶在裝置上失效時,DPC 會收到以下動作的廣播: - com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED - 廣播意圖包含名為 - account的- Parcelable額外項目,這是無效帳戶的- Account
- DPC 會透過 EMM 伺服器檢查 - Account#name,以識別無效帳戶。
- DPC 會按照最初裝置佈建時使用的流程,要求新的憑證或帳戶。 
Google 帳戶
對於使用 Google 帳戶的機構,EMM 解決方案中的使用者帳戶會複製與其他 Google 服務 (例如 G Suite) 相關聯的現有使用者帳戶。這些帳戶屬於 googleManaged (表 1),因為 Google 的後端服務是建立帳戶和相關資訊的來源。
身為 EMM,您可以在控制台中提供機制,以便使用 Google Cloud Directory Sync (GCDS) 和 Google Admin SDK Directory API 等工具,建立及持續同步系統中儲存的使用者帳戶與其 Google 網域帳戶來源。請參閱各種方法的概略說明。在 Google 管理的網域身分識別模型中,使用者帳戶必須先存在解決方案的環境 (EMM 控制台、EMM 伺服器,或許位於資料儲存庫中),才能在使用者裝置的任何工作資料夾環境中佈建。
在身分佈建期間,系統會在機構的 Google 管理網域中填入使用者帳戶。在某些情況下,使用者的現有線上身分 (例如 Microsoft Exchange 帳戶) 會與 Google 帳戶同步。
在初始同步處理完成後,但應用程式尚未發布至使用者的裝置前,使用者必須啟用 Google 帳戶,如「在裝置上啟用帳戶」一文所述。這項啟用程序可讓裝置存取 Google Play 管理版。
同步處理客戶帳戶
在 Google 帳戶部署作業中,機構可以使用 GCDS 工具,將 G Suite 網域中的資料與 LDAP 目錄中的資料同步。或者,如果貴機構授予您存取權,您可以使用 GCDS 代為執行這項操作。
GCDS 工具會呼叫 Google Directory API,並同步處理使用者名稱,但不會同步處理密碼。
如果貴機構使用 Microsoft Active Directory,且希望使用者的 G Suite 密碼與他們的 Active Directory 密碼保持同步,您或貴機構可以使用 GCDS 搭配 G Suite Password Sync (GSPS) 工具。
如要瞭解 GCDS 的管理員操作說明,請參閱「準備 G Suite 網域以進行同步處理」。
Google Directory API
在 Google 帳戶部署作業中,您可以使用 Google Directory API 來同步處理有效的目錄和/或密碼:
- 使用 Directory API 進行僅限目錄的同步處理。如果您對機構的受管理 Google 網域只有唯讀存取權,可以使用 Google Directory API 取得 Google 帳戶資訊,例如 Google 的使用者名稱 (但不包括密碼)。由於您無法將任何資料寫入使用者的 Google 帳戶,因此機構必須負起帳戶生命週期的全部責任。 - 情境 1和以 SAML 為基礎的 SSO 驗證情境會更詳細說明這種情況。 - 如要瞭解如何以這種方式使用 Directory API,請參閱 Directory API 說明文件中的「擷取所有帳戶使用者」。 
- 使用 Directory API 同步處理目錄和選用的密碼。如果您對機構的受管理 Google 網域擁有讀取/寫入權限,就可以使用 Google Directory API 取得使用者名稱、密碼和其他 Google 帳戶資訊。您可以更新這項資訊,並與自己的資料庫同步,而且視您提供給客戶的解決方案而定,您可能需要全權或部分負責帳戶生命週期。 - 情境 2 會更詳細說明這種情況。 - 如要進一步瞭解如何使用 Directory API 管理使用者帳戶資訊,請參閱 Directory API:使用者帳戶 開發人員指南。 
Google 帳戶情境
以下列舉幾種常見的 Google 帳戶身分設定情境。
情境 1:客戶負責帳戶生命週期

在這種情況下,客戶會為使用者建立及維護 Google 帳戶。
您可以從機構的 LDAP 目錄取得使用者帳戶資訊,並將這些資訊與您透過 Google Directory API 從 Google 取得的 Google 帳戶資料進行比對。
機構必須全權負責帳戶生命週期。舉例來說,當您建立新的 Google 帳戶時,機構會將使用者新增至 LDAP 目錄。下次將資料庫同步至 LDAP 目錄時,資料庫就會收到這位新使用者的相關資訊。
此時:
- 您只有 Google 帳戶的唯讀存取權。
- 您的資料庫會取得 Google 帳戶名稱,但不會取得 LDAP 使用者名稱或密碼。
- 您可以使用 Google Directory API 取得客戶使用者的基本帳戶資訊。(您可取得的資訊是 Users.get要求傳回的不可寫入資訊)。您可以使用這項資訊驗證使用者的 Google 帳戶是否存在,讓使用者能夠驗證自己的裝置。
- 您的客戶使用 GCDS 工具進行單向同步處理,以填入使用者的 Google 帳戶。(機構可能也會在身分設定完成後,使用 GCDS 進行持續性同步處理)。機構也可以視需要使用 GSPS 工具,同步處理使用者名稱和密碼。
情境 2:EMM 負責帳戶生命週期

在這種情況下,您會代表客戶處理建立 Google 帳戶的程序,並負責使用者的帳戶生命週期。
舉例來說,如果機構的 LDAP 目錄中的使用者資訊有變更,您必須負責更新使用者的 Google 帳戶。在這種情況下,GCDS 不會使用。
此時:
- 您具備 Google 帳戶的讀取/寫入權限。
- 資料庫會取得 Google 帳戶名稱和 LDAP 使用者名稱 (以及選用的密碼雜湊)。
- 您會代表客戶使用 Google Directory API,讀取及寫入機構使用者的帳戶資訊。(您可以使用的資訊是由 Users.get要求傳回的不可寫入資訊)。您可以使用這項資訊驗證使用者的 Google 帳戶是否存在,讓使用者能夠驗證自己的裝置。
- 未使用 GCDS 工具。
SAML 式單一登入 (SSO) 驗證情境
在 Google 帳戶部署作業中,您或客戶可能會使用安全宣告標記語言 (SAML) 與身分識別提供者 (IdP),驗證與每位使用者相關聯的 Google 帳戶。您可以使用 Google 帳戶名稱驗證使用者的 Google 帳戶是否存在,這項資訊對於使用者登入裝置時的使用者驗證程序至關重要。舉例來說,SAML 可用於情境 2。如要進一步瞭解如何設定這項功能,請參閱「為 G Suite 帳戶設定單一登入 (SSO) 服務」。
在裝置上啟用帳戶
如要透過 Google Play 管理版將應用程式發布至使用者的裝置,使用者必須在裝置佈建期間登入裝置:
- 在Google Play 管理版帳戶裝置佈建中,DPC 會引導使用者使用 EMM 主控台接受的憑證登入,通常是公司電子郵件憑證。
- 在 Google 帳戶部署作業中,DPC 會引導使用者輸入 Google 帳戶登入憑證。通常,當使用者透過 GCDS 或 GSPS 同步處理,或是機構使用 IdP 進行驗證時,這些憑證會與使用者登入公司網域時所使用的憑證相符。這麼做可啟用使用者的 Google 帳戶、產生專屬裝置 ID,並繫結使用者的 Google 帳戶身分和裝置 ID。