Упаковка и публикация надстроек SharePoint с высоким уровнем доверия

Предварительные требования

Вам понадобится следующее:

  • Локальная среда разработки SharePoint. Инструкции по ее настройке см. в статье Настройка локальной среды для разработки надстроек SharePoint.

  • Веб-сервер IIS для размещения удаленного веб-приложения. Необходим установленный диспетчер IIS.

  • Среда Visual Studio, установленная удаленно или на том же компьютере, что и SharePoint.

  • Инструменты разработчика Microsoft Office для Visual Studio.

  • Средство веб-развертывания, установленное на компьютере с Visual Studio, и такая же версия средства веб-развертывания, установленная на сервере удаленного веб-приложения.

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

Таблица 1. Основные принципы настройки для публикации надстроек с высоким уровнем доверия

Название статьи Описание
Знакомство с созданием надстроек SharePoint с размещением у поставщика Узнайте, как создать базовую надстройку SharePoint, размещаемую у поставщика, с помощью Инструментов разработчика Office для Visual Studio.
Создание надстроек SharePoint с высоким уровнем доверия Узнайте, как создать простое Надстройка SharePoint с высоким уровнем доверия в Инструменты разработчика Office для Visual Studio с помощью самозаверяющего сертификата и соответствующего идентификатора издателя.
Веб-развертывание Веб-развертывание упрощает развертывание веб-приложений и веб-сайтов на серверах IIS.
Цифровые протоколы и
Работа с сертификатами
Изучите основы работы с цифровыми сертификатами.

Примечание.

Надстройки SharePoint с высоким уровнем доверия можно устанавливать только в локальной среде SharePoint и нельзя устанавливать в SharePoint Online. Они предназначены в первую очередь для использования с локальными (а не облачными) веб-приложениями. В этой статье описано, как опубликовать надстройку в таком случае. Кроме того, в этой статье под словом "пользователь" подразумевается предприятие, в котором устанавливается надстройка SharePoint и размещаются ее удаленные компоненты.

Регистрация надстройки с высоким уровнем доверия

Прежде чем публиковать надстройку, необходимо зарегистрировать ее в службе управления надстройками в ферме SharePoint. Надстройки SharePoint с высоким уровнем доверия всегда регистрируются в той ферме SharePoint, где планируется установить надстройку. Их невозможно продавать в Магазине Office. Регистрация выполняется на странице http://SharePoint_website/_layouts/15/appregnew.aspx, как описано в предыдущей процедуре.

Регистрация надстройки

  1. Перейдите на страницу http://SharePoint_website/_layouts/15/appregnew.aspx.

  2. Нажмите кнопки Создать, чтобы сгенерировать значения идентификатора и секрета надстройки. Секрет на самом деле не используется в надстройках SharePoint с высоким уровнем доверия, но его необходимо указать в форме.

  3. Укажите базовый URL-адрес домена, на котором будет выполняться удаленное веб-приложение надстройки. Не указывайте в доменном имени протокол (HTTPS). Однако следует указать порт, который удаленные компоненты будут использовать для HTTPS-запросов, если это не порт 443 (например, www.contoso.com:5555 orMyAppServer:4444).

  4. Если вам нужен URI перенаправления, укажите и это значение. Описание того, как можно использовать URI перенаправления, см. в статье Поток кода авторизации OAuth для надстроек SharePoint.

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

    Регистрация приложения на странице appregnew.aspx

  5. Нажмите кнопку Создать. Данные, указанные для надстройки, появятся на следующей странице. Убедитесь, что эти сведения доступны, так как они потребуются при использовании средств публикации Visual Studio. Рекомендуем сделать снимок экрана со страницей.

Выбор стратегии получения, обслуживания и развертывания сертификатов для надстроек SharePoint с высоким уровнем доверия

