Partager via


Inscrire les autorisations d’application de type conteneur de stockage de fichiers

Pour qu’une application SharePoint Embedded puisse interagir avec des conteneurs dans un locataire consommateur, le type de conteneur doit d’abord être inscrit dans le locataire consommateur. L’inscription du type de conteneur se produit lorsque l’application propriétaire appelle l’API d’inscription pour spécifier comment les applications peuvent accéder à son type de conteneur. L’API d’inscription accorde également l’accès à d’autres applications invitées pour interagir avec les conteneurs de l’application propriétaire. Par exemple, une application SharePoint Embedded peut accorder des autorisations à une autre application, une application invitée afin que l’application invitée puisse effectuer des opérations de sauvegarde sur ses conteneurs.

Étant donné que l’API d’inscription de type de conteneur contrôle l’accès à un type de conteneur dans le locataire consommateur, il s’agit du premier point de terminaison appelé par une application SharePoint Embedded sur un locataire consommateur. Le fait de ne pas le faire entraîne des erreurs de refus d’accès lors de l’appel d’autres API sur des conteneurs et/ou du contenu dans les conteneurs.

Il n’existe aucune restriction sur le nombre d’appels de l’API d’inscription. La fréquence à laquelle l’API d’inscription est appelée et quand elle est appelée dépend de l’application SharePoint Embedded. Toutefois, le dernier appel réussi à l’API d’inscription détermine les paramètres utilisés dans le locataire consommateur.

Exigences d’authentification et d’autorisation

Pour que l’application propriétaire du type de conteneur agisse sur un locataire consommateur, certaines conditions préalables doivent être remplies :

  • l’application propriétaire doit avoir un principal de service installé sur le locataire consommateur
  • l’application propriétaire doit obtenir le consentement de l’administrateur pour effectuer l’inscription du type de conteneur dans le locataire consommateur.

Vous pouvez répondre à ces exigences en demandant à l’administrateur général du locataire consommateur d’accorder le consentement administrateur à l’application propriétaire du type de conteneur.

L’API d’inscription de type de conteneur nécessite l’autorisation FileStorageContainerTypeReg.Selected déléguée par l’utilisateur ou l’autorisation d’application uniquement. Lorsque l’application propriétaire appelle l’API d’inscription de type de conteneur pour le compte d’un utilisateur, l’utilisateur doit se voir attribuer les rôles Administrateur SharePoint Embedded ou Administrateur général . Lorsque l’application propriétaire appelle l’API d’inscription de type de conteneur sans contexte utilisateur, elle doit demander un jeton à l’aide du flux d’octroi des informations d’identification du client.

Remarque

L’API d’inscription de type de conteneur est actuellement en préversion et est susceptible d’être modifiée.

Pour demander le consentement administrateur d’un administrateur dans le locataire consommateur, vous pouvez le diriger vers le point de terminaison de consentement administrateur. Pour connaître les points de terminaison appropriés sur les clouds nationaux, consultez Plateforme d'identités Microsoft points de terminaison sur les clouds nationaux :

https://login.microsoftonline.com/{ConsumingTenantId}/v2.0/adminconsent?client_id={OwningAppId}&scope=https://graph.microsoft.com/.default

Vous pouvez configurer le point de terminaison de consentement administrateur en fonction de vos besoins, y compris la gestion des erreurs et des octrois réussis. Pour plus d’informations, consultez URI de consentement Administration.

Autorisations de type de conteneur

L’API d’inscription détermine les autorisations qu’une application SharePoint Embedded peut exécuter sur les conteneurs et le contenu des conteneurs pour le type de conteneur spécifié.

Autorisation Description
Aucun N’a aucune autorisation sur les conteneurs ou le contenu de ce type de conteneur.
ReadContent Peut lire le contenu des conteneurs de ce type de conteneur.
WriteContent Peut écrire du contenu dans des conteneurs pour ce type de conteneur. Cela ne peut pas être accordé sans l’autorisation ReadContent.
Créer Peut créer des conteneurs de ce type de conteneur.
Supprimer Peut supprimer des conteneurs de ce type de conteneur.
Lire Peut lire les métadonnées des conteneurs de ce type de conteneur.
Écrire Peut mettre à jour les métadonnées des conteneurs de ce type de conteneur.
EnumeratePermissions Peut énumérer les membres d’un conteneur et leurs rôles pour les conteneurs de ce type de conteneur.
AddPermissions Peut ajouter des membres au conteneur pour les conteneurs de ce type de conteneur.
UpdatePermissions Peut mettre à jour (modifier les rôles de) les appartenances existantes dans le conteneur pour les conteneurs de ce type de conteneur.
DeletePermissions Peut supprimer d’autres membres (mais pas eux-mêmes) du conteneur pour les conteneurs de ce type de conteneur.
DeleteOwnPermissions Peut supprimer sa propre appartenance du conteneur pour les conteneurs de ce type de conteneur.
ManagePermissions Peut ajouter, supprimer (y compris auto)ou mettre à jour des membres dans les rôles de conteneur pour les conteneurs de ce type de conteneur.
ManageContent Peut gérer le contenu du conteneur
Complet Dispose de toutes les autorisations pour les conteneurs de ce type de conteneur.

