佈建使用者帳戶

「身分識別佈建」 (或稱「帳戶管理」) 是指在三個系統之間設定帳戶及建立連線的過程,在某些情況下,也會為使用者與其裝置之間設定連線。

在 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)。未設定。
accountTypedeviceAccount、userAccountuserAccount
displayNameUI 項目 (例如在 Google Play 內) 顯示的名稱。請勿使用個人識別資訊。未設定。
managementTypeemmManagedgoogleManaged、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 管理版使用者帳戶

  1. 使用者使用 (通常是) 公司憑證登入 DPC。
  2. DPC 會從 EMM 伺服器或控制台要求有關使用者的詳細資料。 假設系統無法辨識使用者:
    1. 呼叫 Users.insert,並提供新的 accountIdentifierdisplayNameaccountType 的值,提交新的 Google Play 管理版帳戶要求。
      • 系統必須建立 accountIdentifier。帳戶 ID 必須是系統中不重複的值。請不要將 PII 用於帳戶 ID
      • displayName 會顯示在 Google Play 商店的帳戶切換器中,對使用者而言,應該有一些定義 (而非使用者的 PII)。舉例來說,名稱可包含機構名稱或與 EMM 相關的一般名稱。
      • accountType 設為 userAccountdeviceAccountuserAccount 可用於多部裝置,而 deviceAccount 只適用於單一裝置。指定的 accountType 可以是 deviceTypeuserType
      • managementType 設為 emmManaged
    2. Google Play 會處理要求、建立帳戶,並傳回 userId
    3. accountIdentifieruserId 之間的對應關係儲存在資料儲存庫中。
    4. 使用 userIdenterpriseId 呼叫 Users.generateAuthenticationToken。Google Play 會傳回只能使用一次的驗證權杖,且必須在幾分鐘內使用。
    5. 將驗證權杖安全地轉寄至 DPC。
  3. DPC 會佈建工作資料夾,並將帳戶新增至工作資料夾或裝置。
  4. 使用者可以在工作資料夾或裝置上存取 Google Play 管理版。

管理員帳戶

管理員使用 Google Play 管理版帳戶建立企業時,他們使用的 Google 帳戶不能是 G Suite 帳戶。他們使用的帳戶會成為企業的擁有者,擁有者可以在 Google Play 管理版主控台中新增更多擁有者和管理員。

Enterprises.getEnterprises.completeSignup 都會回傳與企業相關聯的管理員電子郵件地址清單 (僅限擁有 Google Play 管理版帳戶的企業)。

管理帳戶生命週期

在 Google Play 管理版帳戶部署作業中,您必須負責使用者和裝置帳戶生命週期,也就是建立、更新及刪除這類帳戶。

您會在裝置佈建期間建立帳戶,此程序會牽涉到您的 DPC 應用程式和 EMM 控制台。如需操作說明,請參閱 Google Play 管理版帳戶方法

如要變更帳戶資訊,請呼叫 Users.update

如要刪除帳戶,請呼叫 Users.delete

管理員無法刪除個別帳戶,但可以刪除使用 Google Play 管理版帳戶的企業。執行此操作後,系統最終會刪除與企業相關聯的裝置和使用者帳戶,詳情請參閱「取消註冊、重新註冊、刪除」一文。

帳戶到期

有時候,帳戶或權杖會過期,可能的原因如下:

  • 在裝置中新增帳戶所取得的驗證權杖已過期。
  • 帳戶或企業已刪除
  • 如果是裝置帳戶,該帳戶已新增至新裝置,因此舊裝置中會停用。
  • 系統會自動執行濫用情形檢查作業。

在大多數情況下 (除非 EMM 刻意將裝置帳戶移至新裝置),最佳做法是使用 Play EMM API 向 EMM 伺服器要求新憑證,記下帳戶和企業的狀態,以及所有傳回的錯誤,然後在裝置上採取適當行動。例如,請重新整理權杖、如果錯誤無法復原,請重設或取消註冊裝置。

Google Play 服務 9.0.00 版會透過廣播動作通知 DS 帳戶已過期:

  1. 當 Google Play 管理版帳戶在裝置上失效時,DPC 會收到廣播,其中包含以下動作:

    com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED

    廣播意圖包含名為 accountParcelable 額外項目,這是無效帳戶的 Account 物件。

  2. DPC 會透過 EMM 伺服器檢查 Account#name,找出無效帳戶。

  3. 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 帳戶,因此機構必須全權負責帳戶生命週期。

    情境 1SAML 型 SSO 驗證情境中,您可以更全面地說明這種情況。

    如要進一步瞭解如何以這種方式使用 Directory API,請參閱 Directory API 說明文件中的「擷取所有帳戶使用者」一節。

  • 使用 Directory API 執行目錄,並視需要同步處理密碼。如果您擁有機構的代管 Google 網域的讀取/寫入權限,則可以使用 Google Directory API 取得使用者名稱、密碼和其他 Google 帳戶資訊。您可以更新這項資訊並同步至自己的資料庫,視您向客戶提供的解決方案而定,您可能對帳戶生命週期有完整或部分責任。

    情境 2 會更全面地說明這種情況。

    如要進一步瞭解如何使用 Directory API 管理使用者帳戶資訊,請參閱「Directory API:使用者帳戶」開發人員指南。

Google 帳戶情境

以下列舉幾個常見的 Google 帳戶身分驗證情境。

情境 1:負責帳戶生命週期的客戶

使用 Directory API (具備唯讀存取權) 和 GCDS

在這個情境中,您的客戶為自己的使用者建立及維護 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

使用具備讀取/寫入權限的 Directory API

在這個情境中,您會代表客戶處理建立 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。