Custom Attributes in Entra ID -- Lifecycle

By DavidLundell September 27, 2025

This article is the fifth in a series about Custom Attributes in Entra ID and will discuss the Lifecycle of each of these approaches.

  1. Names and aliases
  2. Naming Conventions
  3. Resource Types
  4. Data Types
  5. Lifecycle
  6. Limitations
  7. Use Cases
  8. Decision Tree
Lifecycle Question Extension attributes Directory Extensions Schema Extensions Open Extensions Custom Security Attributes
Has Lifecycle States? No(always there) No(there and not there) Yes (InDevelopment, Available, Deprecated) No(never there) Yes(Active,Deactivated)
Can other apps in the same tenant discover the extensions definitions? Yes (same in every tenant) Yes Yes No defintions to discover Only with the Attribute Definition roles
Can other apps in same Tenant read the data (If app has read permissions to the resource)? Yes Yes Yes Yes Only with Attribute Assignment Roles
Can other apps in same Tenant write the data (If app has write permissions to the resource)? Yes Yes Yes Yes Only with Attribute Assignment Roles
Can defintions be shared with or discovered by other tenants? They already are If app is Multi-Tenant and gets installed Once the Schema Extension is in Available State No No
Can the extension be deleted? No Yes Only when in the InDevelopment State N/A (there are no definitions) No
Can be deactivated or deprecated? No No Yes (deprecated) No Yes (deactivated)
Deletion of owning App
What happens to the definitions? N/A Deletes the Extensions Definition Not deleted  but no longer updateable Deleting the Creator app has no impact N/A
What happens to the definitions in other tenants? N/A Nothing – other tenants could not update the definitions anyhow Nothing – other tenants could not update the definitions anyhow N/A N/A
What happens to the data? N/A Makes it undiscoverable All properties and values are still discoverable Deleting the Creator app has no impact N/A
What happens to the data in other tenants? N/A None None N/A N/A
Can the extension be deleted? N/A Yes Only when in the InDevelopment State N/A (there are no definitions) No
What happens to the definitions? N/A Deletes the Extensions Definition Definition deleted and undiscoverable[[1]](#_msocom_1) N/A N/A
What happens to the definitions in other tenants? N/A Nothing – other tenants could not update the definitions anyhow N/A (can’t delete when shared) N/A N/A
What happens to the data? N/A Makes it undiscoverable Makes it undiscoverable N/A N/A
What happens to the data in other tenants? N/A Nothing N/A (can’t delete when shared) N/A N/A
Can the extension be deactivated or deprecated? No No Yes (deprecated) extension can no longer be read or modified No Yes (deactivated) Can no longer be applied
Effect on other tenants? N/A N/A extension can no longer be read or modified N/A N/A
What happens to the data when the Extension is deprecated or deactivated? N/A N/A Can read, update and delete existing property values N/A *Data is preserved * Can no longer be applied to resources
Effect on other tenants? N/A N/A Can read, update and delete existing property values N/A N/A
Data in Undiscoverable/Deactivated count against limits N/A Yes Probably N/A Yes

Comparing Custom Security Attributes with on-prem AD

In on-prem AD we can create schema extensions but never delete them. We can mark them as deprecated or inactive. Custom Security Attributes come the closest in this regard, as you can never delete but you can deactivate them. Critical to know before investing in a particular kind of extension is to know what happens to the data if you delete or deactivate/deprecate the extension. In this case you can find, modify, and delete existing data populated in a deactivated Custom Security Attribute, but you can’t apply it to anymore objects (meaning you can’t add new values).

How does the application lifecycle affect it?

Both Directory Extensions and Schema Extensions are owned by Applications, so in their case you also need to take the Application lifecycle into account.

Deletion of the app that owns Schema Extension

All properties and values are still discoverable however the definitions can no longer be updated.

Deletion of the app that owns Directory Extension

Deletes the defintions, makes the data undiscoverable but in the multi-tenant app situation the data will remain discoverable.

Deletion or Deprecation of a Schema Extension

This topic is more complex. The first best practice is to not use production data in a Schema Extension that is still “InDevelopment” state because then the definition can’t be deleted. If you do use the Schema Extension while it is still “InDevelopment” if that definition gets deleted then the data becomes undiscoverable. This is tricky because the documentation gives different answers.

Deleting a schema extension definition does not affect accessing custom data that has been added to resource instances based on that definition.

Which disagrees with:

If you delete a schema extension definition without setting the schema extension to null, you make the property and its associated user data undiscoverable.

While this next document explains more it is still not perfectly clear but it does explain how to recover:

If resource instances have the extension property applied, deleting the schema extension definition doesn’t delete the extension data in the resource instances. Instead, the extension data is available but no longer accessible. You can recreate the schema extension definition with the same configuration - if you used the verified domain for the schema extension id - to be able to delete the extension data

This is one of the key reasons why you should use the verified vanity domain when creating Schema Extensions so that you can recover from deleting a Schema Extension that is InDevelopment if you did so without clearing the data.

Since deleting the definition does not delete the data it counts against the limit on the resource, probably.

Deletion of a Directory Extension

Makes the data undiscoverable – you can’t find it let alone read it let alone write to it or delete it. You can recover from this by restoring the Enterprise Application, although if this is the source tenant for the Enterprise Application then you must restore the Registered Application first. Then you can resume using the data or you can delete the data. This is critical because of the 100 value limit and it still counts against your tenant even if the data is undiscoverable.

<- Previous – Data Types
Next – Limitations ->