Когда разработчик использует клавишу F5 в Visual Studio для разработки и отладки надстройки SharePoint с высоким уровнем доверия, он может применять самозаверяющий сертификат, как описано в статье Создание надстроек SharePoint с высоким уровнем доверия. Однако если надстройка опубликована, то перед открытием начальной страницы удаленного веб-приложения в браузере появится страница с предупреждением. Пользователь должен решить, следует ли продолжать. На приведенном ниже рисунке показаны примеры таких предупреждений.

Предупреждения о самозаверяющих сертификатах

Предупреждения о самозаверяющих сертификатах в IE и Chrome

Это неудобство может быть приемлемо для разработчика, но оно недопустимо для пользователей. Таким образом, перед окончательной публикацией в рабочей среде пользователь должен получить сертификат, подписанный надежной третьей стороной. Это может быть коммерческий или локальный центр сертификации (ЦС). Что касается коммерческих ЦС, обратите внимание на то, что в отрасли больше не используются сертификаты "только для интрасети" на веб-серверах. Все такие сертификаты стали недействительными в ноябре 2016 г. Такие сертификаты необязательно использовать для надстроек SharePoint с высоким уровнем доверия, так как на веб-серверах интрасети можно использовать те же сертификаты, что и на веб-серверах с выходом в Интернет (хотя последний вариант обходится дороже).

Сертификат должен быть представлен в двух форматах: файла для обмена персональными данными (PFX) и сертификата безопасности (CER). Если он не был получен ни в одном из этих форматов, то пользователь может преобразовать его с помощью служебной программы. Получив версию в формате PFX, можно импортировать этот файл в IIS, а затем экспортировать CER-файл, как описано далее в этой статье.

Если сертификат был изначально получен в формате CER, то он содержит как открытый, так и закрытый ключи. Как правило, CER-файл, используемый в SharePoint, не должен содержать закрытый ключ. Рекомендуем импортировать исходный сертификат в IIS, а затем экспортировать версию в формате CER, не содержащую закрытый ключ, как описано ниже. Дополнительные сведения о PFX- и CER-файлах см. в статье Сертификат издателя программного обеспечения.

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

Настройка удаленного веб-сервера с помощью сертификата

Следующие процедуры выполняются на удаленном веб-сервере, на котором размещено удаленное веб-приложение.

Настройка удаленного веб-сервера и сертификата PFX

  1. Задайте надежный пароль для PFX-сертификата. Дополнительные сведения см. в статьях Рекомендации по созданию надежных паролей и Надежные пароли.

  2. Импортируйте сертификат в IIS на удаленном веб-сервере, выполнив указанные ниже действия.

    1. В диспетчере IIS выберите узел Имя сервера в представлении в виде дерева слева.

    2. Дважды щелкните значок Сертификаты сервера.

    3. Выберите пункт Импорт в области Действия справа.

    4. В диалоговом окне Импорт сертификата нажмите кнопку Обзор, найдите PFX-файл, а затем введите пароль сертификата.

    5. Если вы используете IIS Manager 8-й версии, то увидите список Выбор хранилища сертификатов. Выберите Личное. Имеется ввиду "личное" хранилище сертификатов компьютера, а не пользователя.

    6. Если у вас еще нет сертификата CER или в него включен закрытый ключ, установите флажок напротив пункта Разрешить экспортировать этот сертификат.

    7. Нажмите кнопку ОК.

Открытие хранилища сертификатов Windows

  1. На том же сервере откройте консоль управления (MMC), как описано в статье Запуск MMC 3.0.

  2. Добавьте оснастку Сертификаты для учетной записи компьютера, как описано в статье Добавление оснастки "Сертификаты" в MMC. Обязательно используйте процедуру для компьютера, а не для пользователя или службы. При появлении запроса выберите локальный компьютер, а не другой компьютер.

Если вы используете диспетчер служб ISS 8-й версии, следующую процедуру можно пропустить.