Exemples

Inscrire le type de conteneur dans un locataire consommateur avec des autorisations uniquement pour l’application propriétaire

Inscrivez le type de988700-d700-020e-0a00-0831f3042f00 de conteneur dans le locataire consommateur et accordez full des autorisations à l’application 71392b2f-1765-406e-86af-5907d9bdb2ab propriétaire pour les appels délégués et d’application uniquement.

Demande

PUT https://graph.microsoft.com/beta/storage/fileStorage/containerTypeRegistrations/de988700-d700-020e-0a00-0831f3042f00
Content-Type: application/json

{
  "applicationPermissionGrants": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegatedPermissions": ["full"],
      "applicationPermissions": ["full"]
    }
  ]
}

Réponse

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

{
  "@odata.type": "#microsoft.graph.fileStorageContainerTypeRegistration",
  "id": "de988700-d700-020e-0a00-0831f3042f00",
  "name": "Test Container Type",
  "owningAppId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
  "billingClassification": "trial",
  "billingStatus": "valid",
  "registeredDateTime": "08/11/2025",
  "expirationDateTime": "08/11/2025",
  "etag": "RVRhZw==",
  "settings": {
    "@odata.type": "microsoft.graph.fileStorageContainerTypeRegistrationSettings",
    "sharingCapability": "disabled",
    "urlTemplate": "https://app.contoso.com/redirect?tenant={tenant-id}&drive={drive-id}&folder={folder-id}&item={item-id}",
    "isDiscoverabilityEnabled": true,
    "isSearchEnabled": true,
    "isItemVersioningEnabled": true,
    "itemMajorVersionLimit": 50,
    "maxStoragePerContainerInBytes": 104857600,
    "isSharingRestricted": false
  },
  "applicationPermissionGrants": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegatedPermissions": ["full"],
      "applicationPermissions": ["full"]
    }
  ]
}

Inscrire le type de conteneur dans un locataire consommateur avec des autorisations pour une application invitée

Inscrivez le type de988700-d700-020e-0a00-0831f3042f00 de conteneur dans le locataire consommateur et accordez des autorisations complètes à l’application 71392b2f-1765-406e-86af-5907d9bdb2ab propriétaire pour les appels délégués et d’application uniquement. En outre, accordez à une application 89ea5c94-7736-4e25-95ad-3fa95f62b6read invitée des autorisations et write uniquement pour les appels délégués.

Demande

PUT https://graph.microsoft.com/beta/storage/fileStorage/containerTypeRegistrations/de988700-d700-020e-0a00-0831f3042f00
Content-Type: application/json

{
  "applicationPermissionGrants": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegatedPermissions": ["full"],
      "applicationPermissions": ["full"]
    },
    {
      "appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
      "delegated": ["read", "write"],
      "appOnly": ["none"]
    }
  ]
}

Réponse

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

{
  "@odata.type": "#microsoft.graph.fileStorageContainerTypeRegistration",
  "id": "de988700-d700-020e-0a00-0831f3042f00",
  "name": "Test Container Type",
  "owningAppId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
  "billingClassification": "trial",
  "billingStatus": "valid",
  "registeredDateTime": "08/11/2025",
  "expirationDateTime": "08/11/2025",
  "etag": "RVRhZw==",
  "settings": {
    "@odata.type": "microsoft.graph.fileStorageContainerTypeRegistrationSettings",
    "sharingCapability": "disabled",
    "urlTemplate": "https://app.contoso.com/redirect?tenant={tenant-id}&drive={drive-id}&folder={folder-id}&item={item-id}",
    "isDiscoverabilityEnabled": true,
    "isSearchEnabled": true,
    "isItemVersioningEnabled": true,
    "itemMajorVersionLimit": 50,
    "maxStoragePerContainerInBytes": 104857600,
    "isSharingRestricted": false
  },
  "applicationPermissionGrants": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegatedPermissions": ["full"],
      "applicationPermissions": ["full"]
    },
    {
      "appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
      "delegated": ["read", "write"],
      "appOnly": ["none"]
    }
  ]
}