Permisos de complementos en SharePoint

Antes de leer este artículo, debe familiarizarse primero con el tema Autorización y autenticación de complementos de SharePoint.

Durante la instalación, un complemento de SharePoint solicita los permisos que necesita del usuario que lo instale. El desarrollador de un complemento debe solicitar, mediante el archivo de manifiesto del complemento, los permisos que el complemento concreto tiene que ejecutar. (El usuario que ejecuta el complemento debe conceder permisos en tiempo de ejecución a las aplicaciones web y de dispositivo que acceden a SharePoint, pero no están instaladas en sitios web de SharePoint. Para obtener más información, vea Flujo de OAuth del código de autorización para complementos de SharePoint).

Los usuarios solo pueden conceder los permisos que tengan. El usuario debe conceder todos los permisos que un complemento solicita o no conceder ninguno. Las concesiones selectivas no son posibles. (En el caso de complementos que solicitan permisos al instante, solo un usuario con permisos Manage en los recursos de SharePoint a los que el complemento intenta tener acceso puede ejecutar el complemento, aunque este solo pida permisos inferiores, por ejemplo, Read).

Los permisos que se han concedido al complemento también se almacenan en la base de datos de contenido de la granja de SharePoint o del espacio empresarial de SharePoint Online. No se almacenan con un servicio de token seguro, como Microsoft Azure Access Control Service (ACS). La primera vez que un usuario concede permisos a un complemento, SharePoint obtiene información sobre el complemento de ACS. SharePoint almacena la información básica sobre el complemento en el servicio de administración de complementos y la base de datos de contenido con los permisos del complemento. Para obtener más información sobre ACS, vea Crear Complementos de SharePoint que usan la autorización de confianza baja.

Importante

Azure Access Control (ACS), un servicio de Azure Active Directory (Azure AD), se retirará el 7 de noviembre de 2018. La retirada de este producto no afecta al modelo de complemento de SharePoint, que usa el nombre de host https://accounts.accesscontrol.windows.net (que no est? afectado por esta retirada). Para obtener más información, vea Impacto de la retirada de Azure Access Control para Complementos de SharePoint.

Si se elimina un objeto al que un complemento le ha concedido permiso, se eliminarán también las concesiones correspondientes. Cuando se recicla un objeto al que un complemento le ha concedido permiso, SharePoint no modifica la concesión correspondiente. Por lo que si el objeto se restaura de la Papelera de reciclaje, la concesión permanece intacta.

Al quitar un complemento, se revocan todos los permisos concedidos a ese complemento en el ámbito del cual se quitó. Esto es así para asegurar que el complemento no pueda usar sus credenciales para seguir accediendo de forma remota a los recursos de SharePoint protegidos después de que un usuario elimine el complemento de SharePoint.

Tipos de permisos de complementos y ámbitos de permisos

Un Complemento de SharePoint usa solicitudes de permisos para especificar los permisos que necesita para su correcto funcionamiento. Las solicitudes de permiso especifican los derechos que necesita un complemento y el ámbito que necesita esos derechos. Estos permisos se solicitan como parte del manifiesto del complemento.

Los ámbitos de solicitud de permiso indican la ubicación en la jerarquía de SharePoint donde se aplica una solicitud de permiso.

Nota:

Un complemento de SharePoint tiene su propia identidad y es una entidad de seguridad, denominada entidad de seguridad del complemento. Como los usuarios y grupos, una entidad de seguridad del complemento tiene ciertos permisos o derechos. La entidad de seguridad del complemento tiene derechos de control total en la web de complemento, por lo que solo debe solicitar permisos para los recursos de SharePoint en la web de host o en otras ubicaciones fuera de la web de complemento. Para obtener más información sobre la web de complemento, vea Aspectos importantes de la arquitectura y el entorno de desarrollo de los complementos de SharePoint y Webs de host, webs de complementos y componentes de SharePoint en SharePoint.

SharePoint es compatible con cuatro ámbitos de permisos distintos en la base de datos de contenido y el espacio empresarial, tal y como se muestra en la tabla 1. Los ámbitos de permisos se denominan con identificadores URI, que incluyen un prefijo "http:", pero no se trata de direcciones URL y no contienen marcadores de posición. Los ámbitos de permisos en esta tabla y este artículo son cadenas literales.

