Разрешения для надстроек SharePoint

Прежде чем читать эту статью, необходимо ознакомиться со статьей Авторизация и проверка подлинности надстроек SharePoint.

Во время установки надстройка SharePoint запрашивает у пользователя необходимые ей разрешения. Разработчик надстройки должен запросить (с помощью манифеста) разрешения, необходимые для работы надстройки. (Устройства и веб-приложения, которые обращаются к SharePoint, но не устанавливаются на веб-сайты SharePoint, должны быть предоставлены разрешения во время выполнения пользователем, который выполняет надстройку. Дополнительные сведения см. в разделе Поток OAuth кода авторизации для надстроек SharePoint.)

Пользователи могут предоставлять только те разрешения, которые есть у них. Пользователь может предоставить надстройке либо все запрашиваемые разрешения, либо никаких. Выборочно предоставлять разрешения невозможно. Надстройки, запрашивающие разрешения во время выполнения, могут запускать только пользователи с разрешениями на управление теми ресурсами SharePoint, к которым обращается надстройка (даже если надстройка запрашивает разрешения более низкого уровня, например Read).

Предоставленные надстройке разрешения также хранятся в базе данных контента в ферме SharePoint или области клиентов SharePoint Online. Они не хранятся в службе токенов безопасности, такой как служба контроля доступа Microsoft Azure (ACS). Когда пользователь предоставляет надстройке разрешения, SharePoint получает сведения о ней из ACS. Затем SharePoint сохраняет базовые сведения о надстройке в службе управления надстройками и базе данных контента вместе с разрешениями надстройки. Дополнительные сведения об ACS см. в статье Создание надстроек SharePoint, использующих авторизацию с низким уровнем доверия.

Важно!

Служба контроля доступа Azure (ACS), которая входит в состав Azure Active Directory (Azure AD), будет упразднена 7 ноября 2018 г. Это не влияет на модель надстроек SharePoint, использующую имя узла https://accounts.accesscontrol.windows.net (на который также не влияет это прекращение работы службы). Дополнительные сведения см. в статье Влияние упразднения службы контроля доступа Azure на надстройки SharePoint.

При удалении объекта, разрешения для которого предоставлены надстройке, также удаляются соответствующие разрешения. Когда объект, разрешения для которого предоставлены надстройке, перемещается в корзину, SharePoint не меняет соответствующие разрешения. Это нужно для того, чтобы в случае восстановления объекта из корзины разрешение сохранилось.

При удалении надстройки отзываются все разрешения, предоставленные ей для области, из которой она удаляется. Это необходимо для того, чтобы надстройка не могла использовать свои учетные данные для удаленного доступа к защищенным ресурсам SharePoint после того, как пользователь удалит ее из SharePoint.

Типы и области разрешений надстройки

С помощью запросов Надстройка SharePoint получает разрешения, необходимые для ее правильной работы. В запросах разрешений указываются как права, требуемые надстройке, так и область их действия. Разрешения запрашиваются в рамках манифеста надстройки.

Области запросов разрешений указывают расположение в иерархии SharePoint, на которое распространяется запрос на получение разрешений.

Примечание.

У надстройки SharePoint есть собственное удостоверение, и она является субъектом безопасности (т. н. субъектом надстройки). Подобно пользователям и группам, субъект надстройки обладает определенными разрешениями или правами. Субъект надстройки обладает правами на полный доступ к сайту надстройки, поэтому ему достаточно запрашивать разрешения для ресурсов SharePoint на хост-сайте или в других расположениях за пределами сайта надстройки. Дополнительные сведения о сайте надстройки см. в статьях Важные аспекты разработки и архитектуры для надстроек SharePoint и Хост-сайты, сайты надстроек и компоненты SharePoint в SharePoint.

SharePoint поддерживает четыре области разрешений в базе данных контента и области клиентов, как показано в таблице 1. Имена областей разрешений представляют собой URI, включающие префикс "http:", но они не являются URL-адресами и не содержат заполнителей. Области разрешений, описанные в этой таблице и данной статье, представляют собой строковые литералы.

Таблица 1. URI и описания области запроса разрешений надстройки SharePoint

Область URI области Описание
Клиент http://sharepoint/content/tenant Область клиента, в которой установлена надстройка. Включает все дочерние элементы данной области.
Семейство веб-сайтов http://sharepoint/content/sitecollection Семейство веб-сайтов, в котором установлена надстройка. Включает все дочерние элементы данной области.
Веб-сайт http://sharepoint/content/sitecollection/web Веб-сайт, на котором установлена надстройка. Включает все дочерние элементы данной области.
Список http://sharepoint/content/sitecollection/web/list Один список на веб-сайте, где устанавливается надстройка.