Дополнительные действия для получения сертификата в хранилище сертификатов Windows с помощью диспетчера IIS 7

  1. Создайте в файловой системе сервера папку, которая будет использоваться для кратковременного хранения сертификата.

  2. В диспетчере IIS выберите узел Имя сервера в представлении в виде дерева слева.

  3. Дважды щелкните значок Сертификаты сервера.

  4. В списке Сертификаты сервера щелкните сертификат правой кнопкой мыши и выберите пункт Экспорт.

    Экспорт тестового сертификата

  5. Экспортируйте файл в созданную вами папку и введите ее пароль.

  6. В консоли управления (MMC) импортируйте сертификат, как описано в статье Импорт сертификата. Не забудьте выбрать личное хранилище.

  7. Приступая к следующей процедуре, не закрывайте консоль.

  8. Удалите папку, созданную на первом этапе, и хранящийся в ней файл сертификата. С точки зрения безопасности не имеет смысла хранить сертификат в хранилище сертификатов, если он также доступен в файловой системе.

Следующая процедура применима к диспетчеру служб IIS 7-й и 8-й версий.

Чтобы получить серийный номер сертификата:

  1. В консоли управления (MMC) в оснастке Сертификаты (локальный компьютер) перейдите в папку Сертификаты под папкой Личные, если она еще не открыта.

  2. Дважды щелкните сертификат своей надстройки SharePoint, чтобы открыть его, а затем откройте вкладку Сведения.

  3. Выберите поле Серийный номер, чтобы серийный номер отображался полностью.

  4. Скопируйте серийный номер без пробелов в текстовый файл и передайте его разработчику надстройки SharePoint.

    Совет

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

Далее создайте CER-версию сертификата. Она содержит закрытый ключ удаленного веб-сервера и используется SharePoint, чтобы расшифровывать запросы от удаленного веб-приложения и проверять маркеры доступа в этих запросах. Эта версия создается на удаленном веб-сервере, а затем перемещается на ферму SharePoint.

Создание CER-файла сертификата

  1. В диспетчере IIS выберите узел Имя сервера в представлении в виде дерева слева.

  2. Дважды щелкните элемент Сертификаты сервера.

  3. В представлении Сертификаты сервера дважды щелкните сертификат, чтобы просмотреть сведения о нем.

  4. На вкладке Сведения нажмите кнопку Копировать в файл, чтобы запустить мастер экспорта сертификатов, а затем нажмите кнопку Далее.

  5. Оставьте значение по умолчанию (Нет, не экспортировать закрытый ключ) и нажмите кнопку Далее.

  6. На следующей странице оставьте значения по умолчанию и нажмите кнопку Далее.

  7. Нажмите кнопку Обзор и перейдите к любой папке. CER-файл в любом случае будет перемещен с этого компьютера. Укажите для файла то же имя, что и для PFX-файла, а затем нажмите кнопку Сохранить. Сертификат будет сохранен в виде CER-файла.

  8. Нажмите кнопку Далее.

  9. Нажмите кнопку Готово.

Настройка использования сертификата в SharePoint

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

Размещение CER-файла в SharePoint

  1. Создайте папку и убедитесь, что удостоверениям следующих пулов надстроек IIS предоставлено разрешение на ее чтение:

    • SecurityTokenServiceApplicationPool.

    • Пул надстроек, обслуживающий веб-сайт IIS, на котором размещается родительское веб-приложение SharePoint для тестового веб-сайта SharePoint. Пул для веб-сайта IIS SharePoint - 80 называется OServerPortalAppPool.

  2. Переместите (не просто скопируйте) CER-файл с удаленного веб-сервера в папку, которую вы только что создали на сервере SharePoint. Файл будет находиться в этой папке лишь некоторое время.

Следующая процедура настраивает сертификат в качестве доверенного поставщика маркера в SharePoint. Она выполняется только один раз (для каждого Надстройка SharePoint с высоким уровнем доверия).

