Ajout de données personnalisées à des ressources à l’aide des extensions

Microsoft Graph fournit un point de terminaison d’API unique pour accéder à des données et des insights riches centrés sur les personnes via des ressources telles que l’utilisateur et le message. Vous pouvez également étendre Microsoft Graph en ajoutant des propriétés personnalisées aux instances de ressources sans avoir besoin d’un magasin de données externe.

Cet article décrit comment Microsoft Graph prend en charge l’extension de ses ressources, les options disponibles pour ajouter des propriétés personnalisées et quand les utiliser.

Importante

N’utilisez pas d’extensions pour stocker des informations d’identification personnelle sensibles, telles que des informations d’identification de compte, des numéros d’identification du gouvernement, des données de titulaire de carte, des données de compte financier, des informations de santé ou des informations d’arrière-plan sensibles.

Les extensions mentionnées dans cet article ne sont pas similaires aux attributs de sécurité personnalisés. Pour comprendre leurs différences, consultez Comment les attributs de sécurité personnalisés se comparent-ils aux extensions ?

Pourquoi ajouter des données personnalisées à Microsoft Graph ?

  • En tant que développeur ISV, vous pouvez décider de conserver votre application légère et de stocker les données de profil utilisateur spécifiques à l’application dans Microsoft Graph en étendant la ressource utilisateur .
  • Vous pouvez également conserver le magasin de profils utilisateur existant de votre application et ajouter un identificateur spécifique à l’application à la ressource utilisateur.
  • En tant que développeur d’entreprise, les applications internes que vous créez peuvent s’appuyer sur les données spécifiques aux RH de votre organisation. L’intégration au sein de plusieurs applications peut être simplifiée en stockant ces données personnalisées dans Microsoft Graph.

Options de données personnalisées dans Microsoft Graph

Microsoft Graph propose quatre types d’extensions pour l’ajout de données personnalisées.

  • Attributs d’extension
  • Extensions d’annuaire (Microsoft Entra ID)
  • Extensions de schéma
  • Extensions d’ouverture

Attributs d’extension

Microsoft Entra ID propose un ensemble de 15 attributs d’extension avec des noms prédéfinis sur les ressources de l’utilisateur et de l’appareil. Ces propriétés étaient initialement des attributs personnalisés fournis dans Active Directory local (AD) et Microsoft Exchange. Toutefois, ils peuvent désormais être utilisés pour plus que la synchronisation des données AD et Microsoft Exchange locales pour Microsoft Entra ID via Microsoft Graph.

Expérience du développeur

Vous pouvez utiliser les 15 attributs d’extension pour stocker des valeurs de Chaîne sur des instances de ressource d’utilisateur ou d’appareil, par le biais des propriétés onPremisesExtensionAttributes et extensionAttributes respectivement. Vous pouvez affecter les valeurs lors de la création d’une ressource instance ou lors de la mise à jour d’une ressource existante instance. Vous pouvez également filtrer par valeurs.

Ajouter ou mettre à jour des données dans des attributs d’extension

L’exemple suivant montre comment stocker des données dans extensionAttribute1 et supprimer des données existantes de extensionAttribute13 via une opération de mise à jour avec une méthode PATCH.

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

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

La requête retourne un objet de réponse 204 No Content .

Lire les attributs d’extension

Demande
GET https://graph.microsoft.com/v1.0/users?$select=id,displayName,onPremisesExtensionAttributes
Réponse
{
    "@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
            }
        }
    ]
}

Considérations relatives à l’utilisation des propriétés d’attribut d’extension

L’objet onPremisesExtensionAttributes peut être mis à jour uniquement pour les objets qui ne sont pas synchronisés à partir d’AD local.

Les 15 attributs d’extension sont déjà prédéfinis dans Microsoft Graph et leurs noms de propriétés ne peuvent pas être modifiés. Par conséquent, vous ne pouvez pas utiliser de noms personnalisés tels que SkypeId pour les attributs d’extension. Votre organization doit donc suivre les propriétés d’attribut d’extension utilisées pour éviter de remplacer par inadvertance leurs données.

