「身分識別佈建」 (或稱「帳戶管理」) 是指在三個系統之間設定帳戶及建立連線的過程,在某些情況下,也會為使用者與其裝置之間設定連線。
在 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 代管網域帳戶與您系統中使用者帳戶的同步處理作業。 |
方法 | ||
delete | ||
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 控制台和伺服器需求條件
Google Play 管理版帳戶是隨選使用,使用 Google Play EMM API 和 Android 架構 API,在 EMM 解決方案的各個元件 (EMM 控制台、EMM 伺服器和 DPC) 中以程式輔助方式建立。這些元件會在執行階段互動,以建立使用者帳戶,以及在目標裝置上佈建工作資料夾。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 必須是系統中不重複的值。請不要將 PII 用於帳戶 ID displayName
會顯示在 Google Play 商店的帳戶切換器中,對使用者而言,應該有一些定義 (而非使用者的 PII)。舉例來說,名稱可包含機構名稱或與 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.delete。
管理員無法刪除個別帳戶,但可以刪除使用 Google Play 管理版帳戶的企業。執行此操作後,系統最終會刪除與企業相關聯的裝置和使用者帳戶,詳情請參閱「取消註冊、重新註冊、刪除」一文。
帳戶到期
有時候,帳戶或權杖會過期,可能的原因如下:
在大多數情況下 (除非 EMM 刻意將裝置帳戶移至新裝置),最佳做法是使用 Play EMM API 向 EMM 伺服器要求新憑證,記下帳戶和企業的狀態,以及所有傳回的錯誤,然後在裝置上採取適當行動。例如,請重新整理權杖、如果錯誤無法復原,請重設或取消註冊裝置。
Google Play 服務 9.0.00 版會透過廣播動作通知 DS 帳戶已過期:
當 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 密碼保持同步,那麼他們 (或您) 可以將 G Suite Password Sync (GSPS) 工具與 GCDS 搭配使用。
如需管理員專用的 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 帳戶是否存在,當使用者登入裝置時,這是進行使用者驗證的必要條件。例如在情境 2 中使用 SAML。如要進一步瞭解如何進行設定,請參閱為 G Suite 帳戶設定單一登入 (SSO) 服務。
在裝置上啟用帳戶
如要透過 Google Play 管理版向使用者發布應用程式,使用者必須在裝置佈建過程中登入裝置:
- 在受管理的 Google Play 帳戶裝置佈建中,DPC 會引導使用者透過 EMM 控制台接受的憑證 (通常是公司電子郵件憑證) 登入。
- 在 Google 帳戶部署作業中,DPC 會引導使用者輸入其 Google 帳戶登入憑證。通常,這些憑證會與使用者與 GCDS 或 GSPS 同步處理,或是機構使用 IdP 進行驗證時,登入公司網域的憑證相符。這樣做便會啟用使用者的 Google 帳戶、產生一組專屬裝置 ID,並繫結使用者的 Google 帳戶身分和裝置的裝置 ID。