配置 MDM Provisioning Profile

前提:已获得 APNS 证书。请参考《 MDM 证书申请流程 》一文。

环境:OSX 10.9.2,JDK 1.6,Eclipse JavaEE Helois,Tomcat 7.0

一、准备

1、首先你要有一个 APNS 证书,证书的获得请参考《 MDM 证书申请流程 》。

此步骤中需要注意的是 MDM Vendor 资格的获得。默认情况下,299美元的企业开发账号是没有 MDM Vendor 权限的,需要你向苹果申请(网站申请或者发邮件)。

2、还需要有一个 https 服务器。

此步骤中需要注意的是 SSL 证书的获得。在《开启 Tomcat https 服务》一文中,介绍了如何使用自签名的 SSL 证书在 tomcat 上部署 https 服务。

值得注意的是,在 Eclipse 中运行的 tomcat 服务器和单独使用 startup.sh 脚本启动的 tomcat 服务器采用的不是同一套配置文件。如果你为tomcat 配置了 https 服务,还需要在 eclipse 中再配一次,否则 Eclipse 中运行的 tomcat 不会启动 https 服务。其server.xml 在 eclipse 的 Servers 项目下面还有一个拷贝。

此外,笔者还想在 tomcat 上配置 APR,在windows下这很容易,但在 Mac 下不行。如果有人能配置成功,希望能告诉我是怎么做到的。

3、能够编写一点点 java 代码

本例的 MDM Server 是用 Java 实现的,需要写一点点简单的 Java 代码。但重点根本不在这里,MDM 实现的难点是证书及配置描述文件的配置,而不是代码。

二、MDM 配置描述文件

首先需要一个 MDM 配置描述文件,此文件用于安装到设备上,使其向 MDM 服务器注册为受管理的设备。

1、凭证

用 IPCU 新建一个配置描述文件,在“凭证”栏,创建新凭证。

1)点击“+”,将 CA 根证书添加到凭证中。

2)再次点击“+”,将私钥(.p12)添加到凭证中。

也就是说,在“凭证”中需要加入两个证书:根证书(自签名CA证书)和 MDM customer p12 证书(即 customer 在制作 certificate signingrequest 时生成的密钥对,将其从钥匙串中导出)。

根证书用于访问使用了自签名证书的 https 服务器(即后边配置的“服务器 URL”和“登记 URL”的https服务)。

而 p12 证书用于签名移动设备管理playload 。同时你要输入 p12 证书密码,否则安装配置描述文档时,中间会弹出一个对话框要你输入密码。

这些证书会在设备安装配置描述文件时自动安装到设备中。你可以利用这一点向设备安装多个根证书。例如:服务器 URL 中使用了一个https服务器,而登记 URL 中又使用了另一个不同的https服务器。这样设备在访问这些SSL 服务器时,不会要求下载客户端证书。

2、“移动设备管理”

“移动设备管理”页,需要配置如下项目:

1)服务器 URL:

填写你的 MDM 服务器地址,该 URL 用于与 iOS 设备通信,即发送 MDM 指令。

注意,该 URL 应为 https 地址。例如:https://192.168.2.1:8443/mdmtest/server。

2)登记 URL:

填写设备注册地址,该 URL 用于设备注册。可以与服务器URL不同。

注意,该 URL 应为 https 地址。例如:https://192.168.2.1:8443/mdmtest/checkin。

3)主题:

这个是 APNS 推送证书在钥匙串中的“用户 ID”字段复制粘贴过来的,如:

com.apple.mgmt.External.78d92bb8-ed86-4735-ba0c-e1154efed9a9

4)身份:

从下拉列表中选择一个有效的“凭证”。即前面我们在“凭证”添加的私钥。

5)访问权限

权限列表中包含“在设备中查询”、“添加/删除”、“安全性”等各项权限,你可以全部勾上,但是对于“使用开发 APNS 服务器”需要特别注意。这个是使用测试 APNS 服务器(gateway.sandbox.push.apple.com)推送。对于MDM,一般不要勾选此项, 我们使用 production 服务器。

3、SCEP

如果你准备使用 SCEP,可在此填写入 SCEP 服务器 URL 和示例名称。如果你不准备实现 SCEP,请保持此项为“尚未配置”,否则描述文件不能通过验证。

4、MDM Push 证书更新

描述文件是由 MDM customer 来制作的。作为 customer,MDM Push 证书、Profile 描述文件和 customerCSR 密钥对是绑定的。也就是说,当你重新请求 MDM Push 证书时,必须重新制作Profile描述文件。这样,服务器上的 MDM Push 证书和客户端的配置描述文件必须同步更新。否则,MDM服务器上的消息将无法推送到客户端。

三、测试配置描述文件

打开 eclipse,新建 web 项目 mdmtest。新建一个 Servlet:

@WebServlet("/checkin")

