Compartir a través de


Adición de datos personalizados a los recursos mediante extensiones

Microsoft Graph proporciona un único punto de conexión de API para acceder a datos e información enriquecidos centrados en las personas a través de recursos como el usuario y el mensaje. También puede ampliar Microsoft Graph agregando propiedades personalizadas a instancias de recursos sin necesidad de un almacén de datos externo.

En este artículo se describe cómo Microsoft Graph admite la ampliación de sus recursos, las opciones disponibles para agregar propiedades personalizadas y cuándo usarlas.

Importante

No use extensiones para almacenar información confidencial de identificación personal, como credenciales de cuenta, números de identificación gubernamental, datos de titulares de tarjetas, datos de cuentas financieras, información sanitaria o información confidencial de antecedentes.

Las extensiones mencionadas en este artículo no son similares a las siguientes características:

¿Por qué agregar datos personalizados a Microsoft Graph?

  • Como desarrollador de ISV, puede que no desee que su aplicación ocupe mucho espacio y almacenar datos específicos del usuario específico de la aplicación en Microsoft Graph extendiendo el recurso usuario.
  • Como alternativa, es posible que quiera conservar el almacén de perfiles de usuario existente de la aplicación y agregar un identificador específico de la aplicación al recurso de usuario .
  • Como desarrollador empresarial, las aplicaciones internas que compila pueden depender de los datos específicos de RR. HH de su organización. La integración dentro de varias aplicaciones se puede simplificar almacenando estos datos personalizados en Microsoft Graph.

Opciones de datos personalizadas en Microsoft Graph

Microsoft Graph ofrece cuatro tipos de extensiones para agregar datos personalizados.

  • Atributos de extensión
  • Extensiones de directorio (Microsoft Entra ID)
  • Extensiones de esquema
  • Extensiones abiertas

Atributos de extensión

Microsoft Entra ID ofrece un conjunto de 15 atributos de extensión con nombres predefinidos en los recursos de usuario y dispositivo. Estas propiedades eran inicialmente atributos personalizados proporcionados en Active Directory (AD) local y Microsoft Exchange. Sin embargo, ahora puede usarlos para más que sincronizar datos locales de AD y Microsoft Exchange para Microsoft Entra ID a través de Microsoft Graph.

Para obtener más información sobre estos atributos en Microsoft Exchange, vea Atributos personalizados en Exchange Server.

Experiencia del desarrollador

Puede usar los 15 atributos de extensión para almacenar valores de cadena en instancias de recursos de usuario o dispositivo , a través de las propiedades onPremisesExtensionAttributes y extensionAttributes respectivamente. Puede asignar los valores al crear una nueva instancia de recurso o al actualizar una instancia de recurso existente. También puede filtrar por los valores.

Agregar o actualizar datos en atributos de extensión

En el ejemplo siguiente se muestra cómo almacenar datos en extensionAttribute1 y eliminar los datos existentes de extensionAttribute13 mediante una operación de actualización con un método PATCH.

PATCH https://graph.microsoft.com/v1.0/users/071cc716-8147-4397-a5ba-b2105951cc0b

{
    "onPremisesExtensionAttributes": {
        "extensionAttribute1": "skypeId.adeleVance",
        "extensionAttribute13": null
    }
}

La solicitud devuelve un objeto de respuesta 204 No Content.

Leer los atributos de extensión

Solicitud
GET https://graph.microsoft.com/v1.0/users?$select=id,displayName,onPremisesExtensionAttributes
Respuesta
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,onPremisesExtensionAttributes)",
    "value": [
        {
            "id": "071cc716-8147-4397-a5ba-b2105951cc0b",
            "displayName": "Adele Vance",
            "onPremisesExtensionAttributes": {
                "extensionAttribute1": "Contractor",
                "extensionAttribute2": "50",
                "extensionAttribute3": null,
                "extensionAttribute4": "1478354",
                "extensionAttribute5": "10239390",
                "extensionAttribute6": null,
                "extensionAttribute7": null,
                "extensionAttribute8": null,
                "extensionAttribute9": null,
                "extensionAttribute10": "11",
                "extensionAttribute11": null,
                "extensionAttribute12": "/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF47SPDLT)/cn=Recipients/cn=5ee781fc7egc7aa0b9394bddb44e7f04-Adele Vance",
                "extensionAttribute13": null,
                "extensionAttribute14": null,
                "extensionAttribute15": null
            }
        }
    ]
}

