使用描述文件配置多台设备
概览
配置描述文件可以简化设置大量设备的过程。自定日历和电子邮件设置、网络设置 (如 WiFi 和 VPN 设置)、证书以及设备限制是可以使用配置描述文件配置的部分属性。
你可以通过多种方式来部署配置描述文件:
-
使用 App Store 中提供的 Apple Configurator 2。
-
在电子邮件中。
-
在网页上。
-
按照“无线描述文件传送和配置” 中所述使用无线配置。
-
使用移动设备管理服务器以无线方式部署。
重要信息
配置描述文件仅供企业使用。除 APN、VPN 和 WiFi 描述文件之外,请勿将配置描述文件用于消费者 App。
定义描述文件
配置描述文件以任何 XML 工具均可读取和写入的属性列表格式储存。
配置属性列表包含 Top
对象中列出的属性。这些属性描述了描述文件及其部署规则。具体配置值以有效负载数组形式储存在 Payload
属性中。
每个有效负载的内容都包含描述文件专用的键 (请参阅“特定于描述文件的有效负载密钥”) 以及所有有效负载通用的键 (请参阅下面的键定义列表)。
Payload
(字符串)Type -
在每个有效负载域的参考页面上指定的有效负载类型。
Payload
(整数)Version -
这个特定有效负载的版本。
Payload
(标识符)Identifier -
有效负载的反向 DNS 式标识符。这个标识符通常与
Top
值相同,但会附加额外的组成部分。Level Payload
(字符串)UUID -
有效负载的全局唯一标识符。实际内容并不重要,但必须全局唯一。在 macOS 中,可使用
uuidgen
生成 UUID。 Payload
(字符串)Display Name -
描述文件有效负载的可直接识别的名称。名称会显示在“详细信息”屏幕上,并且不必是唯一的。
Payload
(字符串)Description -
这个有效负载的可直接识别的描述。这一描述会显示在“详细信息”屏幕上。
Payload
(字符串)Organization -
可直接识别的字符串,其中包含提供描述文件的组织的名称。这个值无需与封闭词典中的组织有效负载值匹配。
加密和签署描述文件
iOS 和 macOS 都支持使用加密来保护描述文件的内容免遭未经授权的访问。加密的描述文件只能使用之前安装在设备上的私钥进行解密。要加密描述文件,请按照以下步骤操作:
-
移除
Payload
数组并将这个数组序列化为属性列表。请注意,这个属性列表中的顶层对象是数组,而不是词典。Content -
将序列化的属性列表作为封装数据进行 CMS 加密。
-
以 DER (可辨别编码规则) 格式序列化加密数据。
-
使用
Encrypted
键将序列化的数据设置为描述文件中数据属性列表项的值。Payload Content
对描述文件进行签名可保证数据完整性。要对描述文件进行签名,请将 XML 属性列表放入经过 DER 编码、CMS 签名的数据结构中。
SCEP 配置描述文件示例
下面的列表显示了一个示例描述文件的内容,这个描述文件中包含简单证书注册协议 (SCEP) 有效负载。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple Inc//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>Ignored</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadIdentifier</key>
<string>Ignored</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadContent</key>
<dict>
<key>URL</key>
<string>https://scep.example.com/scep</string>
<key>Name</key>
<string>EnrollmentCAInstance</string>
<key>Subject</key>
<array>
<array>
<array>
<string>O</string>
<string>Example, Inc.</string>
</array>
</array>
<array>
<array>
<string>CN</string>
<string>User Device Cert</string>
</array>
</array>
</array>
<key>Challenge</key>
<string>...</string>
<key>Keysize</key>
<integer>1024</integer>
<key>KeyType</key>
<string>RSA</string>
<key>KeyUsage</key>
<integer>5</integer>
</dict>
<key>PayloadDescription</key>
<string>Provides device encryption identity</string>
<key>PayloadUUID</key>
<string>fd8a6b9e-0fed-406f-9571-8ec98722b713</string>
<key>PayloadType</key>
<string>com.apple.security.scep</string>
<key>PayloadDisplayName</key>
<string>Encryption Identity</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadOrganization</key>
<string>Example, Inc.</string>
<key>PayloadIdentifier</key>
<string>com.example.profileservice.scep</string>
</dict>
</array>
</dict>
</plist>