Tabla 1. Descripciones y URI del ámbito de solicitud de permisos de complementos de SharePoint

Ámbito URI de ámbito Descripción
Espacio empresarial http://sharepoint/content/tenant El inquilino donde está instalado el complemento. Incluye todos los elementos secundarios de este ámbito.
Colección de sitios http://sharepoint/content/sitecollection La colección de sitios donde está instalado el complemento. Incluye todos los elementos secundarios de este ámbito.
Sitio web http://sharepoint/content/sitecollection/web El sitio web donde está instalado el complemento. Incluye todos los elementos secundarios de este ámbito.
Lista http://sharepoint/content/sitecollection/web/list Lista única en el sitio web donde está instalado el complemento.

Cuando se pide al usuario que se instala el complemento que conceda permisos, el cuadro de diálogo permite al usuario seleccionar una sola lista en la que se conceden permisos al complemento.

Si el complemento necesita permiso para más de una lista, debe solicitar permiso para el ámbito de web.

Además, dado que usted, el desarrollador, no tiene ninguna manera de controlar qué lista elige el usuario o indicar al usuario cuál elegir, debe usar el ámbito web si hay una lista a la que el complemento debe tener permiso (pero hay una manera de restringir la elección del usuario a determinados subconjuntos de listas; consulte Ámbito de solicitud de permisos con propiedades asociadas).

Si se concede permiso a un complemento para uno de los ámbitos, el permiso se aplica a todos los elementos secundarios del ámbito. Por ejemplo, si se concede permiso a un complemento para un sitio web, también se concede permiso al complemento para cada lista contenida en el sitio web y a todos los elementos de lista que se encuentran en cada lista.

Dado que las solicitudes de permiso se realizan sin información sobre la topología de la colección de sitios donde se instala el complemento, el ámbito se expresa como un tipo en lugar de la dirección URL de una instancia específica. Estos tipos de ámbito se expresan como URI. Los permisos a los recursos que se almacenan en la base de datos de contenido de SharePoint se organizan en el siguiente URI: http://sharepoint/content.

Diferencias entre derechos de permisos de complementos y derechos de usuarios

Los permisos indican las actividades que puede hacer un complemento dentro del ámbito solicitado. SharePoint admite cuatro niveles de derechos en la base de datos de contenido. Para cada ámbito, un complemento puede tener los siguientes derechos:

  • Lectura
  • Escritura
  • Manage
  • FullControl

Nota:

Para obtener más información sobre los derechos Read, Write, Manage y FullControl que se incluyen, vea Planear la administración de permisos de aplicaciones de complementos.

Nota:

Estos derechos corresponden a los niveles de permisos de usuario predeterminados de SharePoint: Lector, Colaborador, Diseñador y Control total. Para obtener más información sobre los niveles de permisos de usuario, vea Permisos de usuario y niveles de permisos. Para evitar confusiones entre los derechos de roles de usuario y los derechos de complementos, los nombres de los derechos de complementos no coinciden con los nombres de los derechos de roles de usuario de SharePoint. Dado que la personalización de permisos asociados a roles de usuario de SharePoint no afecta a los niveles de solicitud de permisos de complementos, los nombres de derechos de complementos no coinciden con los respectivos roles de usuario de SharePoint, excepto Control total, que no se puede personalizar con la interfaz de usuario de administración de permisos.

Además:

  • Solo para Search, un complemento puede tener derecho Query.

  • En algunos ámbitos de Microsoft Project Server 2013, también existen los derechos SubmitStatus o Elevate. En la mayoría de ámbitos de Project Server 2013, solo están disponibles los derechos Read y Write. Para obtener más información, vea la sección Descripción de los tipos de permisos de complementos y ámbitos de permisos de este artículo.

  • Para taxonomía, solo están disponibles los derechos Read y Write.

Nota:

Las aplicaciones de la Tienda Office tienen algunas restricciones sobre el tipo de derechos que un complemento puede solicitar. Para obtener más información, consulte la sección Tipos de permisos y ámbitos de permisos de complementos anteriormente en este artículo.

A diferencia de los roles de usuario de SharePoint, los niveles de estos derechos no se pueden personalizar. Esto es para garantizar que cuando, se concede una solicitud de permiso a un complemento, se le garantiza un conjunto predecible de capacidades al complemento y no se tiene en cuenta la posibilidad de concederle menos permisos de lo que se espera.