Consideraciones sobre el uso de propiedades de atributo de extensión

Puede actualizar el objeto onPremisesExtensionAttributes solo para los objetos que no se sincronizan desde AD local.

Microsoft Graph ya define los 15 atributos de extensión y no puede cambiar sus nombres de propiedad. Por lo tanto, no puede usar nombres personalizados como SkypeId para los atributos de extensión. Su organización debe realizar un seguimiento de las propiedades del atributo de extensión en uso para evitar sobrescribir involuntariamente sus datos.

Extensiones de directorio (Microsoft Entra ID)

Las extensiones de directorio proporcionan a los desarrolladores una experiencia de extensión fuertemente tipada, reconocible y filtrable para objetos de directorio.

Registre extensiones de directorio en una aplicación mediante la operación Create extensionProperty . Debe dirigirse explícitamente a objetos de directorio específicos y admitidos. Una vez que un usuario o un administrador da su consentimiento a la aplicación en el inquilino, las propiedades de la extensión se vuelven accesibles inmediatamente en el inquilino. Todas las aplicaciones autorizadas del inquilino pueden leer y escribir datos en las propiedades de extensión definidas en una instancia del objeto de directorio de destino.

Para obtener la lista de tipos de recursos que puede especificar como objetos de destino para una extensión de directorio, consulte Comparación de tipos de extensión.

Experiencia del desarrollador

Las definiciones de extensión de directorio se administran mediante el recurso extensionProperty y sus métodos asociados. Las solicitudes de API REST que se usan para administrar la instancia de recurso controlan los datos.

Definición de la extensión de directorio

Para poder agregar una extensión de directorio a una instancia de recurso, primero debe definir la extensión de directorio.

Solicitud

En la solicitud siguiente, 30a5435a-1871-485c-8c7b-65f69e287e7b es el identificador de objeto de la aplicación propietaria de la extensión de directorio. Puede crear extensiones de directorio que almacenen una colección de valores.

POST https://graph.microsoft.com/v1.0/applications/30a5435a-1871-485c-8c7b-65f69e287e7b/extensionProperties

{
    "name": "jobGroupTracker",
    "dataType": "String",
    "targetObjects": [
        "User"
    ]
}
Respuesta

Cree una propiedad de extensión de directorio denominada extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker con un nombre de extensión que siga esta convención de nomenclatura: extension_{appId-without-hyphens}_{extensionProperty-name}.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('30a5435a-1871-485c-8c7b-65f69e287e7b')/extensionProperties/$entity",
    "id": "4e3dbc8f-ca32-41b4-825a-346215d7d20f",
    "deletedDateTime": null,
    "appDisplayName": "HR-sync-app",
    "dataType": "String",
    "isMultiValued": false,
    "isSyncedFromOnPremises": false,
    "name": "extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker",
    "targetObjects": [
        "User"
    ]
}

Agregar una propiedad de extensión de directorio a un objeto de destino

Después de definir la extensión de directorio, agréguela a una instancia de un tipo de objeto de destino. Puede almacenar datos en la extensión de directorio al crear una nueva instancia del objeto de destino o al actualizar un objeto existente. En el ejemplo siguiente se muestra cómo almacenar datos en la extensión de directorio al crear un nuevo objeto de usuario .

POST https://graph.microsoft.com/v1.0/users

{
    "accountEnabled": true,
    "displayName": "Adele Vance",
    "mailNickname": "AdeleV",
    "userPrincipalName": "AdeleV@contoso.com",
    "passwordProfile": {
        "forceChangePasswordNextSignIn": false,
        "password": "xWwvJ]6NMw+bWH-d"
    },
    "extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker": "JobGroupN"
}

La solicitud devuelve un código de respuesta 201 Created y un objeto user en el cuerpo de la respuesta.

Recuperación de una extensión de directorio

En el ejemplo siguiente se muestra cómo se presentan las extensiones de directorio y los datos asociados en una instancia de recurso. La propiedad de extensión se devuelve de forma predeterminada a través del beta punto de conexión, pero solo a $select través del v1.0 punto de conexión.

