Discover account-driven User Enrollment
System & Services 进阶 22m

了解基于账号的用户注册

Discover account-driven User Enrollment

2021年6月10日

在 Apple 官方观看视频

一句话判断

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 更新,可以无感刷新管理策略。
WWDC 2021