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.
Nota:
Solo la aplicación propietaria del tipo de contenedor puede invocar la API de registro en el inquilino de consumo.
La API de registro NO es un Graph API y solo se puede invocar mediante apponly y un token de acceso basado en certificados. Más información sobre la autenticación.
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 consumidor
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"]
}
]
}