Solicitud

GET https://graph.microsoft.com/beta/users?$select=id,displayName,extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker,extension_b7d8e648520f41d3b9c0fdeb91768a0a_permanent_pensionable

Respuesta

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker,extension_b7d8e648520f41d3b9c0fdeb91768a0a_permanent_pensionable)",
    "value": [
        {
            "id": "63384f56-42d2-4aa7-b1d6-b10c78f143a2",
            "displayName": "Adele Vance",
            "extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker": "E4",
            "extension_b7d8e648520f41d3b9c0fdeb91768a0a_permanent_pensionable": true
        }
    ]
}

Actualización o eliminación de extensiones de directorio

Para actualizar o eliminar el valor de la extensión de directorio de una instancia de recurso, use el método PATCH. Para eliminar la propiedad de extensión y su valor asociado, establezca su valor en null.

La siguiente solicitud actualiza el valor de una extensión de directorio y elimina otra propiedad de extensión.

PATCH https://graph.microsoft.com/v1.0/users/63384f56-42d2-4aa7-b1d6-b10c78f143a2

{
    "extension_b7d8e648520f41d3b9c0fdeb91768a0a_permanent_pensionable": null,
    "extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker": "E4"
}

La solicitud devuelve un código de respuesta 204 No Content.

Consideraciones para usar extensiones de directorio

Si elimina accidentalmente una definición de extensión de directorio, los datos almacenados en la propiedad asociada no se pueden detectar. Para recuperar los datos, cree una nueva definición de extensión de directorio con el mismo nombre que la definición eliminada, en la misma aplicación propietaria.

Al eliminar un objeto de definición antes de actualizar la propiedad de extensión correspondiente a null, la propiedad cuenta con el límite de 100 para el objeto .

Al eliminar la definición antes de eliminar los datos de la propiedad de extensión asociada, no hay ninguna manera de conocer la existencia de la propiedad de extensión a través de Microsoft Graph, aunque la propiedad no detectable cuenta con respecto al límite de 100.

La eliminación de una aplicación de propietario en el inquilino principal hace que las extensiones de directorio asociadas y sus datos no se puedan detectar. Al restaurar una aplicación de propietario, restaura las definiciones de extensión de directorio , pero no hace que las propiedades de la extensión de directorio o sus datos se puedan detectar inmediatamente; porque la restauración de una aplicación no restaura automáticamente la entidad de servicio asociada en el inquilino. Para que las propiedades de la extensión de directorio y sus datos sean reconocibles, cree una nueva entidad de servicio o restaure la entidad de servicio eliminada. No se realizan cambios en otros inquilinos en los que se haya dado su consentimiento a la aplicación.

Extensiones de esquema

Las extensiones de esquema de Microsoft Graph son conceptualmente similares a las extensiones de directorio. En primer lugar, defina la extensión de esquema. A continuación, úselo para ampliar las instancias de recursos admitidas con propiedades personalizadas fuertemente tipadas. Además, es posible controlar el estado de su extensión de esquema y permitir que sea reconocible por otras aplicaciones.

Para obtener la lista de tipos de recursos que admiten extensiones de esquema, consulte Comparación de tipos de extensión.

Experiencia del desarrollador

Al crear una definición de extensión de esquema, debe proporcionar un nombre único para su identificador. Tiene dos opciones de nomenclatura:

  • Si ya tiene un dominio de vanidad .com, .net, .gov, .eduo .org que se ha comprobado con el inquilino, use el nombre de dominio junto con el nombre del esquema para definir un nombre único, en este formato {domainName}_{schemaName}. Por ejemplo, si su dominio de cortesía es contoso.com, puede definir un id. de contoso_mySchema. Esta opción es muy recomendable.
  • Como alternativa, establezca el identificador en un nombre de esquema (sin un prefijo de nombre de dominio). Por ejemplo, mySchema. Microsoft Graph le asigna un identificador de cadena en función del nombre proporcionado, en este formato: ext{8-random-alphanumeric-chars}_{schema-name}. Por ejemplo, extkvbmkofy_mySchema.

El identificador es el nombre del tipo complejo que almacena los datos en la instancia de recurso extendida.

