身份配置(或帐号配置)是设置帐号并在这三个系统之间建立连接的过程,在某些情况下,也是在用户及其设备之间建立连接的过程。
在 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 | 您创建的唯一标识符,映射到 Google Play 返回的 ID (userId )。请勿使用个人身份信息 (PII)。 | 未设置。 |
accountType | deviceAccount、userAccount | userAccount |
displayName | 您在界面项(例如 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 控制台和服务器的要求
Google Play 企业版帐号是在 EMM 解决方案的组件(EMM 控制台、EMM 服务器和 DPC)中使用 Google Play EMM API 和 Android 框架 API 以编程方式按需创建的。这些组件会在运行时交互,以创建用户帐号并在目标设备上预配工作资料。您的 EMM 控制台或服务器必须:
提供一种机制,以创建要在调用
Users.insert
中使用的唯一匿名帐号标识符(accountIdentifier
字段)。例如,您可以使用用户的一些内部值(“sanjeev237389”),或者使用一个隐秘的资产标签编号(“asset#44448”)。避免将个人身份信息 (PII) 用作帐号标识符。存储
userId
(从insert
调用返回)与您选择的accountIdentifier
之间的映射。
如需了解 DPC 要求,请参阅构建设备政策控制器。
创建 Google Play 企业版用户账号
- 用户(通常)使用公司凭据登录您的 DPC。
- DPC 会从 EMM 服务器或控制台请求有关用户的详细信息。假设您的系统无法识别此用户:
- 通过调用
Users.insert
并使用新的accountIdentifier
、displayName
和accountType
的值,提交新建 Google Play 企业版帐号的请求。- 您的系统必须创建
accountIdentifier
。帐号标识符必须是整个系统中的唯一值。请勿将个人身份信息用作帐号标识符。 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.delete。
管理员无法删除个人帐号,但可以删除使用 Google Play 企业版帐号的企业。执行此操作时,与企业关联的设备和用户帐号最终会被删除,如取消注册、重新注册、删除中所述。
账号到期
账号或其令牌偶尔会过期,导致这种情况的原因有很多:
在大多数情况下(除非 EMM 有意将设备帐号移至新设备),最佳做法是使用 Play EMM API 从 EMM 服务器请求新令牌,记下帐号和企业的状态以及所有返回的错误,然后对设备采取适当的措施。例如,您可以刷新令牌,如果错误不可恢复,还可以重置或取消注册设备。
Google Play 服务 9.0.00 版会使用广播操作通知您的 DPC 帐号已过期:
当设备上的 Google Play 企业版帐号失效时,DPC 会收到包含以下操作的广播:
com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED
广播 intent 包含一个名为
account
的Parcelable
extra,它是失效帐号的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 的单点登录身份验证场景更全面地介绍了这种情况。
如需了解如何以这种方式使用 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 的单点登录身份验证场景
在 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。