Extensions d’annuaire (Microsoft Entra ID)

Les extensions d’annuaire fournissent aux développeurs une expérience d’extension fortement typée, détectable et filtrable pour les objets d’annuaire.

Les extensions d’annuaire sont d’abord inscrites sur une application via l’opération extensionProperty Create et doivent être explicitement ciblées sur des objets d’annuaire spécifiques et pris en charge. Une fois qu’un utilisateur ou un administrateur a donné son consentement à l’application dans le locataire, les propriétés d’extension deviennent immédiatement accessibles dans le locataire. Toutes les applications autorisées dans le locataire peuvent lire et écrire des données sur toutes les propriétés d’extension définies sur une instance de l’objet répertoire cible.

Pour obtenir la liste des types de ressources qui peuvent être spécifiés en tant qu’objets cibles pour une extension d’annuaire, consultez Comparaison des types d’extension.

Expérience du développeur

Les définitions d’extension d’annuaire sont gérées via la ressource extensionProperty et ses méthodes associées. Les données sont gérées par le biais des requêtes d’API REST que vous utilisez pour gérer la ressource instance.

Définir l’extension d’annuaire

Avant de pouvoir ajouter une extension de répertoire à une ressource instance, vous devez d’abord définir l’extension de répertoire.

Demande

Dans la requête suivante, 30a5435a-1871-485c-8c7b-65f69e287e7b est l’ID d’objet de l’application qui possède l’extension de répertoire. Vous pouvez créer des extensions d’annuaire qui stockent une collection de valeurs.

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

{
    "name": "jobGroupTracker",
    "dataType": "String",
    "targetObjects": [
        "User"
    ]
}
Réponse

Une propriété d’extension de répertoire nommée extension_b7d8e648520f41d3b9c0fdeb91768a0a_jobGroupTracker est créée avec un nom d’extension qui suit la convention d’affectation de noms suivante : 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"
    ]
}

Ajouter une propriété d’extension de répertoire à un objet cible

Après avoir défini l’extension de répertoire, vous pouvez maintenant l’ajouter à un instance d’un type d’objet cible. Vous pouvez stocker des données dans l’extension de répertoire lors de la création d’une nouvelle instance de l’objet cible ou lors de la mise à jour d’un objet existant. L’exemple suivant montre comment stocker des données dans l’extension d’annuaire lors de la création d’un objet utilisateur .

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 requête retourne un code de réponse 201 Created et un objet utilisateur dans le corps de la réponse.

Récupérer une extension d’annuaire

L’exemple suivant montre comment les extensions d’annuaire et les données associées sont présentées sur une ressource instance. La propriété d’extension est retournée par défaut via le point de beta terminaison, mais uniquement via $select le point de v1.0 terminaison.

Demande

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

Réponse

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
        }
    ]
}

Mettre à jour ou supprimer des extensions d’annuaire

Pour mettre à jour ou supprimer la valeur de l’extension d’annuaire d’une ressource instance, utilisez la méthode PATCH. Pour supprimer la propriété d’extension et sa valeur associée, définissez sa valeur sur null.

La requête suivante met à jour la valeur d’une extension d’annuaire et supprime une autre propriété d’extension.

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

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

La requête retourne un code de réponse 204 No Content .

Considérations relatives à l’utilisation des extensions d’annuaire

Si vous supprimez accidentellement une définition d’extension de répertoire, toutes les données stockées dans la propriété associée ne sont plus détectables. Pour récupérer les données, créez une définition d’extension de répertoire portant le même nom que la définition supprimée, sur la même application propriétaire.

Lorsqu’un objet de définition est supprimé avant la mise à jour de la propriété d’extension correspondante vers null, la propriété est comptabilisée par rapport à la limite de 100 pour l’objet .

Lorsque la définition est supprimée avant la suppression des données de la propriété d’extension associée, il n’existe aucun moyen de connaître l’existence de la propriété d’extension via Microsoft Graph, même si la propriété non détectable est comptabilisée par rapport à la limite de 100.

