Highlight
Apple 在 iOS 14、iPadOS 14 和 macOS Big Sur 中为企业身份管理补强了 SSO extension、内建 Kerberos extension、Managed Apple ID 联邦认证和 SCIM 同步,让组织能用现有目录凭据连接设备、App 与 Apple 服务。
核心内容
企业里的身份问题常常从一个简单场景开始:员工拿到一台 Mac 或 iPad,先要登录设备,再登录内部网站、原生 App、文件服务器、打印服务和 Apple 服务。每个入口都可能接到不同系统,有的在云端,有的还在公司内网。IT 团队既要降低登录摩擦,又要保留审计、策略和撤销能力。
这场 session 的核心回答是把身份能力放进系统层。Apple 先区分 macOS 上本地账号、网络账号和移动账号,建议 1:1 部署尽量使用本地账号,再用内建 Kerberos extension、SSO extension 或 MDM vendor 的工具连接目录资源。这样,登录 Mac 本身不必依赖目录服务器的实时状态,访问企业资源时仍能取得 Kerberos ticket 或走单点登录。
第二条线是 App 与网站的登录。SSO extension 在 iOS 13、iPadOS 13 和 macOS Catalina 已经出现,2020 年的更新集中在企业部署会遇到的细节:用户通道配置、per-app VPN、associated domains、调用方 App 信息、配置移除时的清理回调,以及内建 Kerberos extension 的状态提示和管理选项。
第三条线是 Apple 服务。Apple 明确区分 SSO extension 和 Managed Apple ID 联邦认证:非 Apple App 与网站通过身份提供商的 SSO extension 获得登录体验;Apple App 与 Apple 服务使用 Managed Apple ID,再由 Apple Business Manager 或 Apple School Manager 与 Azure Active Directory 建立联邦。SCIM 则把账号创建、资料更新和删除同步纳入自动化流程。
详细内容
设备登录从账号类型开始
(01:37)Session 先把企业身份放回设备登录场景。Shared iPad 依赖 Managed Apple ID,Mac 则有本地账号、网络账号和移动账号。Apple 对 1:1 Mac 部署的建议很直接:优先使用本地账号,因为用户记录和密码管理都在本机 macOS directory services 中完成,登录时不必等待目录服务器。
(03:23)这并不要求组织放弃目录服务。对于传统上绑定 Active Directory 的 Mac,Apple 建议考虑用内建 Kerberos extension、其他 SSO extension 或 MDM vendor 提供的能力来连接目录资源。Kerberos extension 可以取得 TGT,用于访问文件服务器和打印机,并协助保持本地密码与目录密码同步。
(04:20)有些能力仍需要 Mac 绑定 Active Directory,例如遍历 Active Directory DFS,或通过 MDM 下发 AD Certificate payload 来取得机器证书。这里的边界是:机器可以因为这些需求绑定目录,但用户日常登录仍应尽量使用本地账号。
SSO extension 的企业部署更新
(06:57)SSO extension 让 Safari、WebKit 和原生 App 调用扩展,与组织的 identity provider 交互。2020 年 Apple 增加了用户通道配置,Shared iPad 和 macOS 都能按用户下发 SSO extension 设置;用户通道设置会优先于系统级设置,适合把用户名等参数放到每个用户自己的配置里。
(09:03)per-app VPN 的变化解决了内网身份提供商的问题。Associated domains 可以配合 per-app VPN 获取 site association file,SSO redirect extension 能把登录请求送到内网 IdP。新的 excluded domains list 让可信云端 IdP 流量直接出公网,避免全部绕回公司内网。
(12:24)Associated domains 的 MDM 管理 entitlement 也变得更容易使用。com.apple.developer.associated-domains.mdm-managed 在 2020 年成为公开 entitlement,不再需要 Developer Technical Support 审批。对于每个租户 host name 不同的身份服务商,这降低了发布 App 前枚举所有客户域名的压力。
调用方 App 信息
(13:31)SSO extension 现在能拿到调用它的 App 信息。官方 Code tab 给出的字段是:
var localizedCallerDisplayName: String
var callerTeamIdentifier: String
var isCallerManaged: Bool
关键点:
localizedCallerDisplayName给扩展一个本地化的调用方名称,登录界面不必只展示 bundle identifier。callerTeamIdentifier让扩展识别调用方所属开发团队,适合放进企业信任判断。isCallerManaged标记调用方 App 是否受管理,扩展可以据此限制凭据使用范围。
这组信息对应 transcript 中的 Calling App Name、Calling App Team Identifier 和 Is-Caller-Managed flag。Apple 给出的用途有两个:改善用户看到的提示文字,帮助扩展基于 team identifier 和 managed 状态做安全决策。
配置移除时清理状态
(14:00)SSO extension 原有的标准操作包括登录、刷新和登出。2020 年增加了配置移除操作,当配置 SSO extension 的 MDM profile 从设备上删除时,系统会调用这个操作,让扩展有一个短窗口清理状态。
// existing operations
static let operationLogin: ASAuthorization.OpenIDOperation
static let operationRefresh: ASAuthorization.OpenIDOperation
static let operationLogout: ASAuthorization.OpenIDOperation
//new this year
static let configurationRemoved: ASAuthorizationProviderAuthorizationOperation
关键点:
operationLogin、operationRefresh和operationLogout是已有的常规生命周期操作。configurationRemoved是 2020 年新增操作,触发点是管理配置被移除。- transcript 明确列出的清理任务包括登出、清理文件或 Keychain 项、撤销 token,以及执行扩展需要的其他收尾动作。
- 使用这个能力需要扩展以 iOS 14 或 macOS Big Sur SDK 构建。
内建 Kerberos extension 的可管理性
(15:28)内建 Kerberos extension 也得到一组管理更新。macOS 菜单栏图标会更准确显示状态:凭据、网络连接、DNS 和未过期 Kerberos ticket 都正常时显示完整状态;缺少条件时提示用户具体问题。管理员还能自定义身份标签和帮助文本,让登录窗口使用组织内部熟悉的称呼。
(16:47)Kerberos extension 现在会在 iOS、iPadOS 和 macOS 上为 authentication-only request 触发 per-app VPN,不再要求额外网络请求先把 VPN 唤起。macOS 的 app-to-per-app VPN 也覆盖 Kerberos,配置时需要把 App-SSO-Agent 和 Kerberos-Menu-Extra 加进 payload。
Managed Apple ID、联邦认证与 SCIM
(18:54)Managed Apple ID 是组织拥有并管理的 Apple 用户账号。它用于个性化设备、访问 Apple App 与 Apple 服务,也是 User Enrollment 和 Shared iPad 的基础。对于企业身份体系,关键能力是 federated authentication。
(20:03)联邦认证把 Apple Business Manager 或 Apple School Manager 连接到 Microsoft Azure Active Directory。用户首次用联邦身份登录 Apple 服务时,所需的 Managed Apple ID 会自动创建。协议层面,设备被 Apple 重定向到 Azure AD,Azure AD 返回签名的 SAML response,Apple 验证签名后允许访问服务。
(23:16)配置联邦按域名进行。管理员先在 Apple Business Manager 或 Apple School Manager 里验证域名,验证方式是 DNS TXT record。随后用 Azure AD 管理员身份授权 Apple Business Manager 集成,再用该域名下的用户做测试登录。Apple 还会扫描用户名冲突,冲突用户需要改用其他域名;60 天后未处理的用户名会被 Apple 更新到临时域。
(28:04)在这场 2020 session 的语境里,Apple 还宣布 SCIM integration 会进入 Apple Business Manager 和 Apple School Manager。SCIM 用于把 Azure AD 中的账号创建、资料修改和删除同步给 Apple。配置时 Apple Business Manager 生成 SCIM token 和 tenant URL,管理员把它们填入 Azure AD 的 Apple Business Manager enterprise application provisioning 设置中。
核心启发
-
做一套受管理 App 登录审计:在企业 SSO extension 中记录
localizedCallerDisplayName、callerTeamIdentifier和isCallerManaged。为什么值得做:2020 年新增的调用方信息能帮助区分受管理 App 与非受管理 App。怎么开始:先在扩展里把这三个字段接入日志与策略判断,只允许指定 team identifier 或 managed App 取用企业凭据。 -
给离职和设备移交设计 SSO 清理流程:利用
configurationRemoved在 MDM profile 移除时清理 Keychain、token 和本地文件。为什么值得做:transcript 明确指出这个操作用于配置移除后的短窗口收尾。怎么开始:把现有 logout/revoke token 逻辑整理成可复用函数,再由configurationRemoved调用同一套清理路径。 -
为混合云身份服务优化 per-app VPN 路由:把内网 IdP 通过 per-app VPN 访问,把可信云端 IdP 加进 excluded domains list。为什么值得做:SSO extension 继承 host App 的 per-app VPN 设置,全部流量绕回内网会损失云端 IdP 的地域与负载均衡优势。怎么开始:先列出登录链路中的内网域名和公网 IdP 域名,再在 MDM payload 中配置 associated domains、direct downloads 和排除域名。
-
把 Managed Apple ID 的生命周期接到目录变更:用联邦认证处理登录,用 SCIM 同步账号创建、资料更新和删除。为什么值得做:session 把离职撤权、部门或姓名变更、提前授予服务权限列为账号生命周期问题。怎么开始:先完成域名 TXT 验证和 Azure AD 授权,再在 Apple Business Manager 中生成 SCIM token 与 tenant URL,放入 Azure AD 的 provisioning 配置。
关联 Session
- Deploy Apple devices using zero-touch — 讲 Apple 管理员如何远程部署设备,与本 session 的 enrollment customization、Managed Apple ID 和 MDM 配置前后相接。
- What’s new in managing Apple devices — 汇总 2020 年设备管理能力,适合作为理解 SSO、per-app VPN、Managed Apple ID 配置边界的配套内容。
- Discover AppleSeed for IT and Managed Software Updates — 面向 IT 管理员的测试与托管更新流程,和企业身份管理同属设备全生命周期管理。
- Build scalable enterprise app suites — 讲企业 App 套件的结构、共享能力和生产配置,可与 SSO extension 的企业 App 登录策略一起规划。
评论
GitHub Issues · utterances