Un usuario no puede conceder a un complemento permisos que él mismo no tenga. Si un usuario intenta instalar un complemento que necesita más permisos de los que el usuario tiene, se muestra un mensaje de error al usuario informándole que no tiene permisos suficientes para conceder lo que solicita al complemento.

Los permisos que SharePoint no conoce, se ignoran. Esto significa que, si un complemento solicita un permiso que SharePoint no reconoce, todavía se puede instalar el complemento, pero no se pide al usuario que conceda el permiso y no se concede el permiso para el complemento.

Información sobre los ámbitos y permisos disponibles y las restricciones en los permisos de aplicaciones de la Tienda Office

Los diferentes ámbitos tienen disponibles conjuntos de derechos distintos para que un complemento los solicite. En esta sección se describen los conjuntos de derechos disponibles para cada ámbito. También se destacan las restricciones para los Complementos de SharePoint que se venden en la Tienda Office.

Derechos de las aplicaciones de Tienda Office

Para las aplicaciones de la Tienda Office solo se permiten los derechos Read, Write y Manage. Si trata de enviar una aplicación a la Tienda Office que necesite derechos FullControl, el envío de la aplicación se bloquea. Como el bloqueo se realiza en la canalización de envío de la Tienda Office, las aplicaciones que necesitan más que permisos Manage se pueden seguir enviando mediante el catálogo de complementos.

Ámbitos de solicitud de permisos para contenido de la lista y contenido de la biblioteca

La tabla 2 muestra el ámbito de solicitud de permisos para el contenido de la biblioteca y la lista. También muestra los derechos que se pueden especificar para cada URI de ámbito.

Nota:

Los URI usados en la tabla 2 son valores literales.

Tabla 2. URI del ámbito de solicitud de permisos de complementos de SharePoint y derechos disponibles

URI de ámbito Derechos disponibles
http://sharepoint/content/sitecollection Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web/list Read, Write, Manage, FullControl
http://sharepoint/content/tenant Read, Write, Manage, FullControl

El siguiente código muestra cómo usar derechos y ámbitos de permisos en el archivo AppManifest.xml. En el primer ejemplo, un complemento solicita acceso Write en el ámbito de la lista.

  <?xml version="1.0" encoding="utf-8" ?>
  <App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
      ProductID="{4a07f3bd-803d-45f2-a710-b9e944c3396e}"
      Version="1.0.0.0"
      SharePointMinVersion="15.0.0.0"
      Name="MySampleAddIn"
  >
    <Properties>
      <Title>My Sample Add-in</Title>
      <StartPage>~remoteAppUrl/Home.aspx?{StandardTokens}</StartPage>
    </Properties>

    <AppPrincipal>
      <RemoteWebApplication ClientId="1ee82b34-7c1b-471b-b27e-ff272accd564" />
    </AppPrincipal>

    <AppPermissionRequests>
      <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write"/>
    </AppPermissionRequests>
  </App>

El siguiente código muestra un complemento que solicita acceso Read en el ámbito de la web y acceso Write en el ámbito de la lista.

  <?xml version="1.0" encoding="utf-8" ?>
  <App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
      ProductID="{4a07f3bd-803d-45f2-a710-b9e944c3396e}"
      Version="1.0.0.0"
      SharePointMinVersion="15.0.0.0"
      Name="MySampleAddIn"
  >
    <Properties>
      <Title>My Sample Add-in</Title>
      <StartPage>~remoteAppUrl/Home.aspx?{StandardTokens}</StartPage>
    </Properties>

    <AppPrincipal>
      <RemoteWebApplication ClientId="6daebfdd-6516-4506-a7a9-168862921986" />
    </AppPrincipal>

    <AppPermissionRequests>
      <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/>
      <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write"/>
    </AppPermissionRequests>
  </App>

Ámbitos de solicitud de permisos para otras características de SharePoint

Los ámbitos de solicitud de permisos de otras características de SharePoint se muestran en las tablas siguientes.

Nota:

Los URI usados en las tablas son valores literales.

La tabla 3 muestra el ámbito de solicitud de permisos para Servicios de conectividad empresarial (BCS). También muestra los derechos que se pueden especificar para ese URI de ámbito.

Tabla 3. URI del ámbito de solicitud de permisos de complementos de BCS y derechos disponibles

