佈建使用者帳戶

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

在 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
displayName您在 UI 項目中顯示的名稱,例如 Google Play 中的名稱。請勿使用個人識別資訊。未設定。
managementTypeemmManagedgoogleManaged、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 管理版使用者帳戶

  1. 使用者 (通常) 使用公司憑證登入 DPC。
  2. DPC 會向 EMM 伺服器或控制台要求使用者詳細資料。假設系統不認識使用者:
    1. 請呼叫 Users.insert,並使用新 accountIdentifierdisplayNameaccountType 的值,提交新 Google Play 管理版帳戶的要求。
      • 您的系統必須建立 accountIdentifier。帳戶 ID 必須是系統中的專屬值。請勿將個人識別資訊用於帳戶 ID。
      • displayName 會顯示在 Google Play 商店的帳戶切換器中,並應對使用者具有某種意義 (但不是使用者的個人識別資訊)。例如,名稱可以是機構名稱,或是與 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 管理版帳戶的企業。這樣一來,與企業相關聯的裝置和使用者帳戶最終會遭到刪除,如「取消註冊、重新註冊、刪除」一節所述。

帳戶到期

帳戶或其權杖有時會到期,這可能有多種原因:

  • 用於將帳戶新增至裝置的驗證權杖已過期。
  • 帳戶或企業已刪除
  • 對於裝置帳戶,帳戶已新增至新裝置,因此舊裝置會停用該帳戶。
  • 觸發自動濫用行為檢查。
  • 如果裝置離線超過 270 天,系統可能會在批次清理程序中刪除該裝置的資訊。

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

如要正確續約權杖,請遵循下列步驟:

  1. 呼叫 users.generateAuthenticationToken,為帳戶要求新的驗證權杖。
  2. 如果呼叫成功,請使用 DPC 支援程式庫移除現有帳戶,然後新增帳戶。
  3. 如果呼叫失敗,請從裝置中移除帳戶,然後使用 users.insert 建立新使用者、產生驗證權杖,並將帳戶新增至裝置。

Google Play 服務 9.0.00 版會使用廣播動作通知 DPC,指出帳戶已過期:

  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 密碼保持同步,您或貴機構可以使用 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:客戶負責帳戶生命週期

使用 Directory API (僅限讀取權限) 和 GCDS

在這種情況下,客戶會為使用者建立及維護 Google 帳戶。

您可以從機構的 LDAP 目錄取得使用者帳戶資訊,並將這些資訊與您透過 Google Directory API 從 Google 取得的 Google 帳戶資料進行比對。

機構必須全權負責帳戶生命週期。舉例來說,當您建立新的 Google 帳戶時,機構會將使用者新增至 LDAP 目錄。下次將資料庫同步至 LDAP 目錄時,資料庫就會收到這位新使用者的相關資訊。

此時:

情境 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 帳戶是否存在,這項資訊對於使用者登入裝置時的使用者驗證程序至關重要。舉例來說,SAML 可用於情境 2。如要進一步瞭解如何設定這項功能,請參閱「為 G Suite 帳戶設定單一登入 (SSO) 服務」。

在裝置上啟用帳戶

如要透過 Google Play 管理版將應用程式發布至使用者的裝置,使用者必須在裝置佈建期間登入裝置:

  • Google Play 管理版帳戶裝置佈建中,DPC 會引導使用者使用 EMM 主控台接受的憑證登入,通常是公司電子郵件憑證。
  • 在 Google 帳戶部署作業中,DPC 會引導使用者輸入 Google 帳戶登入憑證。通常,當使用者透過 GCDS 或 GSPS 同步處理,或是機構使用 IdP 進行驗證時,這些憑證會與使用者登入公司網域時所使用的憑證相符。這麼做可啟用使用者的 Google 帳戶、產生專屬裝置 ID,並繫結使用者的 Google 帳戶身分和裝置 ID。