Настройка сертификата

  1. Если вы этого еще не сделали, создайте один или несколько скриптов настройки высокого уровня доверия для Windows PowerShell, как описано в статье Скрипты настройки высокого уровня доверия для SharePoint.

  2. Скопируйте скрипты на сервер SharePoint.

  3. Откройте от имени администратора командную консоль SharePoint и запустите соответствующий скрипт.

  4. Один из скриптов предназначен для использования, когда клиент совместно использует один сертификат между несколькими надстройками SharePoint. Этот скрипт выводит файл, содержащий GUID издателя маркера. Если вы используете этот скрипт, предоставьте выходной файл разработчику надстройки SharePoint с высоким уровнем доверия.

  5. Удалите CER-файл из файловой системы сервера SharePoint.

    Примечание.

    Регистрация сертификата в качестве поставщика маркеров вступает в силу не сразу. До этого надстройка не будет работать. Может потребоваться до 24 часов, чтобы все серверы SharePoint признали нового поставщика маркеров. При выполнении команды iisreset на всех серверах SharePoint (если вы можете сделать это, не создавая неудобств для пользователей SharePoint) они сразу признают поставщика.

Изменение файла web.config

Совет

Пример кода, включающий изменения файла web.config, представлен в репозитории PnP/Samples/Core.OnPrem.S2S.WindowsCertStore.

Измените файл web.config так, чтобы узел appSettings содержал новые значения для следующих ключей:

  • ClientID. Это идентификатор клиента (GUID) веб-приложения, которое было создано на странице appregnew.aspx.

  • ClientSigningCertificateSerialNumber:(Вам потребуется добавить этот ключ, если средства разработчика Microsoft Office для Visual Studio не добавили его.) Это серийный номер сертификата. В значении не должно быть пробелов или дефисов.

  • IssuerId. Это GUID поставщика маркера (обязательно в нижнем регистре). Его значение зависит от стратегии пользователя касательно сертификатов.

    • Если надстройка SharePoint с высоким уровнем доверия имеет собственный сертификат, который она не предоставляет совместно с другими надстройками SharePoint, это то же самое, IssuerId что и ClientId.

    • Если надстройка SharePoint использует тот же сертификат, что и другие надстройки SharePoint, то IssuerId — это произвольный GUID. Скрипт для этого случая, представленный в статье Скрипты настройки для SharePoint с высоким уровнем доверия создает текстовый файл, содержащий GUID. ИТ-специалисты могут передать выходной файл разработчику надстройки для вставки в качестве значения IssuerId в файле web.config.

Примечание.

Инструменты разработчика Office для Visual Studio могут содержать дополнительные ключи параметров надстройки ClientSigningCertificatePath и ClientSigningCertificatePassword. Надстройка не использует их в рабочей среде, поэтому их можно удалить.

Рассмотрим пример. Помните, что для Надстройка SharePoint с высоким уровнем доверия ключ ClientSecret не существует.

<appSettings>
  <add key="ClientID" value="c1c12d4c-4900-43c2-8b89-c05725e0ba30" />
  <add key="ClientSigningCertificateSerialNumber" value="556a1c9c5a5415994941abd0ef2f947b" />
  <add key="IssuerId" value="f94591d5-89e3-47cd-972d-f1895cc158c6" />
</appSettings>

Изменение файла TokenHelper

Для работы с сертификатами, находящимися в хранилище сертификатов Windows, и получения их по серийному номеру, необходимо изменить файл TokenHelper.cs (или TokenHelper.vb), созданный инструментами Visual Studio Office Developer Tools. В приведенном ниже примере показан один из способов. В нем используется язык C#.

Совет

Пример кода, включающий изменения файла tokenhelper.cs, представлен в репозитории PnP/Samples/Core.OnPrem.S2S.WindowsCertStore.