Когда пользователю, устанавливающему надстройку, предлагается предоставить разрешения, он может выбрать в диалоговом окне один список, разрешения для которого будут предоставлены надстройке.

Если надстройке нужны разрешения для нескольких списков, необходимо запросить разрешения для области сайта.

Кроме того, так как вы, разработчик, не можете контролировать, какой список выбирает пользователь, или сообщить пользователю, какой из них выбрать, вы должны использовать область веб-сайта, если есть список, для которого надстройка должна иметь разрешения (но существует способ сузить выбор пользователя до определенных подмножеств списков; см. раздел Область запроса разрешений с связанными свойствами.)

Если надстройке предоставлено разрешение на одну из областей, оно применяется ко всем дочерним элементам в этой области. Например, если надстройке предоставлено разрешение на доступ к веб-сайту, ей также предоставляется разрешение на доступ ко всем спискам на веб-сайте и всем элементам этих списков.

Запросы разрешений не содержат сведения о топологии семейства веб-сайтов, где установлена надстройка, поэтому область выражена как тип, а не как URL-адрес конкретного экземпляра. Эти типы области выражаются как идентификаторы URI. Разрешения для ресурсов, хранящихся в базе данных контента SharePoint, упорядочиваются по следующему URI: http://sharepoint/content.

Различия между правами для надстроек и пользователей

Разрешения определяют действия, которые надстройке разрешено выполнять в рамках данной области. SharePoint поддерживает четыре уровня прав на доступ к базе данных контента. В каждой области надстройка может иметь следующие права:

  • Read
  • Write
  • Manage
  • FullControl

Примечание.

Дополнительные сведения о составе прав Read, Write, Manage и FullControl см. в статье Планирование управления разрешениями надстроек.

Примечание.

Эти права соответствуют стандартным уровням разрешений пользователей в SharePoint: "Читатель", "Участник", "Дизайнер" и "Полный доступ". Дополнительные сведения об уровнях разрешений пользователей см. в статье Разрешения пользователей и уровни разрешений. Во избежание путаницы, названия прав для надстроек не совпадают с названиями прав для ролей пользователей SharePoint. Так как настройка разрешений, связанных с ролями пользователей SharePoint, не влияет на уровни разрешений, запрашиваемых надстройками, названия прав надстроек отличаются от названий соответствующих ролей пользователей SharePoint, за исключением права на полный доступ, которое невозможно настроить через пользовательский интерфейс управления разрешениями.

Кроме того:

  • У надстройки может быть право на выполнение запросов только в области поиска.

  • Для некоторых областей Microsoft Project Server 2013 также доступно право SubmitStatus или Elevate. Для большинства областей Project Server 2013 доступны только разрешения Read и Write. Дополнительные сведения см. в разделе Типы и области разрешений надстройки этой статьи.

  • Для таксономии доступны только права Read и Write.

Примечание.

В приложениях из Магазина Office есть некоторые ограничения на типы запрашиваемых надстройкой разрешений. Дополнительные сведения см. в разделе Типы разрешений и области разрешений надстроек ранее в этой статье.

В отличие от ролей пользователей SharePoint, эти уровни прав не настраиваются. Это позволяет гарантировать, что при предоставлении надстройке запроса на разрешение надстройке гарантируется прогнозируемый набор возможностей и она не должна учитывать возможность предоставления меньше разрешений, чем ожидалось.

Пользователь не может предоставить надстройке разрешения, которых у него нет. При попытке установить надстройку, которой требуется больше разрешений, чем есть у пользователя, отображается соответствующее сообщение об ошибке.

Разрешения, которые неизвестны системе SharePoint, игнорируются. Это означает, что если надстройка запрашивает разрешение, которое не распознается системой SharePoint, эту надстройку можно установить, но она не запрашивает разрешение у пользователя и не получает его.

Доступные области и разрешения, а также ограничения, связанные с разрешениями надстроек из Магазина Office

Различные области имеют разные наборы прав, которые может запросить надстройка. В этом разделе описываются наборы прав, доступные для каждой области. В нем также рассматриваются ограничения на Надстройки SharePoint, которые продаются через Магазин Office.

Права надстроек Магазин Office

