Ошибка при объединении полезных нагрузок scep и mdm - сервер регистрации не предоставил действительный сертификат идентификации

Я работаю над созданием собственной службы MDM и пытаюсь объединить полезную нагрузку SCEP и MDM, как предлагает документ протокола MDM от Apple. Я создал свой собственный веб-сервис SCEP в C # .Net и знаю, что устройство может получить действительный сертификат, когда я просто отправляю полезную нагрузку SCEP. Однако, когда я также включаю полезную нагрузку MDM, которая указывает на UUID полезной нагрузки SCEP через ключ IdentityCertificateUUID, я получаю следующую ошибку & quot;The enrollment server did not provision a valid identity certificate.& Quot; Эта конфигурация отправляется после того, как пользователь выбрал установку начальной конфигурации регистрации (шаг 1 этапа 2 вэтот диаграмма).

Устройство, по-видимому, даже не пытается подключиться к моему серверу, и благодаря регистрации на стороне сервера я знаю, что оно никогда не достигает моей страницы веб-службы SCEP. Похоже, это указывает на то, что с сертификатом, который я использую для подписи полезных данных, что-то не так. Я отдельно пытался подписать его с помощью своего SSL-сертификата (из предварительно доверенного корневого центра), моего push-сертификата MDM клиента (прикованного от сертификата нашего поставщика) и моего самоподписанного корневого сертификата центра сертификации (созданного с помощью makecert.exe), служба SCEP использует для выдачи новых сертификатов (т. е. сертификатов идентификации устройства).

Я посмотрел на выходные данные iPCU (утилиты конфигурации iPhone), когда создаю профиль с полезными нагрузками MDM и SCEP, и он не является действительным профилем (я даже пытался скопировать его почти оптом). Однако, когда я устанавливаю профиль через iPCU, ошибка не появляется, и он начинает процесс регистрации SCEP без проблем.

Примечание: использование ранее существующего поставщика MDM здесь не вариант.

Ниже приведен профиль, который я использую:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>PayloadContent</key>
      <array>
        <dict>
          <key>PayloadContent</key>
          <dict>
            <key>Challenge</key>
            <string>this is a challenge</string>
            <key>Key Type</key>
            <string>RSA</string>
            <key>Key Usage</key>
            <integer>5</integer>
            <key>Keysize</key>
            <integer>1024</integer>
            <key>Name</key>
            <string>mycompany</string>
            <key>Retries</key>
            <integer>3</integer>
            <key>RetryDelay</key>
            <integer>0</integer>
            <key>Subject</key>
            <array><array><array>
              <string>CN</string>
              <string>mycompany</string>
            </array></array></array>
            <key>URL</key>
            <string>https://mysite.com/scep.aspx</string>
          </dict>
          <key>PayloadDescription</key>
          <string>Configures SCEP</string>
          <key>PayloadDisplayName</key>
          <string>SCEP (mycompany)</string>
          <key>PayloadIdentifier</key>
          <string>com.mycompany.mdm.scep1</string>
          <key>PayloadOrganization</key>
          <string></string>
          <key>PayloadType</key>
          <string>com.apple.security.scep</string>
          <key>PayloadUUID</key>
          <string>57225d3d-0758-4d23-8093-e4d8c9bbd47c</string>
          <key>PayloadVersion</key>
          <integer>1</integer>
        </dict>
        <dict>
          <key>AccessRights</key>
          <integer>3</integer>
          <key>CheckInURL</key>
          <string>mysite.com/checkin.aspx</string>
          <key>CheckOutWhenRemoved</key>
          <false/>
          <key>IdentityCertificateUUID</key>
          <string>57225d3d-0758-4d23-8093-e4d8c9bbd47c</string>
          <key>PayloadDescription</key>
          <string>Configures MobileDeviceManagement.</string>
          <key>PayloadIdentifier</key>
          <string>com.mycompany.mdm.mdm2</string>
          <key>PayloadOrganization</key>
          <string></string>
          <key>PayloadType</key>
          <string>com.apple.mdm</string>
          <key>PayloadUUID</key>
          <string>ed0ae41d-1aa7-4721-9fe9-139c1072132c</string>
          <key>PayloadVersion</key>
          <integer>1</integer>
          <key>ServerURL</key>
          <string>https://mysite.com/checkin.aspx</string>
          <key>SignMessage</key>
          <false/>
          <key>Topic</key>
          <string>com.apple.mgmt.mypushsubject</string>
          <key>UseDevelopmentAPNS</key>
          <true/>
        </dict>
      </array>
      <key>PayloadDescription</key>
      <string>Profile description.</string>
      <key>PayloadDisplayName</key>
      <string>Test Profile</string>
      <key>PayloadIdentifier</key>
      <string>com.mycompany.mdm</string>
      <key>PayloadOrganization</key>
      <string>mycompany</string>
      <key>PayloadRemovalDisallowed</key>
      <false/>
      <key>PayloadType</key>
      <string>Configuration</string>
      <key>PayloadUUID</key>
      <string>13321058-4037-478c-9b1e-ef6f810065cb</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
    </dict>
  </plist>

Ответы на вопрос(1)

Ваш ответ на вопрос