URI de ámbito Derechos disponibles
http://sharepoint/bcs/connection Read

Nota:

Para obtener más información sobre el ámbito de solicitud de permisos de complementos de BCS, vea Servicios de conectividad empresarial de SharePoint.


La tabla 4 muestra el ámbito de solicitud de permisos para Search. También muestra los derechos que se pueden especificar para ese URI de ámbito.

Tabla 4. URI del ámbito de solicitud de permisos de complementos de Search y derechos disponibles

URI de ámbito Derechos disponibles
http://sharepoint/search QueryAsUserIgnoreAppPrincipal

Nota:

Para obtener más información sobre el ámbito de solicitud de permisos de complementos de búsqueda, vea Buscar en SharePoint.


La tabla 5 muestra el ámbito de solicitud de permisos para Project Server 2013. También enumera los derechos que se pueden especificar para cada URI de ámbito. > [! NOTA] > Un complemento que usa características y servicios de Project Server 2013 debe probarse en un entorno que tenga las características y servicios necesarios de Project Server. El ensamblado del proveedor de permisos de Project Server 2013 que conoce los ámbitos de permisos de Project Server 2013 no se instala de manera predeterminada con SharePoint Server. Para obtener más información, vea la documentación del desarrollador de Project Server 2013.

Tabla 5. URI del ámbito de solicitud de permisos de complementos de Project Server y derechos disponibles

Ámbito Derechos disponibles
http://sharepoint/projectserver Manage
http://sharepoint/projectserver/projects Read, Write
http://sharepoint/projectserver/projects/project Read, Write
http://sharepoint/projectserver/enterpriseresources Read, Write
http://sharepoint/projectserver/statusing SubmitStatus
http://sharepoint/projectserver/reporting Read
http://sharepoint/projectserver/workflow Elevate

La tabla 6 muestra el ámbito de solicitud de permisos para funciones sociales. También enumera los derechos que se pueden especificar para cada URI de ámbito.

Tabla 6. URI del ámbito de solicitud de permisos de complementos de funciones sociales y derechos disponibles

Nombre de ámbito Descripción Derechos disponibles
Perfiles de usuario
http://sharepoint/social/tenant
Ámbito de la solicitud de permiso utilizado para acceder a todos los perfiles de usuario. Solo se puede cambiar la imagen de perfil; todas las demás propiedades de perfil de usuario son de solo lectura para complementos de SharePoint. Debe ser instalado por un administrador de inquilinos. Read, Write, Manage, FullControl
Incorporación principal
http://sharepoint/social/core
El ámbito de solicitud de permiso utilizado para tener acceso el usuario contenido seguido y shared metadatos que se usan en las características de microblogs. Este ámbito sólo se aplica a los sitios personales que admiten después de contenido. Si la aplicación se instala en cualquier otro tipo de sitio, use el ámbito de inquilino. Read, Write, Manage, FullControl
Fuente de noticias
http://sharepoint/social/microfeed
El ámbito de solicitud de permiso que se usa para tener acceso a la fuente del usuario o la fuente del equipo. Este ámbito se aplica a los sitios personales que admiten microblogs o a los sitios de equipo donde se activa la característica de Fuente de sitio. Si la aplicación se instala en cualquier otro tipo de sitio, use el ámbito de inquilino. Read, Write, Manage, FullControl
http://sharepoint/social/trimming Este ámbito de solicitud de permiso se utiliza para determinar si se va a mostrar el contenido de restricciones de seguridad en la fuente social a las aplicaciones. Si no se concede este permiso de confianza elevada, se recorta parte del contenido (por ejemplo, las actividades sobre documentos y sitios que la aplicación no tiene permisos para) de los datos de la fuente que se devuelven a la aplicación, incluso si el usuario tiene permisos suficientes. Este permiso debe agregarse manualmente al archivo de manifiesto de la aplicación. Read, Write, Manage, FullControl

Nota:

Para obtener más información sobre el ámbito de solicitud de permisos de complementos de características sociales, vea Solicitudes de permisos de complementos para obtener acceso a características sociales.


La tabla 7 muestra el ámbito de solicitud de permisos para taxonomía. También muestra los derechos que se pueden especificar para ese URI de ámbito.

Tabla 7. URI del ámbito de solicitud de permisos de complementos de taxonomía y derechos disponibles