Для надстроек из Магазин Office доступны только права на чтение, запись и управление. Если вы попытаетесь отправить в Магазин Office надстройку, требующую права на полный доступ, отправка будет заблокирована. Поскольку блокировка происходит в процессе отправки в Магазин Office, надстройки, которые запрашивают уровень разрешений выше, чем "Управление", можно развертывать через каталог надстроек.

Области запросов на получение разрешений для содержимого списков и библиотек

В таблице 2 показаны области запросов на получение разрешений для содержимого списков и библиотек, а также перечислены права, которые можно указать для универсального кода ресурса (URI) каждой области.

Примечание.

URI, используемые в таблице 2, являются литералами.

Табл. 2. URI области разрешений надстройки SharePoint и доступные права

URI областей Доступные права
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 Чтение, запись, управление, полный доступ

В следующем фрагменте кода демонстрируется использование областей разрешений и прав в файле AppManifest.xml. В первом примере надстройка запрашивает разрешение на чтение для области списка.

  <?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>

В приведенном ниже фрагменте кода надстройка запрашивает разрешение Read для области сайта и разрешение Write для области списка.

  <?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>

Области запросов на получение разрешений для других компонентов SharePoint

В приведенных ниже таблицах перечислены области разрешений для других компонентов SharePoint.

Примечание.

URI в этих таблицах являются литералами.

В таблице 3 показана область запроса разрешений для служб Business Connectivity Services (BCS). В ней также указаны права, которые можно задать для URI области.

Табл. 3. URI области запроса разрешений надстройки BCS и доступные права

URI областей Доступные права
http://sharepoint/bcs/connection Read

Примечание.

Дополнительные сведения об области разрешений служб BCS для надстроек см. в статье Службы Business Connectivity Services в SharePoint.


В таблице 4 показана область запроса разрешений для поиска. В ней также указаны права, которые можно задать для URI области.

Табл. 4. Поиск URI области запроса разрешений надстройки и доступные права

URI областей Доступные права
http://sharepoint/search QueryAsUserIgnoreAppPrincipal

Примечание.

Дополнительные сведения об области разрешений службы поиска для надстроек см. в статье Поиск в SharePoint.


В таблице 5 показана область запроса разрешений для Project Server 2013. В ней также перечислены права, которые можно указать для универсального кода ресурса (URI) каждой области. > [! ПРИМЕЧАНИЕ] > Надстройка, использующая функции и службы Project Server 2013, должна быть протестирована в среде с необходимыми функциями и службами Project Server. Сборка поставщика разрешений Project Server 2013, включающая сведения об областях разрешений Project Server 2013, не устанавливается в SharePoint Server по умолчанию. Дополнительные сведения см. в документации по Project Server 2013 для разработчиков.

Табл. 5. URI области запроса разрешений надстройки Project Server и доступные права

Область Доступные права
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 Повышение прав

В таблице 6 показана область запроса разрешений для социальных функций. В ней также перечислены права, которые можно указать для универсального кода ресурса (URI) каждой области.

Табл. 6. URI области запроса разрешений надстроек социальных ролей и доступные права

Имя области Описание Доступные права
Профили пользователей
http://sharepoint/social/tenant
Область запроса разрешений, используемая для доступа ко всем профилям пользователей. Изменить можно только изображение профиля; все остальные свойства профиля пользователя доступны только для чтения для надстроек SharePoint. Должен быть установлен администратором клиента. Read, Write, Manage, FullControl
Ядро
http://sharepoint/social/core
Область запроса разрешений, используемые для доступа к его отслеживаемого содержимого и общих метаданных, которую использует функции микроблогов. Область применяется только к личные сайты, которые поддерживают следующие материалы. Если приложение устанавливается на любой другой тип сайта, используйте уровне клиентов. Read, Write, Manage, FullControl
Веб-канал новостей
http://sharepoint/social/microfeed
Область запроса разрешений для доступа к его веб-канал или канал группы. Область применяется для личных сайтов, поддерживающих микроблогов или сайты рабочих групп, где активирован компонент Веб-каналов сайтов. Если приложение устанавливается на любой другой тип сайта, используйте уровне клиентов. Чтение, запись, управление, полный доступ
http://sharepoint/social/trimming Эта область запроса разрешений, служит для определения, следует ли отображать контент обрезать безопасности социальных веб-канала к приложениям. Если это разрешение высоким уровнем доверия не предоставлено, часть содержимого (например, действия о документах и сайты, которые приложение не имеет разрешений на) обрезать из веб-канала данных, который возвращается в приложение даже в том случае, если у пользователя есть достаточные разрешения. Это разрешение необходимо вручную добавить в файл манифеста приложения. Read, Write, Manage, FullControl