Después de registrar una extensión de esquema, todas las aplicaciones del mismo inquilino que la aplicación propietaria asociada pueden usarla cuando se encuentra en el InDevelopment estado . Cuando se encuentra en el Available estado , todas las aplicaciones de cualquier inquilino pueden usarla. Al igual que las extensiones de directorio, las aplicaciones autorizadas pueden leer y escribir datos en cualquier extensión definida en el objeto de destino.

Las definiciones de extensión de esquema y los datos de la propiedad de extensión de esquema correspondiente se administran mediante conjuntos independientes de operaciones de API. Para administrar los datos de extensión de esquema en la instancia de recurso extendida, use la misma solicitud REST que se usa para administrar la instancia de recurso.

  • Use POST para almacenar datos en la propiedad de extensión de esquema al crear un nuevo usuario.
  • Use PATCH para almacenar datos en la propiedad de extensión de esquema o actualizar o eliminar los datos almacenados.
    • Para eliminar datos de una propiedad, establezca su valor en null.
    • Para eliminar datos de todas las propiedades, establezca cada propiedad nullen . Si todas las propiedades son null, también se elimina el objeto de extensión de esquema.
    • Para actualizar cualquier propiedad, especifique solo las propiedades modificadas en el cuerpo de la solicitud. Las propiedades omitidas no se actualizan y conservan su valor anterior.
  • Use GET para leer las propiedades de extensión de esquema para todos los usuarios o usuarios individuales del inquilino.

Definición de una extensión de esquema

Solicitud
POST https://graph.microsoft.com/v1.0/schemaExtensions

{
    "id": "graphLearnCourses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "user"
    ],
    "properties": [
        {
            "name": "courseId",
            "type": "Integer"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}
Respuesta
{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#schemaExtensions/$entity",
    "id": "extkmpdyld2_graphLearnCourses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "user"
    ],
    "status": "InDevelopment",
    "properties": [
        {
            "name": "courseId",
            "type": "Integer"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}

Agregar una extensión de esquema a una instancia de recurso

Después de definir la extensión de esquema, puede agregar la propiedad de extensión a una instancia de un tipo de objeto de destino. Puede almacenar datos en la extensión de esquema al crear una nueva instancia del objeto de destino o al actualizar un objeto existente. En el siguiente ejemplo se muestra cómo almacenar datos en la propiedad de extensión de esquema al crear un nuevo objeto de usuario.

POST https://graph.microsoft.com/beta/users

{
    "accountEnabled": true,
    "displayName": "Adele Vance",
    "mailNickname": "AdeleV",
    "userPrincipalName": "AdeleV@contoso.com",
    "passwordProfile": {
        "forceChangePasswordNextSignIn": false,
        "password": "xWwvJ]6NMw+bWH-d"
    },
    "extkmpdyld2_graphLearnCourses": {
        "courseId": 100,
        "courseName": "Explore Microsoft Graph",
        "courseType": "Online"
    }
}

La solicitud devuelve un 201 Created código de respuesta y un objeto schemaExtension en el cuerpo de la respuesta.

Actualizar o eliminar una propiedad de extensión de esquema

Use la operación PATCH para actualizar una extensión de esquema o eliminar una extensión de esquema existente. Para eliminar la propiedad de extensión y su valor asociado de la instancia de recurso, establezca su valor en null.

En el siguiente ejemplo se elimina el valor de la propiedad courseId y se actualiza la propiedad courseType. Para eliminar la propiedad de extensión extkmpdyld2_graphLearnCourses en su totalidad, establezca su valor en null.

PATCH https://graph.microsoft.com/beta/users/0668e673-908b-44ea-861d-0661297e1a3e

{
    "extkmpdyld2_graphLearnCourses": {
        "courseType": "Instructor-led",
        "courseId": null
    }
}

La solicitud devuelve un objeto de respuesta 204 No Content.

Recuperar la propiedad de extensión de esquema

Para leer las propiedades de extensión de esquema en una instancia de recurso, especifique el nombre de la extensión en una solicitud $select.

Solicitud
GET https://graph.microsoft.com/beta/users/0668e673-908b-44ea-861d-0661297e1a3e?$select=id,displayName,extkmpdyld2_graphLearnCourses
Respuesta
HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,displayName,extkmpdyld2_graphLearnCourses)/$entity",
    "id": "63384f56-42d2-4aa7-b1d6-b10c78f143a2",
    "displayName": "Adele Vance",
    "extkmpdyld2_graphLearnCourses": {
        "@odata.type": "#microsoft.graph.ComplexExtensionValue",
        "courseType": "Instructor-led",
        "courseName": "Explore Microsoft Graph",
        "courseId": null
    }
}

