了解基于账号的用户注册
Discover account-driven User Enrollment
2021年6月10日
一句话判断
Account-driven User Enrollment 让 BYOD 注册从”下载描述文件-安装-确认”的五步流程简化成了”输入工作邮箱-验证身份”的两步操作——这是企业移动管理领域用户体验的一次质变。
这场 Session 讲了什么
Session 详细介绍了 iOS 15 中引入的 account-driven User Enrollment 机制。传统的 User Enrollment 需要用户通过 Safari 下载一个 enrollment profile,然后在设置中手动安装,整个过程步骤多且容易中断。新方案利用用户的 Work/School 账号(配合 Managed Apple ID)直接在系统设置中完成注册。
技术实现上,它依赖 Apple Business Manager(ABM)或 Apple School Manager(ASM)中配置的 enrollment URL,系统通过用户邮箱的域名自动发现对应的 MDM 服务器。身份验证支持 OAuth 2.0 和 SAML 2.0,与企业现有的身份提供商(IdP)无缝集成。Session 还对比了 account-driven enrollment 和传统 enrollment 在权限范围上的差异——新方案同样采用”密封的工作数据区”(separated work managed namespace),不会触碰用户的个人数据。
值得深挖的点
域名发现(Domain Discovery)机制
整个流程的起点是用户在设置中输入工作邮箱。系统提取邮箱域名,查询 Apple 的发现服务(Discovery Service),获取该域名关联的 enrollment URL 和身份验证方式。这意味着 MDM 服务器必须提前在 ABM/ASM 中完成域名验证和绑定。如果一个企业有多个域名(比如 example.com 和 example.cn),每个都需要单独验证。这个发现过程对用户完全透明——他们只看到了”输入邮箱”这一步。
与现有 MDM 工作流的兼容性
Account-driven enrollment 不是替代传统 enrollment,而是新增了一种注册路径。已通过传统方式注册的设备不受影响。MDM 服务器需要同时支持两种路径:传统的 profile download URL 和新的 account-driven discovery endpoint。Apple 要求两种路径推送的 enrollment profile 内容保持一致,否则可能导致管理功能异常。
代码片段
<!-- MDM 服务器返回的 enrollment discovery 响应 -->
<!-- 系统根据用户邮箱域名查询到此 JSON -->
{
"EnrollmentModes": ["User"],
"UserEnrollment": {
"EnrollmentURL": "https://mdm.example.com/enroll",
"AuthenticationType": "OAuth2",
"OAuth2": {
"AuthorizationURL": "https://idp.example.com/oauth/authorize",
"TokenURL": "https://idp.example.com/oauth/token",
"Scopes": ["openid", "profile", "email"]
}
},
"Branding": {
"Name": "Example Corp",
"LogoURL": "https://mdm.example.com/branding/logo.png"
}
}
<!-- SAML 2.0 验证方式的 discovery 响应配置 -->
{
"EnrollmentModes": ["User"],
"UserEnrollment": {
"EnrollmentURL": "https://mdm.example.com/enroll",
"AuthenticationType": "SAML",
"SAML": {
"RequestURL": "https://idp.example.com/saml/sso",
"Issuer": "https://mdm.example.com/saml/metadata"
}
}
}
# 在 Apple Business Manager 中验证域名的步骤
# 1. 在 ABM 网页端添加域名 example.com
# 2. 按照指引在 DNS 中添加 TXT 记录验证所有权
# 3. 绑定域名到对应的 MDM 服务器
# 4. 配置 enrollment URL 和身份验证方式
# 验证通过后,输入 @example.com 邮箱的用户会被路由到此 MDM
最佳实践
- 在 ABM 中配置 account-driven enrollment 之前,先用测试域名跑通整个流程。域名验证一旦绑定,修改需要联系 Apple 支持,周期较长。
- OAuth 2.0 的 token endpoint 必须返回
id_token(OpenID Connect 规范),否则注册会失败。确保你的 IdP 配置了正确的 scope。 - 注册成功后,在欢迎界面( Enrollment 的
Branding配置)中写清楚”接下来会发生什么”——很多用户对”工作数据区”的概念不熟悉,一句简短说明能减少支持工单。
还有什么值得关注
- Account-driven enrollment 支持 macOS Monterey,但流程略有不同——用户在系统偏好设置中添加”工作或学校账号”。
- 如果用户的 Managed Apple ID 启用了双因素认证(2FA),注册流程中会自动触发验证,无需额外配置。
- 注册完成后的 enrollment profile 支持通过 ServerToken 更新,可以无感刷新管理策略。