Profiles vs. Declarations: Managing Apple Devices the DDM Way
folks. Welcome. Alright. For everyone just getting in now and settling in, my name is Mauricio, and I’ll be the solutions architect conducting today’s webinar. And today, we’re gonna be talking about profiles versus declarations. So if you’ve been with Addigy for a while, you may have noticed one of the features have changed as far as its name from MDM profiles to device settings. And within those device settings, you may have seen a keyword there called declaration. And we’re here to talk about, you know, some of those device settings. What does the declaration actually mean? What do those profiles mean, and what do they do? Where are they located on your machine? We’ll go ahead and talk about that through here. Okay? Again, if at any time there’s any questions due to the amount of folks that are in this audience, which, again, I’m very happy and grateful for, if anything comes up, just feel free to, drop it in the chat. We will have a q and a at the end. If anything comes up as I’m going along, feel free to just drop your question in the chat. We’ll be more than happy to answer and and help you out with whatever it is that you need. But before we get started, we have to understand what are these device settings and what do they actually do. Are these keys that Addigy just pulls out from thin air and just calls it a day and we can manage them on the machine? No. These keys are Apple defined keys. Right? Apple is who decides which keys can be managed. Apple defines the settings, the payloads, the declarations, and which operating system version supports which of those. Our job here at Addigy is basically providing you with the UI and the deployment workflow around what Apple has already built. Right? So that goes with these profiles. If you log in to your Addigy instance, you click on your policies. I have my little test policy here in alpha networks. I have my device settings. New. Several columns worth of profiles that I can deploy to my machine. Within these profiles, there are certain keys. Right? So for example, let’s see. Software update profile. Software update has certain keys that you then point to on the machine and manage that key, keyword being managed. As an example, I’ll just do software update MDM profile. First question that typically comes up here is why are there two checkboxes? Because the first checkbox is what’s going to determine if it’s a managed setting, meaning you, the admin, manages it. The second icon here or or checkbox here rather is whether or not you are gonna enable or disable that setting. K? So if you do not want to automatically install app updates, you would disable that. If you do not want to automatically check for updates, you would disable that or enable, again, case by case basis. Right? This really depends on what both you and the customer you’re managing are looking for. You’ll notice that MDM profiles have an installation priority because it’s based on when the profile lands on the machine. Whereas with declarations, it’s a bit different, and we’ll see that in a moment. So let me just go ahead and create this profile real quick. I’m gonna deploy this profile to my machine via my policy. Right? And like anything in my policy hierarchy, it is inherited. So I have a whole policy hierarchy here for my Alpha Networks company, Alpha Networks, engineering, sales, support. If I add my device settings up here, it is inherited, meaning I would then apply it to engineering, sales, or support. I can wait for the profile to land on the machine, or I can expedite this by clicking deploy now, which deploys my policy here. Where can I review if this profile has landed on the machine? Well, status for one, your deployment status. Right? In this case, it’s green, meaning good. You’re looking for four separate color codes. Green, good. Yellow, pending. You’ve pushed out the profile, but maybe the machine’s offline. Red, error. Maybe you’re doing something redundantly, like file vaulting a machine that’s already file vaulted, or perhaps the profile’s just you know, you’re you know, there’s just an error of some kind. And then you have blue, which is for compatibility. You’ll notice some profiles are only compatible with iOS. Some are strictly for mac most are for macOS, but you’ll have some that are also for iOS, right, which we’ll talk about this in a moment. But the key takeaway here is that you have device settings. What do they do? They enforce a managed setting on the machine, meaning you manage it. The end user can’t do much about that. And this is gonna apply whether you’re deploying a MDM profile or a declaration. So another place I can review if this profile made it to the machine is via device settings, installed device settings. And at the very bottom here, there’s my software update MDM profile. I can also review this in live terminal using a command called pseudo profiles list, which we’ll look at again in a moment, pseudo profiles list. Also, I can look in library preferences. There’s my software update p list. The MDM profile that I deployed is making an adjustment to this p list, and only I, the admin, can do something about that. My end user can’t make any changes locally because it is guaranteeing the state of whatever it is that I’m enforcing. Oops. So where do these profiles actually live? They’re not all entirely in library preferences. Right? Library preferences might show you the results of a setting, but the actual management state lives inside of macOS’ own profile system, which is that second bullet there, private VAR DB configuration profiles. This is not a directory intended for you to go in there and use a native utility like defaults read to look through a file and adjust settings and keys. K? It’s for the Mac OS system itself. K? Don’t just assume a setting is missing because you didn’t find it in library preferences. All settings should be available within that private VAR DB configuration profiles directory. Right? And, again, you can use pseudo profiles list. We’re gonna use this again when I deploy a declaration. Because when we deploy a declaration, you’re gonna notice that it has a fairly unique identifier compared to just the standard MDM profile. Right? You can actually run another command, after this, which I’ll again, I’ll show you in a bit, which dives a little bit deeper into each of these individual profiles here. So the anatomy of an MDM profile. An MDM profile, this is sort of the internals of it, and what we and this is for Chrome extensions. Right? And, basically, the internals of a profile, you have keys and you have values assigned to these keys. And, again, these are Apple defined keys. This is not something that Addigy just creates out of thin air. Right? What we do here at Addigy is we create and we send the profile. MacOS registers the profile as an installed configuration. It’s the profile itself that enforces the setting. Right? This is the profile itself that enforces the setting. When you remove the profile, you essentially remove the instructions. Management, Addigy tells the Mac just install this profile. I see a question in the chat here. If we’re using DDM and policies updates, do we also need to set up the device manage no. So I’ll finish the question. Is talking about or do those devices profiles just an extra level of control if desired? Will DDM work without the device yes. It will. And what you’re referring to, Steven, great question, is our previous webinar, we spoke about DDM as an update mechanism. Right? And it’s, again, asynchronous. You set the instructions. It creates a file. You call it a day. You do not need any device settings profile associated with this. Right? All you need is just setting this up here. The analogy I used previously was it’s like an Amazon delivery. Right? You have two types of deliveries. With MDM, you have to be home at the time of the delivery, aka you have to be at the machine at the time of delivery. Whereas with DDM, it sends the instructions to the machine, and it expects the machine to maintain that state. So this is how we up this is DDM as an update mechanism. From device settings, it’s DDM as far as declaring settings. The the idea or the concept of setting declaration is is still managing and enforce excuse me, enforcing a managed setting. So to summarize everything I just said, the DDM update mechanism doesn’t have anything to do with this, number one. Number two, when you deploy these, regardless of if it’s a declare declaration or a pro or an MDM profile, it will enforce a managed setting. Okay? Now this is not needed to be treated as urgent. You don’t have to go in here and go, oh my god. I gotta go and start migrating to to recommended right now. It’s not necessarily urgent. It’s just something to be cognizant of. Right? So let’s see here. Brent Porter. Currently, if you are using version control in DDM and you want to control some of the update settings, you will need MDM profiles configured. And by MDM profiles, again, Brent meant it means device settings. If you use to keep to the latest, you can replace those settings. Right? And I’ll leave that there. I’ll copy and paste that for you guys in the chat. I think he’s in the chat. Alright. Cool. Okay. So a declaration is more of like a it’s first off, the main difference is that it’s exchanged as JSON. So instead of install this file, it’s more like, hey. Define the state that macOS should maintain. So with legacy profiles, it was install this profile. With a declaration, it’s maintain this state. But the work the idea is still the same of it enforcing a setting. Okay? What does that mean, or what profile might this actually apply to? Well, there’s actually a profile in Addigy right now that has both a legacy and a recommended version, and we’ll take a look at that aft I think after this slide here. But, again, the key distinction between the two is that an MDM profile is more server driven. Hey. Install this configuration profile now. If something does change, the MDM server generally has to send another command to replace or update the profile or potentially even remove it. DDM declaration, Addigy tells the Mac, hey. This is the state I want you to maintain. The Mac evaluates the declaration and applies it when it’s appropriate, maintains that state, and reports status back to MDM. And this is just sort of a summary because there are gonna be some profiles that you decide to deploy in device settings and go, well, which one am I gonna use? Recommended, legacy? Which one is which? What what happens? Well, what’s a profile for us to take a look at here? What are some profiles we can reconsider? The first one will be a passcode profile. You see, if I go back into my Addigy instance, I have some of my profiles here have the word new next to it, meaning that we have a declaration available for that setting. Passcode being one of them. Passcode legacy and passcode recommended. Now if you’re still pushing a legacy profile, that’s okay. It’s not like it’s gonna, you know, Thanos snap out of the machine and it just gets deleted. It’ll still be there. In fact, with password profiles, what should we consider? So I’m gonna call this here passcode legacy DDM webinar profile. And I’ll just select a few settings here. Minimum password length, and then I’ll create a profile. Notice under legacy, there’s still an installation priority involved because the installation priority is tied to the the profile being deployed to the machine and not a setting that we’re configuring. So if I click create profile, I’ll create that profile, and I’ll deploy it into my my policy. Now I can wait thirty minutes for my policy here to run, or if I’m feeling impatient, I’ll click deploy now, which should update my policy settings, right, or rather update the instructions I’m sending to the machine. If I go into again, I could look at the deployment status or I can go into devices, go live, and confirm via device settings that my passcode is here. You could confirm with pseudo profiles list, but it’s gonna be a bit of a generic sort of output. When we look at pseudo profiles list, I don’t think it highlights passcode nor does it highlight, that it’s DDM or declarative. Right? So what happens if I currently have a legacy profile and I want to use the recommended version? Well, best practice would essentially be, first, obviously, is always test. Right? We wanna isolate a machine, preferably in, an isolated test policy. Apply throw a VM in there just so we can observe the behavior. But in this machine here, we have a legacy password profile. Let me go into my policy again. So policies, alpha networks, device settings, new, passcode, recommended. Few things you’ll notice. First off, the banner. This is gonna be more for, current OS, which is twenty six, and any operating system moving forward, twenty seven, twenty eight, whatever the next ones coming up in the following couple years. You’ll also notice no installation priority, and that’s because we’re not necessarily deploying a like, dot mobile config. We’re deploying a declaration to the machine. K? DDM doesn’t use a priority order because you’re not telling the Mac, hey. Apply this first and then that. You’re telling the Mac you’re telling the machine or whether it could be the macOS or iOS machine, this is my desired end state, and the machine works towards that end state. Okay? However, for passcodes, I’m gonna call this here passcode recommended, you know, webinar profile. I’ll select a couple options here. Keep in mind, with passcodes, I’ll create a declaration. I’ll go ahead and add the declaration. I have two password profiles applied to the machine. Did I just break the machine? No. Two password profiles can exist on the machine. But the rule of thumb is, right, the, the DDM, the declaration should take priority. If you’re deploying a declaration versus legacy, declaration typically takes priority. However, when it comes to, conflicts, let’s say the legacy profile is slightly more restrictive than the recommended profile, guess what? The legacy profile is still the one that’s gonna be enforced. K? So just because you deployed a passcode declaration over a passcode legacy profile doesn’t guarantee that it’s gonna take the declaration first. It’s gonna take whichever of those passcode profiles are the most restrictive. And now notice, after deploying the declaration and I run pseudo profiles list, I have this attribute here with, it looks kind of different from what the other options that we see here. Right? We see some other options here, but none of them look similar to this profile identifier that I just deployed for a passcode migration or, excuse me, for a passcode declaration. So, again, best practice, you could deploy the the if if you plan on using it as a declaration as, again, that’s what we’ll be moving forward with new operating systems, then you can have both on the machine at the same time. Just go into the policy. Once you’ve confirmed that the the declarative passcode has has deployed, you can confirm on the machine as well. Once that’s been confirmed, you just go into your device settings and remove the legacy profile. Now there is a poll in the chat there. Feel free to answer that question. Again, this is not necessarily urgent. If you’re still deploying the legacy, passcode profile, again, your machine isn’t gonna blow up or anything like that. You’ll be fine. It’s just we’re gonna start being cognizant as some profiles are now gonna be recommended to move into declarations. So if you’re still in legacy, that’s okay. But, again, as the name implies, we recommend moving to the more recommended settings. Okay? And those identifiers that we saw in pseudo profiles list, that’s what makes those DDM declarations unique. K? It’s those particular identifiers. When were these passcode added? It’s been it’s been a while. I don’t have a specific time frame. I could check here in the back real quick to see with in the background here with real quick to see when we actually released the declaration. This has been around for a few months now. Not a I don’t think it’s been a year, but about a few months now that we’ve had recommend probably even a year, I don’t know, that we’ve had recommended. It’s been a minute. I I I’ll check I could check here on the back end if maybe Dan or he wants to let me know the specific date. I don’t remember the specific dates that this released, but it’s here. Okay? It’s here. And, again, I highlight this because with passcodes, it’s okay to have both profiles on that machine. VPN, however, not the same thing. Right? So if you look back on your policies, device settings, new, like I mentioned, you’ll see a lot of profiles here with, like, a new tab next to it. Passcode being one of them. VPN is another one as well. VPN settings legacy, and then you have some other options as well. But keep in mind, the main difference here, at least when it comes to VPN profiles. Right? The idea of stricter wins applies for passcode. VPN doesn’t really work the same way. You use one or the other. You’re not using both. Okay? You’re not using both when it comes to, the the VPN declaration. K? So when you’re migrating to a DDM, like, VPN declaration, why would you use it for? Always on VPN, and you have some additional options here as well. You’re only mainly, you use the legacy profiles as the name implies legacy for older OSs. Right? So older operating systems, perhaps, you know, fourteen, maybe fifteen, if they’re still using legacy VPN. Hell, even if the macOS twenty six is still receiving legacy, it’s still okay. But moving forward, start to be aware that you’re gonna need to use the recommended version. And VPN, unlike passcodes, you can’t have both. You could have both on the machine, but it will cause some kind of conflict. Right? Whereas with passcodes, it’s strictly gonna apply whichever is most strict. VPNs, there’s no need to deploy two separate profiles. You you deploy a profile, then you remove the other one that or excuse me. You remove the one you’re currently using. Once you’re ready, then you go ahead and apply the declaration. Okay? One second here. Okay. Alright. Sorry. Just looking at see the q and a here. Alright. Yep. So the thing about VPN profiles, again, just keep in mind, when you push different VPNs, that’s fine. Right? It’s when you have the same profile deployed in that same policy level where there may cause some issues. Apple doesn’t provide a clear conflict of what happens when you have both profiles on the machine. Okay? But there typically, there may be some kind of potential connectivity issues involved when it comes to at least VPN. Okay? Those are your two main profiles out of all of these that have a, recommended versus legacy. Some of these are just brand new entirely, and we’ll take a look at those in a moment. Before we do, Appleseed versus stable. So maybe there’s a profile you’re interested in. Perhaps you’re using platform SSO, the extensible SSO profile. You’ll notice that extensible SSO now has option and stable. Appleseed is primarily for beta testing. Okay? Appleseed is for beta testing. It’s not really for your production machines. Right? You need, Apple seed for IT enrollment. There’s, like, an agreement that you have to sign, and I believe you also do need Apple Business in order to use this. So not gonna be available for everyone and, again, not used for, like, your day to day management. This is just used for you testing on, you know, what’s to come, basically. Right? Appleseed is basically allowing you to test what’s potentially next. And what you can do, as we always recommend, create a separate, test policy. If I go into policies new and just have an isolated policy for testing. Testing. And in here is where you can, potentially have some Appleseed device settings deployed so that you ensure that you’re only touching a controlled set of machines versus your entire, you know, fleet of machines. K? Back to device settings. Again, there are some profiles that are entirely new. Safari settings for configuring things like Safari extensions. Notice at the top, the tab. Right? This is what’s gonna be needed moving forward. Experimental options, Appleseed, beta testing. Another profile that folks have asked questions about that sounds kinda similar is passkey attestation. Right? Passkey attestation is one of the newer profile options. And, basically, a passkey verifies the user. Passkey attestation verifies the device that it came from. It basically proves that a passkey was created on a trusted Apple device. You, the admin, specify in the profile what, parties are allowed to receive attestation. In other words, which URLs when the when the user accesses it, will both the user and their machine be verified and authenticated? That is passkey attestation. Sounds kind of similar to passcode, but it is different because a passcode is gonna control what the password looks like. Passkey attestation is proving where it came from, right, or rather what device it came from. So although it sounds kinda similar, the word passes in each, they do operate pretty differently. So just something to keep in mind with one of the newer profiles there. Yes. And as Iggy mentioned, Apple c test early and test often. With macOS GoldenGate on the horizon, we should be looking at some test groups with those Apple c keys. Exactly. So one way that you could test, again, a flex policy. Inside of your testing flex policy, add a filter for the macOS version that the only versions that you wanna test on. Maybe you already have some machines on GoldenGate. So or VMs rather on GoldenGate, right, for just, you know, testing purposes. You can go in here, set the macOS version to equals twenty seven point zero. And then in here, I don’t think we have any oops. I don’t think we have anything regarding Appleseed. Right? But in here, you could point specifically to your machines, and then from there, apply your testing. K? One thing I forgot to share, if I go into my devices page, I used Addigy Device AI to create a very simple script. This is not a scripting webinar. This is just to show you what you can do with scripts. But perhaps for folks that are potentially migrating from passwords to from legacy password profiles to recommended password profiles. There’s, again, just something you can you can potentially come up with, a passcode enforcement source, which it’ll essentially review that pseudo profiles list, and it’ll it’ll tell us if the machine is enforcing a declaration or a legacy profile. And, again, this is I can’t copy and paste this into the chat. I think it’s too big of a script. I used our AI settings here to do it. It’s nothing fancy schmancy. I’m sure there are better, more efficient things out there. This is just to show you what you can do knowing this information. Right? So if I hit passcode enforcement source, I hit send, run script script, history, and I can review it here. My enforcement source for my passcode is gonna be my DDM declaration. If it was my if it was my legacy profile, that is what the output would have been, legacy profile. So just another way of identifying which machines might need to migrate to these my to these, recommended profiles. Create a custom fact using a script that tells you, you know, is is that DDM profile on the machine? Is the legacy profile on the machine? Which profile’s on the machine? See, I’m actually getting two outputs here, so it’s not the best script to use. Again, the idea wasn’t to script. The idea is just to show you what you can do with the information that you know here. So you can, again, you can use a script to see if it’s a legacy profile versus a declaration, and then from there, determine if you wanna move into the declaration or not. Again, another new profile that we have appeared. Right? So policies, alpha networks, device settings, new. We have two types of profiles for intelligence. Right? Apple intelligence. We have external intelligence. We have intelligence settings. External intelligence is, again, a declaration. I’ll just type this external intelligence webinar declaration. And, again, why are there two? Just like the MDM profiles, one makes the first checkbox makes it managed. Second checkbox is if you want it disabled or enabled. In this case, I want it disabled. So I’ll create the declaration. And, again, external intelligence determines whether Apple intelligence can reach outside. Can Apple intelligence connect outside of Apple? Hence, the name external intelligence. Let me go ahead and deploy that, and we’ll see what it looks like here in a moment. Let me deploy external intelligence. New. Think of intelligence settings as, like, internal intelligence. Which Apple intelligence features can users actually use? Things like writing tools, Genmoji, image playground, visual intelligence. So this is, like, internally, what can the user access? So I’ll type intelligence settings, webinar declaration. And I’ll go ahead and select I’ll let the I’ll disable most of these items here. K? And, again, remember, no installation priority because we are telling the machine the state we want it in, not deploying a file, so to speak. Right? So if I deploy now, I have external intelligence and intelligence, which, again, are both intelligence related. One is tied to, can Apple intelligence connect outside of Apple? The other one is tied to internally. Right? What the users can actually make adjustments to. Not having done reading one of the chats here. Not having ever done any of this. All good. When would not when would not make a declaration manageable? So, again, the declaration is it’s you’re still managing the setting, and it’s not something that you necessarily have to get taken care of immediately. It’s just something to start preparing for as newer operating systems release, and you’re gonna start probably noticing new more of this new tab here on some of these profiles. Right? And, again, it starts with the passcode profile. We have a legacy and recommended. You may start to see this across other profiles as well. So the key to take away from that is start preparing to move into more recommended forms of management of these settings versus deploying an MDM profile. That’s the main takeaway there. K? So summarizing what we covered today. K? Device settings currently have two options available. MDM profiles, like security and privacy, software updates. Right? System extensions, Wi Fi. Those currently, if you’re if you’re using them, you’re fine. They’re not gonna get removed from your machine. They’re there, and they are enforcing a managed setting. K? The other type of profile now you have is called a declaration. New settings, like math notes, Safari. PPPC currently stays the same. Nothing has changed as far as with PPPC as of yet, potentially in the future. I’m only highlighting the ones that we currently have a new tab on. And when you click on that new the ones that have a new tab, you’re either gonna see recommended versus legacy or Appleseed and stable. And to be honest, I think that’s on Apple. I’m not sure when maybe my product team can answer this better when these settings are gonna be moved to DDM. I don’t have a dates on when settings are gonna be moved. It’s just be aware of it. Maybe whenever you tend to log in to your environment, you know, go into device settings and just confirm. Oh, look. Looks like Wi Fi has a new profile. Just prepare and start, just, again, just to to just to be aware of that this is what this is what you’ll see, next time you log in. Right? You might see a new security and privacy profile. I don’t have a date for when that’ll happen. This is based on, again, from the very first slide. Apple defines this. We don’t just come up with this from thin air. Apple has to define it first, and then we make a profile available for you. K? Again, in summary, you have new profiles that are available. Lean toward using the recommended version of the profile if possible. If you have legacy still, it’s okay. It’s not urgent. Just something to be aware of. Apple seed, be careful with Apple seed. Really good to have for testing, but that’s exactly what it should be for, testing and not for our actual day to day devices that we’re managing. Okay? These are all still enforcing managed settings on the machine. If I go back into live terminal I’m gonna clear this out, and I’m just gonna do pseudo profiles list one more time. And you’ll notice there’s some profiles that look different from the others. These are our declarations. The identifiers look slightly more different than the other ones. So this is one way of determining if a profile is potentially their declaration or not is through these identifiers here, which, again, look vastly different from the other profiles. K? So, again, why does this matter? The same settings are there. The same workflow is there. Just be aware that there’s a new method of delivering these device settings, and that’s gonna be through DDM. Should we start start to consider it? There is no hard deadline, and it’s okay if you missed a few if you missed the first couple minutes, this will be in the academy later, so no worries. There isn’t, like, a deadline. We’re not just gonna, you know, start removing profiles, you know, from you ***** nilly. Right? As Brent has put here, Apple has been warning some of these profiles being deprecated since the last WWDC if you run a report from the Mac evaluation till the unmanaged device. So Brett recommends running that app. It helps you find out what is being reported on everything you’re managing on systems. Thanks for sharing that, Brett. That’s what this is all about too. I’m just presenting. I’m nobody superior. Feel free to share anything that you like. Okay? But, again, they could exist. Legacy profiles and DDM as we saw with passwords. Just because you have two doesn’t mean that the machine broke or passwords broke. In the case of passwords, you the most restrictive setting wins. Right? So if it’s DDM, then DDM wins. If legacy happens to be more restrictive, it’ll continue to be enforced until you remove it from the machine. So keep in mind when these, migrations start to happen, when you start to notice new profiles, like a new Wi Fi, for example, or new, security and privacy or perhaps a new restrictions releases, the migration would not be automatic. You’ll have to go in there and actually deploy the profile yourself. Not every setting has a DDM equivalent. And, of course, most importantly, test on the OS before you actually deploy. So have a separate isolated test policy. Do whatever you want in there. Deploy all the declarations and all the profiles in there before you then move into, deploying it to your actual day to day prod machines. Key takeaway, move to DDM gradually and intentionally. Again, not urgent. Doesn’t have to be done immediately after this call. Just start to get you know, just start to look in that profile section and start to see, this pro I’m actually currently deploying passwords, and there’s a new version. Let me deploy the new one. Right? And then lastly, there’s one more poll question regarding Addigy Boost. So within Addigy Boost, if you decide to you know, if you enjoyed today’s training and the DDM webinar we did previously, if you sign up for Addigy Boost, basically, just clicking yes is gonna automate someone to contact you, and they’ll offer you the following. Basically, training credits. You get two training credits per year. You get proactive monitoring, health insights, guided remediation, and staying certified. So earlier in the call, I introduced both Dan and Iggy. If you sign up for Boost and you have, like like, let’s say, Boost onboarding or Boost meeting, chances are you’ll have a more, you know, one on one session with either, again, Daniel, Alan, or Ignacio. And if you’ve worked with them before, you know just how fantastic they are. They’re very helpful with whatever questions that you have. So if you are interested, please just select the yes option as that should kick off an automation. If not, no worries. I still hope that you walked away learning a thing or two. I hope that you walked away going, okay. Now I have an idea of what, you know, declarations are versus device settings. What we’ll do now is, I guess, this essentially ends the webinar, but I wanna have some time for q and a. So if you have any questions in the chat, feel free to let me know, and I’ll try my best to help. Otherwise, if you are good, I hope you enjoy the rest of your day. K? Remember, if you missed the first, like, couple minutes, this will be available for us in Addigy Academy so you can review it with your team later if you’re interested. Alright? Thank you so much, everyone. And if you already signed up, all good. It’s all love. Really appreciate everybody’s time. I’ll hang back, see if there’s any questions. Look forward to the next one as we’ll be start we’ll do this more continuously. So if you receive value, if you learned, let me know, and we’ll continue more. We’ll keep doing more. Yeah. If you like more, let’s do more. Thank you all so much. I’ll hang back here and answer any questions. Can I access this video with Academy, a free account? Yes. Yes. You can, Jacob. You should even free accounts should access it. Expect it sometime later today. I have to send it to send it to, like, my I think my marketing team. Gotta make it look nice. You know the drill. Today, we use Intune to automatically hand out computer and user search to Windows machines. Okay. It looks like Iggy answered that question. Yes. We do deploy deploy we do support deploying certificates and the certificate payloads. That is correct. I really appreciate y’all so much. You so much. Again, I’ll hang back. Give it another couple minutes. If you’re good, drop and enjoy the rest of your the rest of your Thursday. Again, expect another one. I really appreciate you guys. Thanks for giving me an opportunity to spend some time here and talk to you during your lunch. Any guidance or resources on creating Apple VMs for testing? Yeah. A matter of fact, if you’re on Apple Silicon right now, Justin Justin, which I love the double name there. My nephew’s name is Justin. I’m gonna start calling him that now, Justin Justin. One of the resources I use is free. It is, VirtualBuddy. If you’re on Apple Silicon, the the free resource I like to typically recommend folks is VirtualBuddy. I’ll paste this in the chat. I highly recommend, you know, if again, if you are on Apple Silicon, use VirtualBuddy. Create a separate test policy. Add your VirtualBuddy in there, excuse me, your VM in there and do whatever you like. Break it, blow it up, and then just remove it, and then create another one. But check feel free to check out VirtualBuddy. It’s entirely free. The caveat is you do need to be on Apple Silicon. See what else we got here. Yeah. Give it a shot, Justin. Give give that I pasted the, link in the chat for anyone interested in VirtualBuddy. It’s the tool we typically recommend in our training and it just in general. Primary reason is because it is free ninety nine, the best price imaginable. Is there an easy way to tell? I think if you go into device settings, the best easiest way to tell is if you deploy a device settings profile or any profile for that matter and and you go to its go live page, device settings, they will be, oh, actually, this is the name I gave it. So there isn’t really an easy way to tell. I think you could use, like, pseudo profiles list. There’s another command that you could also use alongside this that, like, dives a little bit deeper into pseudo profiles. And I think in there, it might give us a an idea of what’s declaration or not. I think it is, if I have it in my documents here, pseudo profiles show type configurations. Let me paste this in the chat. That command that I pasted in the chat should give you a little bit of a deeper look into each of those lines. And I think I don’t believe it shows that it’s specifically a declaration or not. So the one way to tell is just that that that ID here. So if I do pseudo profiles list, one way you could tell is through this. You could maybe use a script to identify this particular profile. And if it you know, if not on the machine, then deploy. I mean, there’s so much you can do. There’s so much you could do. The easiest way, I think again, I I would say just labeling them yourself on the profile and then maybe using some claw magic to see, you know, how to identify one from the other. Alright, folks. I’ll give it another minute or so for more questions. If there’s no other questions, guys, I really, really appreciate your time. But, again, I’ll be hanging back here and seeing if you have anything. Join us for our next one. We’ll be doing more of these. We’re gonna alright. Alright. I don’t see any questions popping up, folks. We’re gonna wrap up here. I really truly appreciate everybody’s time. Thank you so much. And, again, expect this in Academy and reach out to me at Mauricio at Addigy in case you have any questions or training at Addigy in case there are any other additional follow-up questions. I’m more than happy to help you. Thank you guys so much. Appreciate y’all so much. Thank you. And thanks to Eddie and Anna as well for hanging out here.
Profiles vs. Declarations in Addigy
Introduction
Welcome, everyone. My name is Mauricio, and I’m the solutions architect conducting today’s webinar. Today we’re talking about profiles versus declarations. If you’ve been with Addigy for a while, you may have noticed that one of the features changed its name from MDM Profiles to Device Settings. Within those device settings, you may have seen a keyword called “declaration.” We’re here to talk about what a declaration actually means, what profiles mean and do, and where they’re located on your machine. If any questions come up as I’m going along, feel free to drop them in the chat. We’ll also have a Q&A at the end.
Apple Defines the Keys, Addigy Delivers Them
Before we get started, we have to understand what these device settings are and what they actually do. Are these keys that Addigy pulls out of thin air? No. These are Apple-defined keys. Apple decides which keys can be managed. Apple defines the settings, the payloads, the declarations, and which operating system version supports each one. Our job at Addigy is to provide the UI and the deployment workflow around what Apple has already built.
Deploying an MDM Profile
If you log in to your Addigy instance and click on your policies, you’ll find Device Settings with several columns’ worth of profiles you can deploy to your machines. Within these profiles there are certain keys. For example, a Software Update profile has certain keys that you point at the machine and manage — the keyword being “managed.”
The first question that typically comes up: why are there two checkboxes? The first checkbox determines whether it’s a managed setting, meaning you, the admin, manage it. The second checkbox is whether you enable or disable that setting. If you do not want the machine to automatically install app updates, you would disable that. If you do not want it to automatically check for updates, you would disable that — case by case, depending on what you and the customer you’re managing are looking for.
You’ll notice that MDM profiles have an installation priority, because it’s based on when the profile lands on the machine. With declarations it’s a bit different, and we’ll see that in a moment.
When I deploy this profile through my policy, it behaves like anything else in my policy hierarchy — it’s inherited. If I add device settings at the top level of my company, they apply to the child policies underneath, like engineering, sales, or support. I can wait for the profile to land on the machine, or I can expedite it by clicking Deploy Now.
Confirming a Profile Landed on the Machine
Where can I review whether this profile has landed on the machine? First, the deployment status. You’re looking at four color codes: green means good; yellow means pending — you’ve pushed the profile but maybe the machine is offline; red means error — maybe you’re doing something redundant, like deploying FileVault to a machine that’s already FileVaulted; and blue is for compatibility — some profiles are only compatible with iOS, most are for macOS, and some cover both.
The key takeaway: device settings enforce a managed setting on the machine. You manage it; the end user can’t do much about it. That applies whether you’re deploying an MDM profile or a declaration.
Another place to review whether the profile made it to the machine is Device Settings > Installed Device Settings. You can also review it in a live terminal using the command sudo profiles list, or look in Library/Preferences. The MDM profile I deployed adjusts the softwareupdate plist there, and only I, the admin, can change it. My end user can’t make changes locally, because the profile is guaranteeing the state of whatever I’m enforcing.
Where Profiles Actually Live
Profiles don’t all live in Library/Preferences. Library/Preferences might show you the results of a setting, but the actual management state lives inside macOS’s own profile system: /private/var/db/ConfigurationProfiles. That is not a directory intended for you to browse with a native utility like defaults read to adjust settings and keys — it’s for the macOS system itself. Don’t assume a setting is missing just because you didn’t find it in Library/Preferences. All settings should be reflected within that ConfigurationProfiles directory, and you can verify with sudo profiles list.
The Anatomy of an MDM Profile
Inside an MDM profile you have keys and values assigned to those keys — again, Apple-defined keys, not something Addigy creates out of thin air. What Addigy does is create and send the profile. macOS registers the profile as an installed configuration, and it’s the profile itself that enforces the setting. When you remove the profile, you remove the instructions. With MDM, Addigy tells the Mac: “install this profile.”
Does DDM for Software Updates Require Device Settings Profiles?
A question from the chat: if we’re using DDM for software updates, do we also need device settings profiles, or are those just an extra level of control? DDM will work without them. In our previous webinar we covered DDM as an update mechanism — it’s asynchronous. You set the instructions, and the machine maintains that state. You do not need any device settings profile associated with it.
The analogy I used previously: it’s like an Amazon delivery. With MDM, you have to be home at the time of delivery — meaning the machine has to be reachable when the command arrives. With DDM, it sends the instructions to the machine, and the machine is expected to maintain that state on its own. So the DDM update mechanism is separate from device settings. And whether you deploy a declaration or an MDM profile, both enforce a managed setting.
One attendee also noted: currently, if you’re using version control in DDM and want to control some of the update settings, you’ll still need MDM profiles (device settings) configured. If you use “keep to the latest,” you can replace those settings.
What Is a Declaration?
The main difference is that a declaration is exchanged as JSON. Instead of “install this file,” it’s “define the state that macOS should maintain.” With legacy profiles, the model was “install this profile.” With a declaration, it’s “maintain this state.” The idea is still the same: it enforces a setting.
An MDM profile is more server-driven: “install this configuration profile now.” If something changes, the MDM server generally has to send another command to replace, update, or remove the profile. With a DDM declaration, Addigy tells the Mac: “this is the state I want you to maintain.” The Mac evaluates the declaration, applies it when appropriate, maintains that state, and reports status back to MDM.
Passcode: Legacy vs. Recommended
In your Addigy instance, some profiles now show a “New” tag, meaning a declaration is available for that setting. Passcode is one of them: there’s Passcode (Legacy) and Passcode (Recommended). If you’re still pushing a legacy profile, that’s okay — it’s not going to Thanos-snap off the machine. It will still be there and still enforce.
Under Legacy, there’s still an installation priority, because the priority is tied to the profile being deployed to the machine, not to the setting being configured. Under Recommended, you’ll notice two things. First, a banner: the recommended version is for the current OS — macOS 26 — and any operating system moving forward. Second, there’s no installation priority, because we’re not deploying a .mobileconfig file. DDM doesn’t use a priority order. You’re not telling the Mac “apply this first, then that.” You’re telling the machine — macOS or iOS — “this is my desired end state,” and the machine works toward that state.
Now, what if both a legacy passcode profile and a passcode declaration are applied to the same machine? Did I just break the machine? No. Two passcode profiles can exist on the machine. The rule of thumb is that the declaration should take priority. However, when it comes to conflicts, if the legacy profile is more restrictive than the recommended one, the legacy profile is still the one that gets enforced. Deploying a passcode declaration over a legacy passcode profile doesn’t guarantee the declaration wins — the machine enforces whichever passcode profile is most restrictive.
After deploying the declaration, if I run sudo profiles list, the declaration shows an identifier that looks quite different from the other profiles in the output. Those identifiers are what make DDM declarations unique in the list.
Migration Best Practice
Best practice: always test first. Isolate a machine, preferably in an isolated test policy — throw a VM in there so you can observe the behavior. You can have both the legacy and recommended passcode profiles on the machine at the same time. Once you’ve confirmed the declarative passcode has deployed — in the policy and on the machine — go into your device settings and remove the legacy profile.
This is not urgent. If you’re still deploying the legacy passcode profile, your machine isn’t going to blow up. It’s just something to be cognizant of: some profiles are now recommended to move to declarations, and as the name implies, we recommend moving to the recommended settings. The passcode declaration has been available for a while now — several months at least.
VPN: One or the Other, Not Both
VPN is another profile with a “New” tag: VPN Settings (Legacy) plus the newer options. But the main difference from passcode: the “stricter wins” idea applies to passcode. VPN doesn’t work the same way — you use one or the other, not both.
When would you migrate to a DDM VPN declaration? Always-on VPN, plus some additional options. You’d mainly keep the legacy profile — as the name implies — for older OSes: macOS 14, maybe 15, machines still using legacy VPN. Even if a macOS 26 machine is still receiving legacy, it’s still okay. But moving forward, be aware you’re going to need the recommended version. You could technically have both on the machine, but it can cause conflicts. Apple doesn’t clearly define what happens when both VPN profiles are on the machine, but there may be potential connectivity issues. Deploy one, and once you’re ready to move, remove the one you’re currently using and apply the declaration. Pushing different VPNs is fine — it’s having the same profile deployed at the same policy level that can cause issues.
Passcode and VPN are the two main profiles today with a recommended-versus-legacy choice. Some others are brand new entirely.
AppleSeed vs. Stable
Some profiles — for example, Extensible SSO for platform SSO — now show AppleSeed and Stable options. AppleSeed is primarily for beta testing. It’s not for your production machines. You need AppleSeed for IT enrollment, there’s an agreement you have to sign, and I believe you also need Apple Business to use it. So it won’t be available for everyone, and it’s not for day-to-day management — it’s for testing what’s potentially next.
As always, we recommend creating a separate, isolated test policy. That’s where you can deploy AppleSeed device settings, so you’re only touching a controlled set of machines instead of your entire fleet. As one of my colleagues put it: test early and test often. With macOS GoldenGate on the horizon, you should be looking at test groups for those AppleSeed keys. One way to do that: inside a testing flex policy, add a filter for the macOS version you want to test on — for example, macOS version equals 27.0 — point it at your test machines or VMs, and apply your testing there.
Brand-New Profiles: Safari Settings and Passkey Attestation
Some profiles are entirely new. Safari Settings lets you configure things like Safari extensions — and notice the tabs at the top for what’s needed moving forward, including experimental AppleSeed options.
Another new profile folks ask about is Passkey Attestation. A passkey verifies the user; passkey attestation verifies the device it came from. It proves that a passkey was created on a trusted Apple device. You, the admin, specify in the profile which relying parties are allowed to receive attestation — in other words, for which URLs both the user and their machine will be verified and authenticated. It sounds similar to passcode, but they’re different: a passcode profile controls what the password looks like; passkey attestation proves what device the passkey came from.
Using a Script to Identify the Enforcement Source
One thing I want to share: I used Addigy Device AI to create a simple script. This isn’t a scripting webinar — it’s just to show what you can do. For folks migrating from legacy passcode profiles to recommended ones, you can build a “passcode enforcement source” script that reviews the sudo profiles list output and tells you whether the machine is enforcing a declaration or a legacy profile. Run it, check script history, and the output shows the enforcement source — DDM declaration or legacy profile. You could even create a custom fact from a script like this to identify which machines still need to migrate to the recommended profiles.
Apple Intelligence Profiles: External Intelligence and Intelligence Settings
We also have two new declaration types for Apple Intelligence. External Intelligence determines whether Apple Intelligence can reach outside — can Apple Intelligence connect outside of Apple? Hence the name. Just like MDM profiles, the first checkbox makes it managed, and the second checkbox enables or disables it.
Think of Intelligence Settings as internal intelligence: which Apple Intelligence features can users actually use? Things like Writing Tools, Genmoji, Image Playground, and Visual Intelligence. And again — no installation priority, because we’re telling the machine the state we want it in, not deploying a file.
Another chat question: when would you not make a declaration manageable? With a declaration, you’re still managing the setting. It’s not something you have to take care of immediately — it’s something to start preparing for as newer operating systems release. You’ll start noticing the “New” tag on more of these profiles. It started with passcode, and you may see it across other profiles as well. The takeaway: start preparing to move to the recommended forms of managing these settings versus deploying an MDM profile.
Summary: What We Covered
Device settings currently have two options. MDM profiles — like Security & Privacy, Software Updates, System Extensions, Wi-Fi — if you’re using them, you’re fine. They’re not going to be removed from your machines, and they enforce a managed setting. The other type is a declaration, covering newer settings like Math Notes and Safari. PPPC currently stays the same — nothing has changed there yet, though potentially in the future.
Profiles with a “New” tag show either Recommended versus Legacy, or AppleSeed and Stable. As for when settings move to DDM — that’s on Apple. Apple has to define it first, and then we make a profile available to you. I don’t have dates. Just be aware: whenever you log in to your environment, check device settings. You might see a new Wi-Fi profile or a new Security & Privacy profile. Prepare for it.
In summary: new profiles are available. Lean toward using the recommended version of a profile if possible. If you still have legacy, it’s okay — it’s not urgent. Be careful with AppleSeed: great for testing, but that’s exactly what it should be used for — testing, not the devices you manage day to day. All of these still enforce managed settings on the machine.
One more time in live terminal: run sudo profiles list and you’ll notice some profiles look different from the others. Those are your declarations — the identifiers look vastly different from the other profiles. That’s one way of determining whether a profile is a declaration.
Why does this matter? The same settings are there. The same workflow is there. Just be aware there’s a new method of delivering these device settings, and that’s through DDM. Should you start to consider it? Yes — but there is no hard deadline. We’re not going to start removing profiles willy-nilly. One attendee pointed out that Apple has been warning about some of these profiles being deprecated since the last WWDC, and recommended running a report from the Mac Evaluation Utility to find out what’s being reported on everything you’re managing. Thanks for sharing that.
Key points as these migrations start to happen: when you notice new profiles — a new Wi-Fi, a new Security & Privacy, a new Restrictions — the migration will not be automatic. You’ll have to go in and deploy the profile yourself. Not every setting has a DDM equivalent. And most importantly, test on the OS before you deploy. Keep a separate, isolated test policy, deploy all the declarations and profiles there first, and only then move to your day-to-day production machines. The key takeaway: move to DDM gradually and intentionally.
Q&A
Can I access this video with a free Addigy Academy account? Yes — even free accounts can access it. Expect it sometime later today; I have to send it to my marketing team to make it look nice first.
Does Addigy support deploying certificates? Yes, we support deploying certificates and the certificate payloads.
Any guidance or resources for creating Apple VMs for testing? If you’re on Apple Silicon, the free resource I typically recommend is VirtualBuddy. Create a separate test policy, add your VM in there, and do whatever you like — break it, blow it up, remove it, and create another one. It’s entirely free. The caveat is you do need to be on Apple Silicon.
Is there an easy way to tell whether a profile is a declaration? If you deploy a device settings profile and go to its GoLive page under Device Settings, it shows the name you gave it, so there isn’t a truly easy way. You could use sudo profiles list, and there’s another command that dives deeper into each profile: sudo profiles show -type configuration. That gives a deeper look into each line, though I don’t believe it explicitly labels declarations. The one reliable tell is the identifier in sudo profiles list. You could use a script to identify those particular profiles, or simply label your profiles clearly yourself when you create them.
This recording will be available in Addigy Academy so you can review it with your team. If you have follow-up questions, reach out to [email protected] or [email protected]. We’ll be doing more of these webinars, so join us for the next one. Thank you all so much for your time.
Frequently Asked Questions
What is the difference between an MDM profile and a declaration in Addigy?
An MDM profile is server-driven: the MDM server tells the Mac to install a configuration profile, and any change requires the server to send another command. A declaration uses Declarative Device Management (DDM) and is exchanged as JSON: Addigy tells the Mac the state it should maintain, and the Mac applies it, maintains that state on its own, and reports status back. Both enforce a managed setting on the device.
Do I need to migrate from legacy MDM profiles to declarations right away?
No. There is no hard deadline, and legacy profiles will not be removed from your machines — they continue to enforce their settings. Addigy recommends moving to the recommended (declaration) versions gradually and intentionally, testing in an isolated policy first, because new operating systems will increasingly rely on DDM.
Can a legacy passcode profile and a passcode declaration exist on the same Mac?
Yes. Two passcode profiles can coexist without breaking the machine. The declaration typically takes priority, but if the legacy profile is more restrictive, the most restrictive setting is the one enforced. Best practice is to confirm the declaration deployed, then remove the legacy profile.
Should I deploy both the legacy and recommended VPN profiles?
No. Unlike passcode, VPN does not follow a “most restrictive wins” rule — you use one or the other. Having both on a machine can cause conflicts, including potential connectivity issues. Keep legacy VPN for older OS versions, and when you’re ready to move, remove the profile you’re using before applying the declaration.
Why don’t declarations have an installation priority in Addigy?
Installation priority applies to MDM profiles because it’s tied to when a .mobileconfig file lands on the machine. Declarations don’t deploy a file in that sense — they tell the machine its desired end state, and the machine works toward that state — so DDM doesn’t use a priority order.
How can I tell if a Mac is enforcing a declaration or a legacy profile?
Run sudo profiles list in a terminal: declarations show identifiers that look distinctly different from standard MDM profiles. You can also run sudo profiles show -type configuration for a deeper look at each profile, check Installed Device Settings in Addigy, or use a script (or custom fact) that parses the profiles output to report the enforcement source.
What is AppleSeed in Addigy device settings?
AppleSeed options are for beta testing upcoming Apple functionality, not for production machines. Using them requires AppleSeed for IT enrollment, a signed agreement, and Apple Business. Deploy AppleSeed settings only in an isolated test policy so you’re touching a controlled set of machines.
What is passkey attestation?
A passkey verifies the user; passkey attestation verifies the device the passkey came from, proving it was created on a trusted Apple device. In the profile, the admin specifies which relying parties (URLs) are allowed to receive attestation, so both the user and their machine are verified and authenticated.