Erreur lors de la combinaison des charges utiles scep et mdm – le server d'inscription n'a pas fourni de certificate d'identité valide

Je travaille sur le lancement de mon propre service MDM, et j'essaie de combiner les charges utiles SCEP et MDM comme le suggère le document de protocole MDM d'Apple. J'ai créé mon propre service Web SCEP en C # .Net et je sais que l'appareil peut get un certificate valide lorsque je viens d'envoyer la charge utile SCEP. Toutefois, lorsque j'inclue également une charge utile MDM pointant vers l'UUID de la charge utile SCEP via la key IdentityCertificateUUID, j'obtiens l'erreur suivante: " Le server d'inscription n'a pas fourni de certificate d'identité valide. " Cette configuration est celle envoyée après l'user choisit d'installer la configuration d'inscription initiale (étape 1 de la phase 2 dans ce diagramme).

L'appareil ne semble même pas tenter de se connecter à mon server, et grâce à la journalisation côté server, je sais qu'il n'atteint jamais ma page de service Web SCEP. Cela semble indiquer qu'il y a un problème avec le certificate que j'utilise pour signer la charge utile. J'ai essayé séparément de le signer avec mon certificate SSL (d'une autorité racine de confiance), mon certificate push client MDM (chaîné à partir de notre certificate fournisseur) et mon certificate d'autorité de certificateion racine auto-signé (créé via makecert.exe) le service SCEP utilise pour émettre de nouveaux certificates (c'est-à-dire des certificates d'identité de périphérique).

J'ai regardé la sortie de l'iPCU (iPhone Configuration Utility) quand je crée un profil avec les charges utiles MDM et SCEP, et ce n'est pas un profil valide (j'ai même essayé de le copyr presque en gros). Toutefois, lorsque j'installe le profil via l'iPCU, l'erreur n'apparaît pas et le process d'inscription SCEP commence sans problème.

Une note de côté – en utilisant un fournisseur MDM préexistant n'est pas une option ici.

Voici le profil que j'utilise:

<?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> <ssortingng>this is a challenge</ssortingng> <key>Key Type</key> <ssortingng>RSA</ssortingng> <key>Key Usage</key> <integer>5</integer> <key>Keysize</key> <integer>1024</integer> <key>Name</key> <ssortingng>mycompany</ssortingng> <key>Resortinges</key> <integer>3</integer> <key>RetryDelay</key> <integer>0</integer> <key>Subject</key> <array><array><array> <ssortingng>CN</ssortingng> <ssortingng>mycompany</ssortingng> </array></array></array> <key>URL</key> <ssortingng>https://mysite.com/scep.aspx</ssortingng> </dict> <key>PayloadDescription</key> <ssortingng>Configures SCEP</ssortingng> <key>PayloadDisplayName</key> <ssortingng>SCEP (mycompany)</ssortingng> <key>PayloadIdentifier</key> <ssortingng>com.mycompany.mdm.scep1</ssortingng> <key>PayloadOrganization</key> <ssortingng></ssortingng> <key>PayloadType</key> <ssortingng>com.apple.security.scep</ssortingng> <key>PayloadUUID</key> <ssortingng>57225d3d-0758-4d23-8093-e4d8c9bbd47c</ssortingng> <key>PayloadVersion</key> <integer>1</integer> </dict> <dict> <key>AccessRights</key> <integer>3</integer> <key>CheckInURL</key> <ssortingng>mysite.com/checkin.aspx</ssortingng> <key>CheckOutWhenRemoved</key> <false/> <key>IdentityCertificateUUID</key> <ssortingng>57225d3d-0758-4d23-8093-e4d8c9bbd47c</ssortingng> <key>PayloadDescription</key> <ssortingng>Configures MobileDeviceManagement.</ssortingng> <key>PayloadIdentifier</key> <ssortingng>com.mycompany.mdm.mdm2</ssortingng> <key>PayloadOrganization</key> <ssortingng></ssortingng> <key>PayloadType</key> <ssortingng>com.apple.mdm</ssortingng> <key>PayloadUUID</key> <ssortingng>ed0ae41d-1aa7-4721-9fe9-139c1072132c</ssortingng> <key>PayloadVersion</key> <integer>1</integer> <key>ServerURL</key> <ssortingng>https://mysite.com/checkin.aspx</ssortingng> <key>SignMessage</key> <false/> <key>Topic</key> <ssortingng>com.apple.mgmt.mypushsubject</ssortingng> <key>UseDevelopmentAPNS</key> <true/> </dict> </array> <key>PayloadDescription</key> <ssortingng>Profile description.</ssortingng> <key>PayloadDisplayName</key> <ssortingng>Test Profile</ssortingng> <key>PayloadIdentifier</key> <ssortingng>com.mycompany.mdm</ssortingng> <key>PayloadOrganization</key> <ssortingng>mycompany</ssortingng> <key>PayloadRemovalDisallowed</key> <false/> <key>PayloadType</key> <ssortingng>Configuration</ssortingng> <key>PayloadUUID</key> <ssortingng>13321058-4037-478c-9b1e-ef6f810065cb</ssortingng> <key>PayloadVersion</key> <integer>1</integer> </dict> </plist> 

Je suis entré en contact avec Apple à ce sujet.

Apparemment, vous voulez envoyer la charge utile combinée MDM & SCEP à l'étape 2 de la phase 3 du diagramme que j'ai lié dans ma question, qui est le profil envoyé après l'inscription OTA. Selon Apple, vous avez besoin de deux certificates distincts (ce qui signifie deux inscriptions SCEP) – un pour l'inscription OTA, et un pour l'inscription MDM.