Compartir a través de


Registro de permisos de aplicación de tipo contenedor de almacenamiento de archivos

Para que una aplicación de SharePoint Embedded interactúe con contenedores en un inquilino de consumo, primero debe registrarse el tipo de contenedor en el inquilino de consumo. El registro de tipo de contenedor se produce cuando la aplicación propietaria invoca la API de registro para especificar cómo las aplicaciones pueden acceder a su tipo de contenedor. La API de registro también concede acceso a otras aplicaciones invitadas para interactuar con los contenedores de la aplicación propietaria. Por ejemplo, una aplicación de SharePoint Embedded puede conceder permisos a otra aplicación: una aplicación invitada para que la aplicación invitada pueda realizar operaciones de copia de seguridad en sus contenedores.

Puesto que la API de registro de tipo de contenedor controla el acceso a un tipo de contenedor en el inquilino de consumo, es el primer punto de conexión invocado por una aplicación de SharePoint Embedded en un inquilino de consumo. Si no lo hace, se producirán errores de acceso denegado al invocar otras API en contenedores o contenido de los contenedores.

No hay ninguna restricción sobre cuántas veces se puede invocar la API de registro. La frecuencia con la que se invoca la API de registro y cuándo se invoca depende de la aplicación de SharePoint Embedded. Sin embargo, la última llamada correcta a la API de registro determina la configuración usada en el inquilino de consumo.

Requisitos de autenticación y autorización

Para que la aplicación propietaria del tipo de contenedor actúe en un inquilino consumidor, se deben completar algunos requisitos previos:

  • la aplicación propietaria debe tener una entidad de servicio instalada en el inquilino de consumo
  • a la aplicación propietaria se le debe conceder el consentimiento del administrador para realizar el registro de tipos de contenedor en el inquilino de consumo.

Para satisfacer estos requisitos, debe hacer que el administrador global del inquilino de consumo conceda el consentimiento del administrador a la aplicación propietaria del tipo de contenedor.

La API de registro de tipos de contenedor requiere el permiso delegado por el FileStorageContainerTypeReg.Selected usuario o solo para la aplicación. Cuando la aplicación propietaria llama a la API de registro de tipos de contenedor en nombre de un usuario, el usuario debe tener asignados los roles Administrador de SharePoint Embedded o Administrador global . Cuando la aplicación propietaria llama a la API de registro de tipos de contenedor sin un contexto de usuario, debe solicitar un token mediante el flujo de concesión de credenciales de cliente.

Nota:

La API de registro de tipo de contenedor está actualmente en versión preliminar y está sujeta a cambios.

Para solicitar el consentimiento del administrador de un inquilino en el inquilino de consumo, puede dirigirlo al punto de conexión de consentimiento del administrador. Para ver los puntos de conexión correctos en nubes nacionales, consulte Plataforma de identidad de Microsoft puntos de conexión en nubes nacionales:

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

Puede configurar el punto de conexión de consentimiento del administrador para que se adapte a sus necesidades, incluido el control de errores y concesiones correctas. Para obtener más información, consulte Administración URI de consentimiento.

Permisos de tipo de contenedor

La API de registro determina qué permisos puede realizar una aplicación de SharePoint Embedded en contenedores y contenido en contenedores para el tipo de contenedor especificado.

Permiso Descripción
Ninguno No tiene permisos para ningún contenedor o contenido de este tipo de contenedor.
ReadContent Puede leer el contenido de los contenedores de este tipo de contenedor.
WriteContent Puede escribir contenido en contenedores para este tipo de contenedor. Esto no se puede conceder sin el permiso ReadContent.
Crear Puede crear contenedores de este tipo de contenedor.
Eliminar Puede eliminar contenedores de este tipo de contenedor.
Lectura Puede leer los metadatos de los contenedores de este tipo de contenedor.
Escritura Puede actualizar los metadatos de los contenedores de este tipo de contenedor.
EnumeratePermissions Puede enumerar los miembros de un contenedor y sus roles para contenedores de este tipo de contenedor.
AddPermissions Puede agregar miembros al contenedor para contenedores de este tipo de contenedor.
UpdatePermissions Puede actualizar (cambiar roles de) pertenencias existentes en el contenedor para contenedores de este tipo de contenedor.
DeletePermissions Puede eliminar otros miembros (pero no uno mismo) del contenedor para contenedores de este tipo de contenedor.
DeleteOwnPermissions Puede quitar la pertenencia propia del contenedor para contenedores de este tipo de contenedor.
ManagePermissions Puede agregar, quitar (incluido el autoservicio) o actualizar miembros en los roles de contenedor para contenedores de este tipo de contenedor.
ManageContent Puede administrar el contenido del contenedor.
Full Tiene todos los permisos para contenedores de este tipo de contenedor.

Ejemplos

Registro del tipo de contenedor en un inquilino de consumo con permisos solo para la aplicación propietaria

Registre el tipo de988700-d700-020e-0a00-0831f3042f00 de contenedor en el inquilino de consumo y conceda full permisos a la aplicación 71392b2f-1765-406e-86af-5907d9bdb2ab propietaria para las llamadas delegadas y solo de aplicación.

Solicitud

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

Respuesta

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

Registro del tipo de contenedor en un inquilino de consumo con permisos para una aplicación invitada

Registre el tipo de988700-d700-020e-0a00-0831f3042f00 de contenedor en el inquilino de consumo y conceda permisos completos a la aplicación 71392b2f-1765-406e-86af-5907d9bdb2ab propietaria para llamadas delegadas y solo de aplicación. Además, conceda a una aplicación 89ea5c94-7736-4e25-95ad-3fa95f62b6 invitada permisos y write solo read para llamadas delegadas.

Solicitud

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

Respuesta

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