La suppression d’une application propriétaire dans le locataire d’origine rend les extensions d’annuaire associées et leurs données non détectables. Lorsque vous restaurez une application propriétaire, elle restaure les définitions d’extension d’annuaire, mais ne rend pas immédiatement détectables les propriétés de l’extension d’annuaire ou leurs données ; car la restauration d’une application ne restaure pas automatiquement le principal de service associé dans le locataire. Pour rendre les propriétés d’extension d’annuaire et leurs données détectables, créez un principal de service ou restaurez le principal de service supprimé. AUCUNE modification n’est apportée aux autres locataires pour lesquels l’application a été autorisée.

Extensions de schéma

Les extensions de schéma Microsoft Graph sont conceptuellement similaires aux extensions de répertoire. Tout d’abord, vous définissez votre extension de schéma. Ensuite, utilisez-la pour étendre les instances de ressources prises en charge avec des propriétés personnalisées fortement typées. En outre, vous pouvez contrôler l’état de votre extension de schéma et la rendre accessible aux autres applications.

Pour obtenir la liste des types de ressources qui prennent en charge les extensions de schéma, consultez Comparaison des types d’extensions.

Expérience du développeur

Lorsque vous créez une définition d’extension de schéma, vous devez fournir un nom unique pour son id. Il existe deux options d’appellation :

  • Si vous disposez déjà d’un .com.netnom de famille, .gov.edu ou d’un .org domaine vérifié avec votre locataire, vous pouvez utiliser le nom de domaine ainsi que le nom de schéma pour définir un nom unique, dans ce format {domainName}_{schemaName}. Par exemple, si votre domaine personnalisé est contoso.com, vous pouvez définir un ID de contoso_mySchema. Cette option est vivement recommandée.
  • Vous pouvez également définir l’ID sur un nom de schéma (sans préfixe de nom de domaine). Par exemple : mySchema. Microsoft Graph vous attribue un ID de chaîne en fonction du nom fourni, au format suivant : ext{8-random-alphanumeric-chars}_{schema-name}. Par exemple : extkvbmkofy_mySchema.

L’ID est le nom du type complexe qui stocke vos données sur la ressource étendue instance.

Une fois que vous avez inscrit une extension de schéma, elle peut être utilisée par toutes les applications du même locataire que l’application propriétaire associée (lorsqu’elle est dans l’état InDevelopment ) ou par toutes les applications de n’importe quel locataire (lorsqu’elles sont dans l’état Available ). À l’instar des extensions d’annuaire, les applications autorisées ont la possibilité de lire et d’écrire des données sur toutes les extensions définies sur l’objet cible.

Vous gérez les définitions d’extension de schéma et les données de la propriété d’extension de schéma correspondante à l’aide d’ensembles distincts d’opérations d’API. Pour gérer les données d’extension de schéma sur l’instance de ressource étendue, utilisez la même requête REST que celle que vous utilisez pour gérer l’instance de ressource.

  • Utilisez POST pour stocker des données dans la propriété d’extension de schéma lorsque vous créez un utilisateur.
  • Utilisez PATCH pour stocker des données dans la propriété d’extension de schéma ou mettre à jour ou supprimer les données stockées.
    • Pour supprimer des données d’une propriété, définissez sa valeur sur null.
    • Pour supprimer des données de toutes les propriétés, définissez chaque propriété sur null. Si toutes les propriétés sont null, l’objet d’extension de schéma est également supprimé.
    • Pour mettre à jour une propriété, spécifiez uniquement les propriétés modifiées dans le corps de la demande. Les propriétés omises ne sont pas mises à jour et conservent leur valeur précédente.
  • Utilisez GET pour lire les propriétés d’extension de schéma pour tous les utilisateurs ou utilisateurs individuels dans le locataire.

Définir une extension de schéma

Demande
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"
        }
    ]
}
Réponse
{
    "@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"
        }
    ]
}