Изменение файла TokenHelper

  1. В нижней части #region private fields файла находятся объявления для ClientSigningCertificatePath, ClientSigningCertificatePasswordи ClientCertificate. Удалите все три объявления.

  2. На их месте добавьте следующую строку:

    private static readonly string ClientSigningCertificateSerialNumber 
        = WebConfigurationManager.AppSettings.Get("ClientSigningCertificateSerialNumber");
    
  3. Найдите строку с объявлением поля SigningCredentials. Замените ее на приведенную ниже строку.

    private static readonly X509SigningCredentials SigningCredentials 
        = GetSigningCredentials(GetCertificateFromStore());
    
  4. Перейдите к разделу #region private methods файла и добавьте два следующих метода:

    private static X509SigningCredentials GetSigningCredentials(X509Certificate2 cert)
    {
        return (cert == null) ? null 
                            : new X509SigningCredentials(cert, 
                                                        SecurityAlgorithms.RsaSha256Signature, 
                                                        SecurityAlgorithms.Sha256Digest);
    }
    
    private static X509Certificate2 GetCertificateFromStore()
    {
        if (string.IsNullOrEmpty(ClientSigningCertificateSerialNumber))
        {
            return null;
        }  
    
        // Get the machine's personal store
        X509Certificate2 storedCert;
        X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
    
        try
        {
            // Open for read-only access                 
            store.Open(OpenFlags.ReadOnly);
    
            // Find the cert
            storedCert = store.Certificates.Find(X509FindType.FindBySerialNumber, 
                                                ClientSigningCertificateSerialNumber, 
                                                true)
                        .OfType<X509Certificate2>().SingleOrDefault();
        }
        finally
        {
            store.Close();
        }
    
        return storedCert;
    }
    

Упаковка удаленного веб-приложения и надстройки SharePoint для публикации с помощью мастеров Visual Studio

Совет

Сейчас корпорация Майкрософт обновляет Visual Studio и Visual Studio Office Developer Tools намного чаще, чем в прошлом, и мы не всегда успеваем обновлять документацию с учетом изменений. Этот раздел написан с использованием версии Visual Studio, выпущенной в октябре 2013 г., и включенной в нее версии Visual Studio Office Developer Tools. Если вы используете другую версию Visual Studio или инструментов разработчика, можете сверяться со справкой по Visual Studio и записями блога, чтобы узнать аналогичные способы выполнения действий, описанных в этих процедурах.

Упаковка удаленного веб-приложения

  1. В обозревателе решений щелкните правой кнопкой мыши проект веб-приложения (не проект Надстройка SharePoint) и выберите команду Опубликовать.

  2. На вкладке Профиль выберите в раскрывающемся списке пункт Новый профиль.

  3. Когда появится соответствующий запрос, укажите подходящее имя для профиля. Пример: Надстройка SP для работы с платежными ведомостями: удаленное веб-приложение.

  4. На вкладке Подключение выберите пункт Пакет веб-развертывания в раскрывающемся списке Способ публикации.

  5. Для размещения пакета используйте любую папку. Чтобы упростить дальнейшие процедуры, используйте пустую папку. Обычно используется вложенная папка в папке проекта bin.

  6. В качестве имени сайта укажите имя веб-сайта IIS, на котором будет размещаться веб-приложение. Не указывайте протокол и порт, а также не включайте в имя символы косой черты. Пример: PayrollSite. Если вам нужно, чтобы веб-приложение было дочерним по отношению к веб-сайту по умолчанию, используйте формат default website/<website name>. Пример: Default Web Site/PayrollSite. Если веб-сайт IIS еще не существует, он будет создан при выполнении пакета веб-развертывания далее.

  7. Нажмите кнопку Далее.

  8. На вкладке Параметры выберите пункт Выпуск или Отладка в списке Конфигурация.

  9. Нажмите Далее>Опубликовать. В месте хранения пакета будут созданы ZIP-файл и другие файлы, которые в дальнейшем будут использоваться для установки веб-приложения.