Consideraciones sobre el uso de extensiones de esquema

Una extensión de esquema debe tener una aplicación de propietario. No se puede reasignar la propiedad de la extensión de esquema a otra aplicación.

Si elimina una definición de extensión de esquema sin establecer la extensión nullde esquema en , hace que la propiedad y sus datos de usuario asociados no se puedan detectar.

Si elimina una aplicación de propietario en el inquilino principal, no elimina la definición de extensión de esquema asociada ni la propiedad ni los datos que almacena. Todavía puede leer, eliminar o actualizar la propiedad de extensión de esquema para los usuarios. Sin embargo, no se puede actualizar la definición de extensión de esquema.

Extensiones abiertas

Las extensiones abiertas de Microsoft Graph son tipados abiertos que ofrecen una forma flexible de agregar datos de la aplicación sin tipado directamente a una instancia de recurso. Estas extensiones no están fuertemente tipadas, detectables ni filtrables.

Para obtener la lista de tipos de recursos que admiten extensiones abiertas de Microsoft Graph, consulte Comparación de tipos de extensiones.

Experiencia del desarrollador

Puede acceder a las extensiones abiertas y sus datos a través de la propiedad de navegación extensiones de la instancia de recurso. Con las extensiones abiertas, puede agrupar las propiedades relacionadas para facilitar el acceso y la administración.

Defina y administre extensiones abiertas en instancias de recursos. Cada extensión abierta es única para su objeto, por lo que no es necesario aplicar un patrón coherente en todos los objetos. Por ejemplo, en el mismo inquilino:

  • El objeto de usuario de Adele puede tener una extensión abierta denominada socialSettings que tiene tres propiedades: linkedInProfile, skypeId y xboxGamertag.
  • El objeto de usuario de Allan no puede tener ninguna propiedad de extensión abierta.
  • El objeto de usuario de Alex puede tener una extensión abierta denominada socialSettings con cinco propiedades: theme, color, language, font y fontSize.

Las propiedades de extensión abiertas pueden tener cualquier estructura JSON válida.

Crear una extensión abierta

En el ejemplo siguiente se muestra una definición de extensión abierta con tres propiedades y cómo aparecen las propiedades personalizadas y los datos asociados en una instancia de recurso.

POST https://graph.microsoft.com/v1.0/users/3fbd929d-8c56-4462-851e-0eb9a7b3a2a5/extensions

{
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "extensionName": "com.contoso.socialSettings",
    "skypeId": "skypeId.AdeleV",
    "linkedInProfile": "www.linkedin.com/in/testlinkedinprofile",
    "xboxGamerTag": "AwesomeAdele",
    "id": "com.contoso.socialSettings"
}

La solicitud devuelve un código de respuesta 201 Created y un objeto openTypeExtension en el cuerpo de la respuesta.

Actualizar una extensión abierta existente

Para actualizar una extensión abierta, debe especificar todas sus propiedades en el cuerpo de la solicitud. De lo contrario, las propiedades no especificadas se eliminan de la extensión abierta. Puede establecer explícitamente una propiedad null en para conservarla en la extensión abierta.

La siguiente solicitud especifica solo las propiedades linkedInProfile y xboxGamerTag. El valor de la propiedad xboxGamerTag se actualiza mientras que la propiedad linkedInProfile permanece igual. Esta solicitud también elimina la propiedad skypeId no especificada.

PATCH https://graph.microsoft.com/v1.0/users/3fbd929d-8c56-4462-851e-0eb9a7b3a2a5/extensions/com.contoso.socialSettings

{
    "xboxGamerTag": "FierceAdele",
    "linkedInProfile": "www.linkedin.com/in/testlinkedinprofile"
}

Esta solicitud devuelve un código de respuesta 204 No Content.

Recuperar las extensiones abiertas

