让 FileVault 2 / APFS 加密卷和 Active Directory 共存

imbushuo

Please mind the gap

13人赞了该文章

这篇文章对于大部分 Mac 用户来说是不需要的,因为你们家里可能没有一个 Active Directory……但是我家确实有一个。

背景知识:FileVault 2 和 APFS 加密卷使用一个高仿 macOS 登录界面的 EFI 程序实现卷解密和用户鉴权两个功能。在 iMac Pro 上,Apple T2 实现了对操作系统透明的 SSD 加解密功能,很不幸,对于其他 Mac 来说,你还需要手动提供密钥,且苹果没有提供类似 Bitlocker 网络解锁之类的功能(虽然 Mac 的固件有完整的 TCP/IP 栈和 Wi-Fi 支持)。于是我把 MacBook 加入了域之后就遇到了系统启动前的登录界面没有 Active Directory 账户的问题。这个问题对于跳过 First Setup 的定制镜像来说不应该存在。如果存在请继续看下文。

很明显我可以通过登录一个本地账户,然后登出本地账户再切换用户的方法来绕开加密卷的问题,但是这个方法非常繁琐,我依旧希望在不损失安全的情况下快捷地登录我的 Active Directory 账户来访问内网资源。搜索了一圈,果然一大群 IT Admin 在抱怨这个事情……然后水果也没修掉这个问题(可以说是 by design 了)。一个变通方法如下:

  1. 打开目录工具,进入 Active Directory 设置并确保 Mobile Account 启用。Mobile Account 即缓存域凭据以在设备脱离域控的情况下可以使用本地缓存凭据鉴权并登录系统,在 Windows 上是默认使用的(虽然不叫 Mobile Account)。具体如下图:


2. 做完这一步后,注销当前账户并重新登录 Active Directory 账户。正常情况下 macOS 会提示输入本地管理员凭据来创建一个 secureToken。输入凭据以继续。如果没有,见下一步。

  1. 确认 secureToken 已经启用:

BEN-MACBOOK:~ imbushuo$ sudo systemctl -secureTokenStatus imbushuo
2018-06-02 13:27:14.090 sysadminctl [816:38319] Secure token is ENABLED for user imbushuo

如果没有启用,使用命令

BEN-MACBOOK:~ imbushuo$ sudo sysadminctl -secureTokenOn <用户名>

来打开 Secure Token。

  1. 更新 PreBoot 数据。对于 FileVault 2 加密的磁盘:

BEN-MACBOOK:~ imbushuo$ sudo fdesetup sync

对于 APFS 加密卷:

BEN-MACBOOK:~ imbushuo$ sudo diskutil apfs updatePreboot disk1s1

卷名可能根据你的分区配置有所更改。

这样操作之后,已经登录过一次的 Active Directory 用户就会显示在 PreBoot 界面,并可以直接在 PreBoot 输入密码解锁卷并登录系统。这个方法也有一些问题:

发布于2018-06-02 05:57
编辑于2018-06-16 10:04

文章被以下专栏收录