Создание пакета надстройки SharePoint

  1. Щелкните правой кнопкой мыши проект надстройки SharePoint в решении и выберите пункт Опубликовать.

  2. В списке Текущий профиль выберите профиль, созданный при выполнении предыдущей процедуры.

  3. Если рядом с кнопкой Изменить появится желтый значок предупреждения, нажмите Изменить. Откроется форма, в которой нужно ввести те же сведения, что и в файле web.config. Указывать эти данные необязательно, так как для публикации используется пакет веб-развертывания, но форму нельзя оставлять пустой. Введите в текстовых полях любые символы и нажмите кнопку Готово.

  4. Нажмите кнопку Упаковать надстройку. (Не выбирайте развернуть веб-проект. Эта кнопка просто повторяет то, что вы сделали на последнем шаге последней процедуры.) Откроется форма упаковки надстройки .

  5. В поле Где размещен веб-сайт? введите URL-адрес домена удаленного веб-приложения. Необходимо включить протокол HTTPS, и если порт, прослушиваемый веб-приложением для HTTPS-запросов, не равен 443, необходимо также включить этот порт. Например https://MyServer:4444. Этим значением инструменты Visual Studio Office Developer Tools заменяют маркер ~remoteAppUrl в манифесте надстройки SharePoint.

  6. В поле Идентификатор клиента надстройки введите идентификатор клиента, который был создан на странице appregnew.aspx, а также указан в файле web.config.

  7. Нажмите кнопку Готово. Будет создан пакет надстройки.

Публикация удаленного веб-приложения и установка надстройки SharePoint

Публикация веб-приложения

  1. Перейдите к папке, которую вы указали в поле Расположение пакета при упаковке удаленного веб-приложения, а затем скопируйте все файлы из нее в папку на удаленном сервере.

  2. В этой папке откройте файл имя_проекта.deploy-readme.txt (где имя_проекта — это имя проекта веб-приложения Visual Studio) и следуйте инструкциям в файле, чтобы установить веб-приложение, используя файл имя_проекта.deploy.cmd.

Настройка привязки протокола для веб-приложения

  1. В диспетчере IIS выберите новый веб-сайт в области Подключения. Если новое веб-приложение является дочерним по отношению к веб-сайту по умолчанию, выделите Веб-сайт по умолчанию и выполните эту процедуру для элемента "Веб-сайт по умолчанию".

  2. Нажмите Привязки в области Действия.

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

    1. Выберите пункт HTTPS в списке Тип.

    2. Выберите пункт Все неназначенные в списке IP-адрес.

    3. Укажите порт в поле Порт. Если вы указали порт в домене надстройки при регистрации надстройки SharePoint на странице appregnew.aspx (как описано в разделе Регистрация надстройки с высоким уровнем доверия), то здесь необходимо использовать тот же номер. Если вы не указывали порт на странице appregnew, введите значение 443.

    4. В списке Сертификат SSL выберите сертификат, который использовался ранее для настройки сервера в разделе Настройка удаленного веб-сервера с помощью сертификата.

    5. Нажмите кнопку ОК.

  4. Нажмите кнопку Закрыть.

Настройка проверки подлинности для веб-приложения

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

  2. Дважды щелкните значок Проверка подлинности на центральной панели, чтобы открыть панель Проверка подлинности.

  3. Выберите элемент Анонимная проверка подлинности, а затем в области Действия нажмите Отключить.

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

    Если разделы, связанные с проверкой подлинности пользователей, в файлах TokenHelper и SharePointContext веб-приложения содержат сгенерированный код без изменений, то веб-приложение использует проверку подлинности Windows и вам нужно выбрать этот вариант.

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

    1. Выберите пункт Проверка подлинности Windows в области Проверка подлинности.

    2. Выберите Поставщики.

    3. В диалоговом окне Поставщики убедитесь, что NTLM указан вышеСогласование.

    4. Нажмите кнопку ОК.

Отправка и установка надстройки SharePoint

  1. Отправьте APP-файл пакета надстройки SharePoint в каталог надстроек организации. Надстройки SharePoint с высоким уровнем доверия невозможно распространять через Магазин Office. Подробные сведения см. в разделе Добавление приложений в каталог приложений.

  2. Установите надстройку на любом веб-сайте в рамках родительского веб-приложения SharePoint, содержащего каталог надстроек. Сведения об отправке и установке надстройки SharePoint см. в статье Добавление приложений для SharePoint на сайт SharePoint.

См. также