Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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"]
}
]
}