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 qué permisos se pueden realizar con 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 controla los permisos que una aplicación de SharePoint Embedded puede realizar en el contenedor del inquilino de consumo, esta llamada debe ser una de las primeras API invocadas. Si no lo hace, se producirán errores de acceso denegado al invocar otras API en el contenedor o en el 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; y
  • 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.

Nota:

Solo la aplicación propietaria del tipo de contenedor puede invocar la API de registro en el inquilino de consumo.

Ambos requisitos se pueden cumplir si un administrador de inquilinos del inquilino que consume concede consentimiento de administrador a la aplicación propietaria del tipo de contenedor.

La API de registro de tipos de contenedor requiere el Container.Selected permiso de solo aplicación para SharePoint (consulte Patrones de acceso excepcionales). Tendrá que usar el flujo de concesión de credenciales de cliente y solicitar un token con un certificado para usar la API de registro.

Nota:

La API de registro NO es una Graph API de Microsoft, sino una API de SharePoint. Esta API se migrará a Microsoft Graph en el futuro.

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>/adminconsent?client_id=<OwningTenantClientID>

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. Este permiso 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.
Full Tiene todos los permisos para contenedores de este tipo de contenedor.

Solicitud HTTP

PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions

Nota:

Esto NO es un Graph API

{RootSiteURL} es la dirección URL de SharePoint del inquilino que consume. Por ejemplo, https://contoso.sharepoint.com.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de los permisos de tipo de contenedor para las aplicaciones de SharePoint Embedded.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y los permisos de tipo de contenedor configurados para las aplicaciones de SharePoint Embedded en el cuerpo de la respuesta.

Código HTTP Descripción
400 Solicitud incorrecta.
401 La solicitud carece de credenciales de autenticación válidas.
403 Las credenciales de autenticación proporcionadas son válidas pero insuficientes para realizar la operación solicitada. Ejemplos: la aplicación que realiza la llamada no es la aplicación propietaria del tipo de contenedor.
404 El tipo de contenedor no existe.

Ejemplos

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

Registre el tipo de contenedor en el inquilino de consumo y conceda permisos completos a la aplicación propietaria (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) para las llamadas Delegadas y AppOnly.

Solicitud

PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json

{
  "value": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegated": ["full"],
      "appOnly": ["full"]
    }
  ]
}

Respuesta

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

{
  "value": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegated": ["full"],
      "appOnly": ["full"]
    }
  ]
}

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

Registre el tipo de contenedor en el inquilino de consumo y conceda permisos completos a la aplicación propietaria (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) para las llamadas Delegadas y AppOnly. Además, conceda a una aplicación invitada (AppId 89ea5c94-7736-4e25-95ad-3fa95f62b6) permisos de lectura y escritura solo para llamadas delegadas.

Solicitud

PUT /storagecontainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json

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

Respuesta

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

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