身份配置(或 账号配置)是指设置账号并在三个系统之间建立连接的过程,有时还包括在用户及其设备之间建立连接的过程。

在 Android 企业环境中,最多有三个不同的系统保存账号信息:
- 组织的“用户目录”是有关用户的权威信息来源。
- 您(EMM 解决方案提供商)必须维护至少一个组织用户目录。
- Google 会维护一些有关 Google Play 企业版账号和 Google 账号的信息,以便通过 Google Play 提供应用管理功能。
A Users 资源表示与企业关联的账号。该账号可以是特定于设备的,也可以与拥有多部设备(手机、平板电脑等)并在所有设备上使用该账号的个人相关联。该账号可以仅提供对 Google Play 企业版的访问权限,也可以提供对其他 Google 服务的访问权限,具体取决于您如何设置客户的企业:
Google Play 企业版账号 为企业提供了一种透明的方式,让企业可以通过其企业移动管理 (EMM) 解决方案提供商自动创建用户账号或设备账号。这些账号仅提供对 Google Play 企业版的访问权限。
Google 账号 是由 Google 管理的现有账号,需要与 Google 账号来源同步。
表 1:Users API 字段和方法
| Google Play 企业版账号 | Google 管理的账号 | |
|---|---|---|
| 字段 | ||
| id | ||
| kind | ||
| accountIdentifier | 您创建并映射到从 Google Play 返回的 ID (userId) 的唯一标识符。请勿使用个人身份信息 (PII)。 | 未设置。 |
| accountType | deviceAccount、userAccount | userAccount |
| displayName | 您在界面项(例如 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 控制台或服务器必须:
提供一种机制来创建唯一的匿名账号标识符 (
accountIdentifier字段),以便在调用Users.insert时使用。例如,您可以使用用户的某些内部值(“sanjeev237389”)或神秘的资产标记编号(“asset#44448”)。请避免使用个人身份信息 (PII) 作为账号标识符。存储
userId(从insert调用返回)与您选择的accountIdentifier之间的映射。
如需了解 DPC 的要求,请参阅构建设备政策 控制器。
创建 Google Play 企业版用户账号
- 用户(通常)使用公司凭据登录您的 DPC。
- DPC 从 EMM 服务器或控制台请求有关用户的详细信息。
假设您的系统不知道该用户:
- 通过使用
新
accountIdentifier、displayName和accountType的值调用Users.insert,提交新的 Google Play 企业版账号的请求。- 您的系统必须创建
accountIdentifier。账号标识符在您的系统中必须是唯一值。请勿使用 PII 作为账号标识符。 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 账号不能是 Google Workspace 账号。他们使用的账号将成为企业的所有者,并且所有者可以在 Google Play 企业版管理控制台中添加更多所有者和管理员。
Both Enterprises.get and
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
广播 intent 包含一个
Parcelableextra,其名称为account,它 是失效账号的对象。AccountDPC 使用 EMM 服务器检查
Account#name,以识别失效的账号。DPC 会请求新凭据或新账号,遵循最初用于配置设备的相同 流程。
Google 账号
对于使用 Google 账号的组织,EMM 解决方案中的用户账号会镜像与另一 Google 服务(例如 Google Workspace)关联的现有用户账号。这些账号是 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 工具将其 Google Workspace 网域中的数据与其 LDAP 目录中的数据同步。或者,如果组织授予您访问权限,您也可以代表组织使用 GCDS 执行此操作。
GCDS 工具会调用 Google Directory API 并同步用户名,但不会同步密码。
如果组织使用 Microsoft Active Directory,并且希望用户的 Google Workspace 密码与其 Active Directory 密码保持同步,请参阅 准备使用 Password Sync。
如需了解管理员的 GCDS 说明,请参阅授权您的 Google 账号。
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。如需详细了解如何进行此设置,请参阅关于 SSO。
在设备上激活账号
如需通过 Google Play 企业版将应用分发到用户设备,用户 必须在 设备配置期间登录设备:
- 在 Google Play 企业版账号设备配置中, 您的 DPC 会引导用户使用 EMM 控制台接受的凭据(通常是公司电子邮件凭据)登录。
- 在 Google 账号部署中,您的 DPC 会引导用户输入其 Google 账号登录凭据。通常,这些凭据与用户在与 GCDS 或 GSPS 同步时登录其公司网域时使用的凭据相匹配,或者与组织使用 IdP 进行身份验证时使用的凭据相匹配。 这会激活用户的 Google 账号,生成唯一的设备 ID,并将用户的 Google 账号身份与其设备的设备 ID 绑定。