URI de ámbito Derechos disponibles
http://sharepoint/taxonomy Read, Write

Nota:

Para obtener más información sobre el ámbito de solicitud de permisos de complementos de taxonomía, vea Agregar capacidades de SharePoint.

Ámbito de solicitud de permisos con propiedades asociadas

El ámbito de solicitud de permisos de lista tiene una propiedad adicional opcional. El ámbito de lista puede tomar una propiedad con el nombre BaseTemplateId y un valor entero correspondiente a una plantilla base de lista, tal y como se muestra en el siguiente ejemplo de marcado. Sin un identificador de plantilla base, el usuario que instale el complemento tiene la opción de concederle permiso para una lista entre todas las listas en la web. La especificación de un identificador de plantilla base limita la elección del usuario en el conjunto de listas que coinciden con lo especificado por la propiedad BaseTemplateId.

La propiedad BaseTemplateId es un elemento secundario, no un atributo del elemento AppPermissionRequest. El siguiente código muestra cómo usar la propiedad BaseTemplateId.

  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write">
    <Property Name="BaseTemplateId" Value="101"/>
  </AppPermissionRequest>

Tabla 8. Ámbito de solicitud de permisos con propiedades asociadas

URI de ámbito Propiedad Type
http://sharepoint/content/sitecollection/web/list BaseTemplateId Entero

Nota:

Para más información sobre BaseTemplateId y el correspondiente valor entero para la plantilla de lista base, vea el atributo Type de Elemento List (Lista).

Administrar y solucionar problemas de permisos de complementos

A los complementos de SharePoint que se instalan en SharePoint se conceden permisos cuando se instalan. A los complementos que están instalados en otras plataformas pero tienen acceso a SharePoint, les concede permisos en tiempo de ejecución el usuario que ejecuta el complemento. En ocasiones, es posible que el primer tipo de complemento pierda sus permisos. Para volver a conceder permisos a un complemento, siga estos pasos:

  1. En la página Contenido del sitio del sitio web donde el complemento parece haber perdido los permisos, haga clic en el botón del título del complemento. Se abrirá una llamada con un vínculo PERMISOS u otro botón ....

  2. Seleccione el vínculo PERMISOS (si está presente) y vaya al paso siguiente o seleccione el botón ....

  3. Seleccione el vínculo Permisos.

  4. En la página que se abre, seleccione aquí en la última oración. Se volverán a conceder los permisos al complemento y el explorador volverá a redirigirse a la página Contenido del sitio.

Volver a conceder permisos a una aplicación


Al desarrollar o solucionar problemas de un complemento, en ocasiones querrá cambiar o volver a conceder los permisos de un complemento que ya está instalado. Para ello, siga estos pasos:
  1. Vaya a http://{SharePointWebSite}_layouts/15/AppInv.aspx, donde <SharePointWebSite> es la dirección URL del sitio web donde está instalado el complemento. Tenga cuidado de no agregar ningún parámetro de consulta a la dirección URL. El formulario que necesita solo aparece en esta página si se usa exactamente la misma dirección URL que se indica.

  2. Escriba el identificador de complemento, también denominado identificador de cliente, en el cuadro Id. de complemento: y seleccione Búsqueda. Los demás cuadros del formulario se rellenan seguidamente con información sobre el complemento.

  3. Rellene el cuadro XML de solicitud de permiso con las solicitudes de permisos exactamente como las especificaría en un manifiesto de complemento. Encontrará ejemplos en la sección Ámbitos de solicitud de permisos para contenido de la lista y contenido de la biblioteca. Para obtener la sintaxis completa, vea Elemento AppPermissionRequest.

  4. Seleccione Crear.

Los permisos de un complemento de un ámbito específico se revocan al quitarlo de ese ámbito.

Sepa por qué los complementos no se pueden ocultar a los usuarios

Un usuario con permisos de exploración en un sitio web de SharePoint puede iniciar cualquier complemento de SharePoint instalado en el sitio. Lo que el usuario puede hacer con el complemento depende de los demás permisos del usuario y del tipo de directiva de autorización que se usa en el complemento. Si el usuario intenta hacer algo con el complemento para lo que carece de permiso y la llamada a SharePoint utiliza la directiva de usuario+complemento, la llamada no se realiza.

Ver también