Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unique Identifiers for iOS MDM

Tags:

ios

udid

mdm

Since Apple is deprecating Unique Device Identifier for apps, what is the best approach to link back an Enterprise App on a device that has been enrolled with MDM?

From MDM Protocol reference document, the enrollment is still using the the UDID for check-in procedure.

We can't use the new identifierForVendor because it is not as the same as the UDID for the check-in.

Let me update how i implemented my MDM solution,

  1. Device will check-in to MDM server with a token and device UDID (the one that Apple is removing the API)
  2. Device will send device info to MDM server (Wifi MAC Addr, Serial number, OS version, and other infos)
  3. There will be a client app that will be talking to MDM server via RESTful API. (Previously i was using the UDID as a key identifier)

I was thinking of using the MAC Address but in the latest iOS 7 the system will always return value 02:00:00:00:00:00.

We also can't get the device serial number.

So my question again, how can we know this app on this device belongs to this MDM enrollment on the server on (3). Because now, the app doesnt have any common key to be referred with the checked-in process. How will the server know which device is which?

Thanks.

like image 972
adiman Avatar asked Aug 16 '13 02:08

adiman


People also ask

What is unique device identifier iOS?

A unique device identifier (UDID) is a 40-character string assigned to certain Apple devices including the iPhone, iPad, and iPod Touch. Each UDID character is a numeral or a letter of the alphabet. Using the UDID, third parties, particularly app vendors, can track subscriber behavior.

Is iOS UUID unique?

Your UDID is a unique identifier that Apple uses to associate a device to an iOS developer account so that developers can install and test their apps before releasing them.

Where is the unique device identifier on iPhone?

Your UDID can be found in Finder. In the Finder sidebar, choose your iPhone, then click area in the header just under your phone's name until you can see the UDID. Then, right click and choose Copy UDID.

How can you identify a uniquely device?

This unique ID can be IMEI, MEID, ESN or IMSI. They can be defined as follows : IMEI for International Mobile Equipment Identity : the Unique Number to identify GSM, WCDMA mobile phones as well as some satellite phones.


2 Answers

The best way, and perhaps the only way, is to use the new Managed Apps configuration capabilities in iOS 7. You could have your MDM push down something like an API key to your app. Then your app presents that key in your call back to your MDM server or any other web service.

Once you push your config down to your app, you could pull out the API key with something like the below. Most of the mainstream MDM solutions already support this type of functionality in their latest versions.

NSDictionary *config = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"com.apple.configuration.managed"];
NSString *apiKey = config[@"kAPIKey"];

if (apiKey) {
    //We got an API key and we can use it
} else {
    //We didn't get an API key...something has gone wrong
}
like image 184
lidsinker Avatar answered Oct 15 '22 11:10

lidsinker


However lidsinker's answer is true, let me focused on it so some others who are searching for this can be helped.

You can create Enterprise app and can install it via MDM. Once device enrolled, MDM can install Enterprise app to the device. MDM can also set default configuration in NSUserDefault.

App can read it whenever it launch as above described in lidsinker's answer.

Apple provide example here. https://developer.apple.com/library/content/samplecode/sc2279/Introduction/Intro.html

like image 41
Rohan Avatar answered Oct 15 '22 13:10

Rohan