Примечание.

Дополнительные сведения об области запросов на получение разрешений надстроек для социальных медиа см. в статье Добавление разрешений надстроек для доступа к социальным медиа.


В таблице 7 показана область запроса разрешений для таксономии. В ней также указаны права, которые можно задать для URI области.

Табл. 7. URI области запроса разрешений надстройки таксономии и доступные права

URI областей Доступные права
http://sharepoint/taxonomy Read, Write

Примечание.

Дополнительные сведения об области запросов на получение разрешений надстроек для таксономии см. в статье Добавление возможностей SharePoint.

Область запросов на получение разрешений с соответствующими свойствами

У области запросов на получение разрешений для списков есть дополнительное необязательное свойство. Область списка может принимать свойство с именем BaseTemplateId и целочисленное значение, соответствующее базовому шаблону списка, как показано в приведенном ниже примере разметки. Если ИД базового шаблона не указан, то пользователь, устанавливающий надстройку, может предоставить ей разрешение на доступ к одному списку на сайте. Указав ИД базового шаблона, вы ограничите выбор пользователя определенным набором списков, соответствующим значению свойства BaseTemplateId.

Свойство BaseTemplateId это дочерний элемент, а не атрибут элемента AppPermissionRequest. В следующем коде демонстрируется использование свойства BaseTemplateId.

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

Табл. 8. Область запросов на получение разрешений с соответствующими свойствами

URI области Свойство Тип
http://sharepoint/content/sitecollection/web/list BaseTemplateId Integer

Примечание.

Подробнее о свойстве BaseTemplateId и соответствующем целочисленном значении для базового шаблона списка см. в описании атрибута TypeЭлемент List (List).

Управление разрешениями для надстроек и устранение связанных с ними неполадок

Надстройкам SharePoint, устанавливаемым в SharePoint, разрешения предоставляются во время установки. Надстройкам, которые устанавливаются на других платформах, но обращаются к SharePoint, пользователь предоставляет разрешения во время выполнения. Иногда надстройки первого типа могут терять свои разрешения. Чтобы повторно предоставить разрешения надстройке, выполните указанные ниже действия.

  1. Откройте страницу Контент сайта на том сайте, где надстройка потеряла разрешения, и нажмите кнопку ... на плитке надстройки. Откроется выноска со ссылкой Разрешения или еще одной кнопкой ....

  2. Если отображается ссылка Разрешения, перейдите по ней и пропустите следующий этап. В противном случае нажмите кнопку ....

  3. Перейдите по ссылке Разрешения.

  4. На открывшейся странице нажмите слово Здесь в последнем предложении. Надстройке снова будут предоставлены ее разрешения, а браузер будет перенаправлен на страницу Контент сайта.

Повторное предоставление разрешений приложению


Иногда во время разработки надстройки или устранения неполадок в ней требуется изменить или повторно предоставить разрешения уже установленной надстройке. Для этого выполните следующие действия.
  1. Перейдите в http://{SharePointWebSite}_layouts/15/AppInv.aspx, где <SharePointWebSite> — это URL-адрес веб-сайта, на котором установлена надстройка. Будьте осторожны, чтобы не добавить к URL-адресу никаких параметров запроса. Нужная форма появится на этой странице, только если используется именно такой URL-адрес.

  2. Введите ИД надстройки (также называемый идентификатором клиента) в поле Идентификатор надстройки, а затем нажмите кнопку Поиск. В остальных полях формы появятся сведения о надстройке.

  3. В поле XML-запрос разрешения введите запросы разрешений точно так же, как в манифесте надстройки. Примеры представлены в разделе Области запросов на получение разрешений для содержимого списков и библиотек. Полные сведения о синтаксисе см. в статье Элемент AppPermissionRequest.

  4. Нажмите кнопку Создать.

При удалении надстройки из определенной области отзываются ее разрешения для этой области.

Почему надстройки невозможно скрывать от пользователей

Любой пользователь с правами на просмотр веб-сайта SharePoint может запустить любую надстройку SharePoint, установленную на сайте. Другие разрешения пользователя и тип политики авторизации, используемой надстройкой, определяют, что пользователь может делать с этой надстройкой. Если пользователь попытается выполнить в надстройке действия, на которые у него нет разрешений, с помощью вызова SharePoint согласно политике "Для пользователей и надстроек", то вызов завершится ошибкой.

См. также