Ajouter une extension de schéma à une instance de ressource

Après avoir défini l’extension de schéma, vous pouvez maintenant ajouter la propriété d’extension à un instance d’un type d’objet cible. Vous pouvez stocker des données dans l’extension de schéma lors de la création d’une instance de l’objet cible ou lors de la mise à jour d’un objet existant. L’exemple suivant montre comment stocker des données dans la propriété d’extension de schéma lors de la création d’un objet utilisateur.

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 requête retourne un code de réponse 201 Created et un objet schemaExtension dans le corps de la réponse

Mettre à jour ou supprimer une propriété d’extension de schéma

Utilisez l’opération PATCH pour mettre à jour une extension de schéma ou supprimer une extension de schéma existante. Pour supprimer la propriété d’extension et sa valeur associée de l’instance de ressource, définissez sa valeur sur null.

L’exemple suivant supprime la valeur de la propriété courseId et met à jour la propriété courseType . Pour supprimer la propriété d’extension extkmpdyld2_graphLearnCourses dans son intégralité, définissez sa valeur sur null.

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

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

La requête retourne un objet de réponse 204 No Content .

Récupérer la propriété d’extension de schéma

Pour lire les propriétés de l’extension de schéma sur une instance de ressource, spécifiez le nom de l’extension dans une demande $select.

Demande
GET https://graph.microsoft.com/beta/users/0668e673-908b-44ea-861d-0661297e1a3e?$select=id,displayName,extkmpdyld2_graphLearnCourses
Réponse
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
    }
}

Considérations relatives à l’utilisation des extensions de schéma

Une extension de schéma doit avoir une application propriétaire. La propriété de l’extension de schéma ne peut pas être réaffectée à une autre application.

La suppression d’une définition d’extension de schéma sans définir l’extension de schéma sur null rend la propriété et les données utilisateur associées non détectables.

La suppression d’une application propriétaire dans le locataire d’origine ne supprime pas la définition d’extension de schéma associée, ni la propriété et les données qu’elle stocke. La propriété d’extension de schéma peut toujours être lue, supprimée ou mise à jour pour les utilisateurs. Toutefois, la définition de l’extension de schéma ne peut pas être mise à jour.

Extensions d’ouverture

Les extensions ouvertes Microsoft Graph sont des types ouverts qui offrent un moyen simple et flexible d'ajouter des données non typées directement à une instance de ressource. Ces extensions ne sont pas fortement typées, détectables ou filtrables.

Pour obtenir la liste des types de ressources qui prennent en charge les extensions ouvertes Microsoft Graph, consultez Comparaison des types d’extensions.

Expérience du développeur

Les extensions ouvertes, ainsi que leurs données, sont accessibles via la propriété de navigation des extensions de l’instance de ressource. Ils vous permettent de regrouper les propriétés associées pour faciliter l’accès et la gestion.

Vous définissez et gérez les extensions ouvertes à la volée sur les instances de ressource. Ils sont considérés comme uniques pour chaque objet, et vous n’avez pas besoin d’appliquer un modèle cohérent universellement pour tous les objets. Par exemple, dans le même locataire :

  • L’objet utilisateur pour Adele peut avoir une extension ouverte nommée socialSettings qui a trois propriétés : linkedInProfile, skypeId et xboxGamertag.
  • L’objet utilisateur pour Bruno ne peut avoir aucune propriété d’extension ouverte.
  • L’objet utilisateur pour Alex peut avoir une extension ouverte nommée socialSettings avec cinq propriétés : theme, color, language, police et fontSize.

Créer une extension ouverte

L’exemple suivant montre une définition d’extension ouverte avec trois propriétés et comment les propriétés personnalisées et les données associées sont présentées sur une ressource instance.

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 requête retourne un code de réponse 201 Created et un objet openTypeExtension dans le corps de la réponse.

Mettre à jour une extension ouverte existante

Pour mettre à jour une extension ouverte, vous devez spécifier toutes ses propriétés dans le corps de la requête. Sinon, les propriétés non spécifiées sont mises à null jour vers et supprimées de l’extension ouverte.