GET https://graph.microsoft.com/v1.0/users/3fbd929d-8c56-4462-851e-0eb9a7b3a2a5/extensions/com.contoso.socialSettings

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('3fbd929d-8c56-4462-851e-0eb9a7b3a2a5')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "xboxGamerTag": "FierceAdele",
    "linkedInProfile": "www.linkedin.com/in/testlinkedinprofile",
    "id": "com.contoso.socialSettings"
}

Consideraciones sobre el uso de extensiones abiertas

La eliminación de una aplicación de creador no afecta a la extensión abierta ni a los datos que almacena.

Comparación de tipos de extensión

En la tabla siguiente se comparan los tipos de extensión. Use esta comparación para decidir qué opción es más adecuada para su escenario.

Funcionalidad Atributos de extensión 1 a 15 Extensiones de directorio Extensiones de esquema Extensiones abiertas
Tipos de recursos admitidos usuario
dispositivo
user
group
administrativeUnit
application
dispositivo
organization
user
group
administrativeUnit
contact
dispositivo
event (calendarios de usuario y grupo)
message
organization
post
user
grupo
contact
dispositivo
event1 (calendarios de usuario y grupo)
message
organization
post
todoTask
todoTaskList
Con establecimiento inflexible de tipos No No
Filterable No
Puede almacenar una colección No No
Vinculado a una aplicación "propietario" No No
Ámbito Asignación de valores a propiedades predefinidas de la instancia del objeto de destino Definir en el nivel de aplicación y, a continuación, asignar a la instancia de objeto de destino Definir para el inquilino y, a continuación, asignar a la instancia de objeto de destino Definición y asignación en la instancia de objeto
Detectabilidad Seleccionar o filtrar en la instancia del objeto de destino LIST, select, or filter on the application level to GET definitions; Seleccione o filtre en el objeto de destino para obtener asignaciones ENUMERAR o filtrar para obtener definiciones de todo el inquilino; Seleccione o filtre en el objeto de destino para obtener asignaciones ENUMERAR o seleccionar en el objeto de destino para obtener definiciones y asignaciones
Administrado a través de Microsoft Graph
Centro de administración de Exchange
Microsoft Graph Microsoft Graph Microsoft Graph
Sincronización de datos del entorno local con extensiones mediante AD Connect Sí, para usuarios No No
Crear reglas de pertenencia dinámica mediante datos y propiedades de extensión personalizados No No
Se puede utilizar para personalizar las solicitudes de token Sí (1, 2) No No
Disponible en Azure AD B2C
Disponible en Id. externa de Microsoft Entra
Límites
  • 15 atributos predefinidos por instancia de recurso de usuario o dispositivo
  • 100 valores de extensión por instancia de recurso
  • Un máximo de cinco definiciones por aplicación propietaria
  • 100 valores de extensión por instancia de recurso (solo objetos de directorio)
  • Dos extensiones abiertas por aplicación creadora por instancia de recurso 2
  • Máx. de 2 Kb por extensiónabierta 2
  • Para los recursos de Outlook, cada extensión abierta se almacena en una propiedad con nombre MAPI3.
  • Nota:

    1 Debido a una limitación de servicio existente, los delegados no pueden crear eventos abiertos anexados a extensiones en calendarios de buzones compartidos. Los intentos de hacerlo dan como resultado una ErrorAccessDenied respuesta.

    2 Estos límites en las extensiones abiertas se aplican a los siguientes recursos de directorio: usuario, grupo, dispositivo y organización.

    3 Cada extensión abierta se almacena en una propiedad con nombre MAPI, que es un recurso limitado en el buzón de correo de un usuario. Este límite se aplica a los siguientes recursos de Outlook: message, event y contact

    Puede administrar todas las extensiones al iniciar sesión con una cuenta profesional o educativa. Además, puede administrar extensiones abiertas para los siguientes recursos al iniciar sesión con una cuenta Microsoft personal: event, post, group, message, contact y user.

    Permisos y privilegios

    Para administrar los datos de extensiones en una instancia de recurso, la aplicación necesita los mismos privilegios que usa para leer o escribir en esa instancia de recurso. Por ejemplo, en un escenario delegado, una aplicación puede actualizar los datos de extensión de cualquier usuario solo si se le concede el permiso User.ReadWrite.All y el usuario que ha iniciado sesión tiene un rol de administrador de Microsoft Entra compatible.