public class checkin extends HttpServlet {

private static final longserialVersionUID = 1L;

      

    /**

     * @seeHttpServlet#HttpServlet()

     */

    public checkin(){

       super();

       // TODO Auto-generated constructor stub

    }

    public voiddoPut(HttpServletRequest req,

    HttpServletResponse res)

    throws ServletException,IOException

    {

     PrintWriter out = res.getWriter();        

     try

     {

        int i;

       InputStream input;

        input = req.getInputStream();

       BufferedInputStream in =

           new BufferedInputStream(input);

       BufferedReader reader =

           new BufferedReader(

            new InputStreamReader(in));    

       while ((i = reader.read()) != -1)

        {

          System.out.printf("%c", i);

        }

        out.close();

        in.close();

      }

      catch (IOException e) {}

     }

}

运行 mdmtest,然后在设备安装 MDM 配置描述文件。此时 Eclipse 控制台将输出设备发给服务器的 Authenticate 和 TokenUpdate消息。

到此,我们的 MDM 研究工作已完成大半,接下来的就是实现一个简单的 MDM server。

<think>好的,我需要回答用户关于iOS MDM设备管理中设备管理锁的功能和实现的问题。首先,我要理解用户的问题核心:他们想知道设备管理锁在iOS MDM中的作用、如何实现,以及相关的解决方案。我需要参考提供的三个引用内容,并确保回答符合系统级指令,比如正确使用LaTeX格式,结构清晰,并且生成相关问题。 首先,根据引用[1],Apple的MDM服务提供了远程锁定设备的功能。设备管理锁主要用于防止未经授权的访问,例如在设备丢失或员工离职时保护数据安全。接下来,我需要详细说明实现这一功能的具体步骤,可能包括配置描述文件、发送锁定命令等。引用[3]提到Commandment作为开源解决方案支持iOS和macOS,所以可以举例说明如何通过这样的工具实现锁定功能。 然后,需要确保回答中使用正确的LaTeX格式,比如变量用$...$包裹,独立公式用$$...$$。不过这个问题可能不涉及太多数学公式,但如果有相关技术参数或命令,可能需要适当应用格式。例如,提到API接口时,可以用$符号包裹代码片段。 接下来,生成相关问题时要围绕设备管理锁的扩展功能、与其他安全措施的结合、开源方案的选择等,参考引用[2]和[3]提到的开源MDM的优缺点,可能涉及相关问题。 最后,检查回答结构是否清晰,分点说明功能和实现步骤,引用标识是否正确添加,例如在提到远程锁定功能时引用[^1],提到Commandment时引用[^3]。确保没有使用Markdown格式,语言口语化,避免复杂术语,让用户容易理解。</think>### iOS MDM设备管理锁功能与实现 #### 一、设备管理锁的核心功能 1. **远程锁定设备** 通过MDM协议向设备发送锁定指令,强制设备进入锁定状态,需输入正确密码才能解锁。此功能常用于设备丢失或员工离职时保护数据安全。 2. **自定义锁定信息** 支持在锁屏界面显示自定义文本(如联系方式、警告信息),提升找回设备的可能性。 3. **与激活锁联动** 结合Apple的激活锁(Activation Lock)功能,防止设备被非法重置或绕过管理权限。 #### 二、技术实现步骤 1. **配置描述文件(Profile)** 在MDM服务器中创建包含管理策略的描述文件,例如: ```xml <dict> <key>LockDevice</key> <true/> <key>LockMessage</key> <string>请联系IT部门解锁:400-123-4567</string> </dict> ``` 通过$HTTP/HTTPS$协议将描述文件推送到设备。 2. **发送锁定命令** 使用MDM协议的`DeviceLock`指令: ```python # 示例:通过Commandment工具发送指令 mdm-cli send-command --udid=device_udid --command=DeviceLock --message="设备已锁定" ``` 此指令通过APNs(Apple推送通知服务)实时触达设备。 3. **状态监控与反馈** 设备执行锁定后,MDM服务器会接收状态响应,并记录日志。例如: $$ \text{响应状态码} \begin{cases} 200 & \text{成功} \\ 4xx/5xx & \text{失败} \end{cases} $$ #### 三、开源解决方案示例(以Commandment为例) 1. **部署流程** - 安装Commandment服务器,配置与Apple APNs的证书对接 - 注册设备UDID并分配管理策略 - 通过REST API调用锁定接口: ```bash POST /api/device/lock Body: {"udid": "device_udid", "message": "紧急锁定"} ``` 2. **注意事项** - 需企业级Apple Developer账号生成推送证书 - 设备必须已安装MDM描述文件并完成注册 #### 四、与其他安全功能的协同 - **与远程擦除(Remote Wipe)联动**:锁定后若风险持续,可触发数据擦除 - **与地理围栏结合**:检测设备离开指定区域时自动锁定[^2]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值