La requête suivante spécifie uniquement les propriétés linkedInProfile et xboxGamerTag . La valeur de la propriété xboxGamerTag est en cours de mise à jour tandis que la propriété linkedInProfile reste la même. Cette demande supprime également la propriété skypeId non spécifiée.

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"
}

Cette requête retourne un code de réponse 204 No Content.

Récupérer les extensions ouvertes

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"
}

Considérations relatives à l’utilisation des extensions ouvertes

La suppression d’une application de créateur n’affecte pas l’extension ouverte et les données qu’elle stocke.

Comparaison des types d’extension

Le tableau suivant compare les types d’extension, ce qui doit vous aider à déterminer l’option la plus appropriée pour votre scénario.

Fonctionnalité Attributs d’extension 1-15 Extensions du schéma Directory Extensions de schéma Extensions d’ouverture
Types de ressources pris en charge user
appareil
utilisateur
groupe
administrativeUnit
application
appareil
organization
user
groupe
administrativeUnit
contact
appareil
événement (calendriers d’utilisateurs et de groupes)
message
organization
post
utilisateur
Groupe
contact
appareil
événement1 (calendriers d’utilisateurs et de groupes)
message
organization
post
todoTask
todoTaskList
Fortement typés Non Oui Oui Non
Filtrables Oui Oui Oui Non
Peut stocker une collection Non Oui Non Non
Lié à une application « propriétaire » Non Oui Oui Non
Géré via Microsoft Graph
Centre d’administration Exchange
Microsoft Graph Microsoft Graph Microsoft Graph
Synchroniser des données locales avec des extensions à l’aide d’AD Connect Oui, pour les utilisateurs Oui Non Non
Créer des règles d’appartenance dynamique à l’aide de données et de propriétés d’extension personnalisées Oui Oui Non Non
Utilisable pour la personnalisation des revendications de jeton Oui Oui (1, 2) Non Non
Disponible dans Azure AD B2C Oui Oui Oui Oui
Limites
  • 15 attributs prédéfinis par instance de ressource d’utilisateur ou d’appareil
  • 100 valeurs d’extension par instance de ressource
  • Maximum de cinq définitions par application propriétaire
  • 100 valeurs d’extension par instance de ressource (objets d’annuaire uniquement)
  • Deux extensions ouvertes par application de créateur par instance de ressource 2
  • Longueur de 2 Ko par extension ouverte2
  • Pour les ressources Outlook, chaque extension ouverte est stockée dans une propriété nommée MAPI3
  • Remarque

    1 En raison d’une limitation de service existante, les délégués ne peuvent pas créer d’événements ouverts ajoutés à des extensions dans des calendriers de boîtes aux lettres partagées. Les tentatives de le faire entraîneront une réponse ErrorAccessDenied.

    2 Ces limites sur les extensions ouvertes s’appliquent aux ressources d’annuaire suivantes : utilisateur, groupe, appareil et organization.

    3 Chaque extension ouverte est stockée dans une propriété nommée MAPI, qui est une ressource limitée dans la boîte aux lettres d’un utilisateur. Cette limite s’applique aux ressources Outlook suivantes : message, événementet contact

    Vous pouvez gérer toutes les extensions lorsque vous êtes connecté avec un compte professionnel ou scolaire. En outre, vous pouvez gérer les extensions ouvertes pour les ressources suivantes lors de la connexion avec un compte Microsoft personnel : événement, publication, groupe, message, contactet utilisateur.

    Autorisations et privilèges

    Les mêmes privilèges que celui dont votre application a besoin pour lire ou écrire dans une ressource instance sont également requis pour gérer les données d’extensions sur cette ressource instance. Par exemple, dans un scénario délégué, une application peut uniquement mettre à jour les données d’extension d’un utilisateur si elle dispose de l’autorisation User.ReadWrite.All et si l’utilisateur connecté a un rôle d’administrateur Microsoft Entra pris en charge.